Skip to content
This repository was archived by the owner on Apr 12, 2021. It is now read-only.

Commit 0ce8ff8

Browse files
authored
Merge pull request #233 from MJMortimer/f/entrustless
Removal of Client Certificate implementations and usages of a PartnerBaseUrl as Xero does not require these any more
2 parents 025c9b1 + 894d2bf commit 0ce8ff8

File tree

25 files changed

+26
-313
lines changed

25 files changed

+26
-313
lines changed

CoreTests/App.config

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,10 @@
66

77
<appSettings>
88
<add key="BaseUrl" value="https://api.xero.com"/>
9-
<add key="PartnerBaseUrl" value="https://api-partner.network.xero.com"/>
109
<add key="ConsumerKey" value="MEQS3OLPBG4DKNI52N9U8Z5VYEXXXX"/>
1110
<add key="ConsumerSecret" value="6FJIDKHKKMTNOMR8EVYGKXYIXXXXXX"/>
1211
<add key="CallbackUrl" value="localhost"/>
1312
<add key="SigningCertificate" value="..\..\resources\cert\public_privatekey.pfx"/>
1413
<add key="SigningCertificatePassword" value=""/>
15-
<add key="PartnerCertificate" value="skiesareblue"/>
16-
<add key="PartnerCertificatePassword" value="rosesarered"/>
1714
</appSettings>
1815
</configuration>

PayrollTests.AU/App.config

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,10 @@
66

77
<appSettings>
88
<add key="BaseUrl" value="https://api.xero.com"/>
9-
<add key="PartnerBaseUrl" value="https://api-partner.network.xero.com"/>
109
<add key="ConsumerKey" value="XXXXTD0ENH8CFDOFOL4DJ4ABMXXXX"/>
1110
<add key="ConsumerSecret" value="XXXX6LKHL1K0LW1Y5XQMVWXUGAXXXX"/>
1211
<add key="CallbackUrl" value="localhost"/>
1312
<add key="SigningCertificate" value="resources\cert\public_privatekey.pfx"/>
1413
<add key="SigningCertificatePassword" value=""/>
15-
<add key="PartnerCertificate" value="skiesareblue"/>
16-
<add key="PartnerCertificatePassword" value="rosesarered"/>
1714
</appSettings>
1815
</configuration>

PayrollTests.US/App.config

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,10 @@
66

77
<appSettings>
88
<add key="BaseUrl" value="https://api.xero.com"/>
9-
<add key="PartnerBaseUrl" value="https://api-partner.network.xero.com"/>
109
<add key="ConsumerKey" value="XXXXKTSZ62S7LKAQMYXQSIQOS8XXXX"/>
1110
<add key="ConsumerSecret" value="XXXX0YOM0XSCBPSGEPOJJX453XXXX"/>
1211
<add key="CallbackUrl" value="localhost"/>
1312
<add key="SigningCertificate" value="resources\cert\public_privatekey.pfx"/>
1413
<add key="SigningCertificatePassword" value=""/>
15-
<add key="PartnerCertificate" value="skiesareblue"/>
16-
<add key="PartnerCertificatePassword" value="rosesarered"/>
1714
</appSettings>
1815
</configuration>

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,6 @@ A private application will need to also populate
153153
A partner application will need to also populate
154154

155155
<add key="SigningCertificate" value="Path to .pfx file"/>
156-
<add key="PartnerCertificate" value="Path to Xero issued Entrust certificate file"/>
157156

158157
##Authenticators
159158

@@ -166,7 +165,7 @@ Uses RSA-SHA1 and a public/private certificate. There are no tokens and each req
166165
Uses HMAC-SHA1 and the standard 3-legged [OAuth](http://tools.ietf.org/html/rfc6749) process. Tokens last for 30 minutes and cannot be renewed.
167166

168167
###PartnerAuthenticator
169-
Uses RSA-SHA1 and a Xero provider certificate and then the standard 3-legged [OAuth](http://tools.ietf.org/html/rfc6749) process with an additional signing certificate. Tokens last for 30 minutes and be renewed. Token renewal is supported by this provider.
168+
Uses RSA-SHA1 and then the standard 3-legged [OAuth](http://tools.ietf.org/html/rfc6749) process with an additional signing certificate. Tokens last for 30 minutes and be renewed. Token renewal is supported by this provider.
170169

171170
Examples for renewing your access tokens can be seen in the RenewToken method overrides in the PartnerAuthenticator.cs and PartnerMVCAuthenticator.cs classes.
172171

@@ -229,7 +228,7 @@ are for development only.
229228
// Partner Application Sample
230229
var partner_app_api = new XeroCoreApi("https://api-partner.network.xero.com", new PartnerAuthenticator("https://api-partner.network.xero.com",
231230
"https://api.xero.com", "oob", new MemoryTokenStore(),
232-
@"C:\Dev\your_public_privatekey.pfx", @"C:\Dev\your_entrust_cert.p12", "your_entrust_cert_password"),
231+
@"C:\Dev\your_public_privatekey.pfx"),
233232
new Consumer("your-consumer-key", "your-consumer-secret"), user,
234233
new DefaultMapper(), new DefaultMapper());
235234

Xero.Api.Example.Applications/Partner/AmericanPayroll.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ public AmericanPayroll(ITokenStore store, IUser user, bool includeRateLimiter =
1818
ApplicationSettings.CallBackUri,
1919
store,
2020
ApplicationSettings.SigningCertificatePath,
21-
ApplicationSettings.ParterCertificatePath,
22-
ApplicationSettings.ParterCertificatePassword,
2321
ApplicationSettings.SigningCertificatePassword),
2422
new Consumer(
2523
ApplicationSettings.Key,

Xero.Api.Example.Applications/Partner/AustralianPayroll.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ public AustralianPayroll(ITokenStore store, IUser user, bool includeRateLimiter
1818
ApplicationSettings.CallBackUri,
1919
store,
2020
ApplicationSettings.SigningCertificatePath,
21-
ApplicationSettings.ParterCertificatePath,
22-
ApplicationSettings.ParterCertificatePassword,
2321
ApplicationSettings.SigningCertificatePassword),
2422
new Consumer(
2523
ApplicationSettings.Key,

Xero.Api.Example.Applications/Partner/Core.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ public Core(ITokenStore store, IUser user, bool includeRateLimiter = false) :
1919
ApplicationSettings.CallBackUri,
2020
store,
2121
ApplicationSettings.SigningCertificatePath,
22-
ApplicationSettings.ParterCertificatePath,
23-
ApplicationSettings.ParterCertificatePassword,
2422
ApplicationSettings.SigningCertificatePassword),
2523
new Consumer(
2624
ApplicationSettings.Key,

Xero.Api.Example.Applications/Partner/PartnerAuthenticator.cs

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,37 +6,32 @@
66

77
namespace Xero.Api.Example.Applications.Partner
88
{
9-
public class PartnerAuthenticator : TokenStoreAuthenticator, ICertificateAuthenticator
9+
public class PartnerAuthenticator : TokenStoreAuthenticator
1010
{
11-
private readonly X509Certificate2 _certificate;
1211
private readonly X509Certificate2 _signingCertificate;
1312

1413
private PartnerAuthenticator(string baseUri, string authorizeUri, string callBackUri, ITokenStore store)
1514
: base(baseUri, authorizeUri, callBackUri, store)
1615
{
1716
}
1817

19-
public PartnerAuthenticator(string baseUri, string authorizeUri, string callBackUri, ITokenStore store, string signingCertificatePath, string certificatePath, string password)
20-
: this(baseUri, authorizeUri, callBackUri, store, signingCertificatePath, certificatePath, password ,"")
18+
public PartnerAuthenticator(string baseUri, string authorizeUri, string callBackUri, ITokenStore store, string signingCertificatePath)
19+
: this(baseUri, authorizeUri, callBackUri, store, signingCertificatePath, "")
2120
{
2221
}
2322

24-
public PartnerAuthenticator(string baseUri, string authorizeUri, string callBackUri, ITokenStore store, string signingCertificatePath, string certificatePath, string entrustPassword, string signingCertPassword)
23+
public PartnerAuthenticator(string baseUri, string authorizeUri, string callBackUri, ITokenStore store, string signingCertificatePath, string signingCertPassword)
2524
: this(baseUri, authorizeUri, callBackUri, store)
2625
{
2726
_signingCertificate = new X509Certificate2(signingCertificatePath, signingCertPassword, X509KeyStorageFlags.MachineKeySet);
28-
_certificate = new X509Certificate2(certificatePath, entrustPassword);
2927
}
3028

31-
public PartnerAuthenticator(string baseUri, string authorizeUri, string callBackUri, ITokenStore store, X509Certificate2 signingCertificate, X509Certificate2 certificate)
29+
public PartnerAuthenticator(string baseUri, string authorizeUri, string callBackUri, ITokenStore store, X509Certificate2 signingCertificate)
3230
: this(baseUri, authorizeUri, callBackUri, store)
3331
{
3432
_signingCertificate = signingCertificate;
35-
_certificate = certificate;
3633
}
3734

38-
public X509Certificate Certificate { get { return _certificate; } }
39-
4035
protected override string AuthorizeUser(IToken token)
4136
{
4237
var authorizeUrl = GetAuthorizeUrl(token);
@@ -60,10 +55,5 @@ protected override IToken RenewToken(IToken sessionToken, IConsumer consumer)
6055

6156
return Tokens.GetAccessToken(sessionToken, authHeader);
6257
}
63-
64-
protected override X509Certificate2 GetClientCertificate()
65-
{
66-
return _certificate;
67-
}
6858
}
6959
}

Xero.Api.Example.Applications/Partner/PartnerMvcAuthenticator.cs

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@
66

77
namespace Xero.Api.Example.Applications.Partner
88
{
9-
public class PartnerMvcAuthenticator : PublicMvcAuthenticator, ICertificateAuthenticator
9+
public class PartnerMvcAuthenticator : PublicMvcAuthenticator
1010
{
11-
private readonly X509Certificate2 _certificate;
1211
private readonly X509Certificate2 _signingCertificate;
1312

1413
private PartnerMvcAuthenticator(string baseUri, string authorizeUri, string callBackUri,
@@ -18,43 +17,33 @@ private PartnerMvcAuthenticator(string baseUri, string authorizeUri, string call
1817
}
1918

2019
public PartnerMvcAuthenticator(string baseUri, string authorizeUri, string callBackUri,
21-
ITokenStore store, string signingCertificatePath, string certificatePath, string password,
22-
IConsumer consumer, ITokenStore requestTokenStore)
23-
: this(baseUri, authorizeUri, callBackUri, store, signingCertificatePath, certificatePath, password, consumer, requestTokenStore, "")
20+
ITokenStore store, string signingCertificatePath, IConsumer consumer, ITokenStore requestTokenStore)
21+
: this(baseUri, authorizeUri, callBackUri, store, signingCertificatePath, consumer, requestTokenStore, "")
2422
{
2523
}
2624

2725
public PartnerMvcAuthenticator(string baseUri, string authorizeUri, string callBackUri,
28-
ITokenStore store, string signingCertificatePath, string certificatePath, string entrustPassword,
26+
ITokenStore store, string signingCertificatePath,
2927
IConsumer consumer, ITokenStore requestTokenStore, string signingCertPassword)
3028
: this(baseUri, authorizeUri, callBackUri, store, consumer, requestTokenStore)
3129
{
3230
_signingCertificate = new X509Certificate2(signingCertificatePath, signingCertPassword, X509KeyStorageFlags.MachineKeySet);
33-
_certificate = new X509Certificate2(certificatePath, entrustPassword);
3431
}
3532

3633
public PartnerMvcAuthenticator(string baseUri, string authorizeUri, string callBackUri,
37-
ITokenStore store, X509Certificate2 signingCertificate, X509Certificate2 certificate,
34+
ITokenStore store, X509Certificate2 signingCertificate,
3835
IConsumer consumer, ITokenStore requestTokenStore)
3936
: this(baseUri, authorizeUri, callBackUri, store, consumer, requestTokenStore)
4037
{
4138
_signingCertificate = signingCertificate;
42-
_certificate = certificate;
4339
}
4440

45-
public X509Certificate Certificate { get { return _certificate; } }
46-
4741
protected override string CreateSignature(IToken token, string verb, Uri uri,
4842
string verifier, bool renewToken = false, string callback = null)
4943
{
5044
return new RsaSha1Signer().CreateSignature(_signingCertificate, token, uri, verb, verifier, renewToken, callback);
5145
}
5246

53-
protected override X509Certificate2 GetClientCertificate()
54-
{
55-
return _certificate;
56-
}
57-
5847
protected override IToken RenewToken(IToken sessionToken, IConsumer consumer)
5948
{
6049
var authHeader = GetAuthorization(sessionToken, "POST", Tokens.AccessUri, null, null, true);

Xero.Api.Example.Applications/Partner/Settings.cs

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ public class Settings
66
{
77
public string Uri
88
{
9-
get { return ConfigurationManager.AppSettings["PartnerBaseUrl"]; }
9+
get { return ConfigurationManager.AppSettings["BaseUrl"]; }
1010
}
1111

1212
public string CallBackUri
@@ -23,16 +23,6 @@ public string SigningCertificatePath
2323
{
2424
get { return ConfigurationManager.AppSettings["SigningCertificate"]; }
2525
}
26-
27-
public string ParterCertificatePath
28-
{
29-
get { return ConfigurationManager.AppSettings["PartnerCertificate"]; }
30-
}
31-
32-
public string ParterCertificatePassword
33-
{
34-
get { return ConfigurationManager.AppSettings["PartnerCertificatePassword"]; }
35-
}
3626

3727
public string SigningCertificatePassword
3828
{

0 commit comments

Comments
 (0)