Skip to content

Commit 6c38745

Browse files
committed
add more logging, add intuit_tid to response object, allow overriding urls
1 parent 947c0f1 commit 6c38745

File tree

13 files changed

+153
-44
lines changed

13 files changed

+153
-44
lines changed

oauth2-platform-api/src/main/java/com/intuit/oauth2/client/DiscoveryAPIClient.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ public DiscoveryAPIResponse callDiscoveryAPI(Environment environment) throws Con
7979
if (response.getStatusCode() == 200) {
8080
ObjectReader reader = mapper.readerFor(DiscoveryAPIResponse.class);
8181
DiscoveryAPIResponse discoveryAPIResponse = reader.readValue(response.getContent());
82+
discoveryAPIResponse.setIntuit_tid(response.getIntuit_tid());
8283
return discoveryAPIResponse;
8384

8485
} else {

oauth2-platform-api/src/main/java/com/intuit/oauth2/client/OAuth2PlatformClient.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ public BearerTokenResponse retrieveBearerTokens(String authCode, String redirect
106106

107107
ObjectReader reader = mapper.readerFor(BearerTokenResponse.class);
108108
BearerTokenResponse bearerTokenResponse = reader.readValue(response.getContent());
109+
bearerTokenResponse.setIntuit_tid(response.getIntuit_tid());
109110
return bearerTokenResponse;
110111

111112
} catch (Exception ex) {
@@ -141,6 +142,7 @@ public BearerTokenResponse refreshToken(String refreshToken) throws OAuthExcepti
141142

142143
ObjectReader reader = mapper.readerFor(BearerTokenResponse.class);
143144
BearerTokenResponse bearerTokenResponse = reader.readValue(response.getContent());
145+
bearerTokenResponse.setIntuit_tid(response.getIntuit_tid());
144146
return bearerTokenResponse;
145147
}
146148
catch (Exception ex) {
@@ -250,6 +252,7 @@ public UserInfoResponse getUserInfo(String accessToken) throws OpenIdException {
250252
if (response.getStatusCode() == 200) {
251253
ObjectReader reader = mapper.readerFor(UserInfoResponse.class);
252254
UserInfoResponse userInfoResponse = reader.readValue(response.getContent());
255+
userInfoResponse.setIntuit_tid(response.getIntuit_tid());
253256
return userInfoResponse;
254257
} else {
255258
logger.debug("failed getting user info");

oauth2-platform-api/src/main/java/com/intuit/oauth2/client/OAuthMigrationClient.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ public OAuthMigrationResponse migrate() throws ConnectionException {
9292
if (response.getStatusCode() == 200) {
9393
ObjectReader reader = mapper.readerFor(OAuthMigrationResponse.class);
9494
OAuthMigrationResponse oAuthMigrationResponse = reader.readValue(response.getContent());
95+
oAuthMigrationResponse.setIntuit_tid(response.getIntuit_tid());
9596
return oAuthMigrationResponse;
9697

9798
} else {

oauth2-platform-api/src/main/java/com/intuit/oauth2/config/OAuth2Config.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,34 @@ public ProxyConfig getProxyConfig() {
106106
return proxyConfig;
107107
}
108108

109+
//Allow overriding urls, if not using Discovery endpoint
110+
111+
public void setIntuitAuthorizationEndpoint(String intuitAuthorizationEndpoint) {
112+
this.intuitAuthorizationEndpoint = intuitAuthorizationEndpoint;
113+
}
114+
115+
public void setIntuitBearerTokenEndpoint(String intuitBearerTokenEndpoint) {
116+
this.intuitBearerTokenEndpoint = intuitBearerTokenEndpoint;
117+
}
118+
119+
public void setIntuitRevokeTokenEndpoint(String intuitRevokeTokenEndpoint) {
120+
this.intuitRevokeTokenEndpoint = intuitRevokeTokenEndpoint;
121+
}
122+
123+
public void setUserProfileEndpoint(String userProfileEndpoint) {
124+
this.userProfileEndpoint = userProfileEndpoint;
125+
}
126+
127+
public void setIntuitIdTokenIssuer(String intuitIdTokenIssuer) {
128+
this.intuitIdTokenIssuer = intuitIdTokenIssuer;
129+
}
130+
131+
public void setIntuitJwksURI(String intuitJwksURI) {
132+
this.intuitJwksURI = intuitJwksURI;
133+
}
134+
135+
136+
109137
public static class OAuth2ConfigBuilder {
110138

111139
private String clientId;

oauth2-platform-api/src/main/java/com/intuit/oauth2/data/BearerTokenResponse.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ public class BearerTokenResponse {
6969

7070
@JsonIgnore
7171
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
72+
73+
private String intuit_tid = null;
7274

7375
/**
7476
*
@@ -199,5 +201,13 @@ public Map<String, Object> getAdditionalProperties() {
199201
public void setAdditionalProperty(String name, Object value) {
200202
this.additionalProperties.put(name, value);
201203
}
204+
205+
public String getIntuit_tid() {
206+
return intuit_tid;
207+
}
208+
209+
public void setIntuit_tid(String intuit_tid) {
210+
this.intuit_tid = intuit_tid;
211+
}
202212

203213
}

oauth2-platform-api/src/main/java/com/intuit/oauth2/data/DiscoveryAPIResponse.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ public class DiscoveryAPIResponse {
5959

6060
@JsonProperty("jwks_uri")
6161
private String jwksUri;
62+
63+
private String intuit_tid = null;
6264

6365
@JsonProperty("issuer")
6466
public String getIssuer() {
@@ -119,5 +121,12 @@ public void setJwksUri(String jwksUri) {
119121
this.jwksUri = jwksUri;
120122
}
121123

124+
public String getIntuit_tid() {
125+
return intuit_tid;
126+
}
127+
128+
public void setIntuit_tid(String intuit_tid) {
129+
this.intuit_tid = intuit_tid;
130+
}
122131

123132
}

oauth2-platform-api/src/main/java/com/intuit/oauth2/data/UserInfoResponse.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ public class UserInfoResponse {
6767

6868
@JsonProperty("address")
6969
private Address address;
70+
71+
private String intuit_tid = null;
7072

7173
@JsonProperty("sub")
7274
public String getSub() {
@@ -147,5 +149,13 @@ public Address getAddress() {
147149
public void setAddress(Address address) {
148150
this.address = address;
149151
}
152+
153+
public String getIntuit_tid() {
154+
return intuit_tid;
155+
}
156+
157+
public void setIntuit_tid(String intuit_tid) {
158+
this.intuit_tid = intuit_tid;
159+
}
150160

151161
}

oauth2-platform-api/src/main/java/com/intuit/oauth2/http/HttpRequestClient.java

Lines changed: 54 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,20 @@
1515
*******************************************************************************/
1616
package com.intuit.oauth2.http;
1717

18-
import com.intuit.oauth2.config.ProxyConfig;
19-
import com.intuit.oauth2.data.OAuthMigrationRequest;
20-
import com.intuit.oauth2.exception.InvalidRequestException;
21-
import com.intuit.oauth2.utils.LoggerImpl;
22-
import com.intuit.oauth2.utils.PropertiesConfig;
23-
import oauth.signpost.OAuthConsumer;
24-
import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer;
25-
import oauth.signpost.exception.OAuthCommunicationException;
26-
import oauth.signpost.exception.OAuthExpectationFailedException;
27-
import oauth.signpost.exception.OAuthMessageSignerException;
28-
import org.apache.http.*;
18+
import java.io.IOException;
19+
import java.nio.charset.StandardCharsets;
20+
import java.security.KeyStore;
21+
import java.util.ArrayList;
22+
import java.util.List;
23+
24+
import javax.net.ssl.SSLContext;
25+
26+
import org.apache.http.HttpEntity;
27+
import org.apache.http.HttpHeaders;
28+
import org.apache.http.HttpHost;
29+
import org.apache.http.HttpResponse;
30+
import org.apache.http.HttpVersion;
31+
import org.apache.http.NameValuePair;
2932
import org.apache.http.auth.AuthScope;
3033
import org.apache.http.auth.NTCredentials;
3134
import org.apache.http.auth.UsernamePasswordCredentials;
@@ -52,12 +55,17 @@
5255
import org.apache.http.ssl.SSLContexts;
5356
import org.slf4j.Logger;
5457

55-
import javax.net.ssl.SSLContext;
56-
import java.io.IOException;
57-
import java.nio.charset.StandardCharsets;
58-
import java.security.KeyStore;
59-
import java.util.ArrayList;
60-
import java.util.List;
58+
import com.intuit.oauth2.config.ProxyConfig;
59+
import com.intuit.oauth2.data.OAuthMigrationRequest;
60+
import com.intuit.oauth2.exception.InvalidRequestException;
61+
import com.intuit.oauth2.utils.LoggerImpl;
62+
import com.intuit.oauth2.utils.PropertiesConfig;
63+
64+
import oauth.signpost.OAuthConsumer;
65+
import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer;
66+
import oauth.signpost.exception.OAuthCommunicationException;
67+
import oauth.signpost.exception.OAuthExpectationFailedException;
68+
import oauth.signpost.exception.OAuthMessageSignerException;
6169

6270
/**
6371
* Client class to make http request calls
@@ -191,13 +199,18 @@ public Response makeRequest(Request request) throws InvalidRequestException {
191199
}
192200

193201
logger.debug("Request URI : " + builder.getUri());
194-
logger.debug("Http Method : " + builder.getMethod());
195202

196203
try {
197204
//make the call
198205
HttpResponse response = client.execute(builder.build());
206+
207+
int httpStatusCode = response.getStatusLine().getStatusCode();
208+
logger.info("httpStatusCode : " + httpStatusCode);
209+
String intuit_tid = getIntuitTid(response);
210+
logger.debug("intuit_tid : " + intuit_tid);
211+
199212
//prepare response
200-
return new Response(response.getEntity() == null ? null : response.getEntity().getContent(), response.getStatusLine().getStatusCode());
213+
return new Response(response.getEntity() == null ? null : response.getEntity().getContent(), httpStatusCode, intuit_tid);
201214
} catch (IOException e) {
202215
logger.error("Exception while making httpRequest", e);
203216
throw new InvalidRequestException(e.getMessage());
@@ -238,6 +251,9 @@ public Response makeJsonRequest(Request request, OAuthMigrationRequest migration
238251
//add headers
239252
post.setHeader("Accept", "application/json");
240253
post.setHeader("Content-Type", "application/json");
254+
255+
logger.debug("Request URI : " + request.constructURL().toString());
256+
logger.debug("request payload : " + request.getPostJson());
241257

242258
// add post data
243259
HttpEntity entity = new StringEntity(request.getPostJson(), "UTF-8");
@@ -247,8 +263,14 @@ public Response makeJsonRequest(Request request, OAuthMigrationRequest migration
247263
try {
248264
//make the call
249265
httpResponse = client.execute(post);
266+
267+
int httpStatusCode = httpResponse.getStatusLine().getStatusCode();
268+
logger.info("httpStatusCode : " + httpStatusCode);
269+
String intuit_tid = getIntuitTid(httpResponse);
270+
logger.debug("intuit_tid : " + intuit_tid);
271+
250272
//prepare response
251-
return new Response(httpResponse.getEntity() == null ? null : httpResponse.getEntity().getContent(), httpResponse.getStatusLine().getStatusCode());
273+
return new Response(httpResponse.getEntity() == null ? null : httpResponse.getEntity().getContent(), httpStatusCode, intuit_tid);
252274

253275

254276
} catch (ClientProtocolException e) {
@@ -261,4 +283,16 @@ public Response makeJsonRequest(Request request, OAuthMigrationRequest migration
261283

262284
}
263285

286+
287+
/**
288+
* Parses the response headers and returns value for intuit_tid parameter
289+
*
290+
* @param response
291+
* @return String
292+
* @throws IOException
293+
*/
294+
public static String getIntuitTid(HttpResponse response) throws IOException {
295+
return response.getFirstHeader("intuit_tid").getValue();
296+
}
297+
264298
}

oauth2-platform-api/src/main/java/com/intuit/oauth2/http/Response.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,14 @@ public class Response {
3636
private final InputStream stream;
3737
private final int statusCode;
3838
private String content;
39+
private final String intuit_tid;
3940

4041
private static final Logger logger = LoggerImpl.getInstance();
4142

42-
public Response(final InputStream stream, final int statusCode) {
43+
public Response(final InputStream stream, final int statusCode, final String intuit_tid) {
4344
this.stream = stream;
4445
this.statusCode = statusCode;
46+
this.intuit_tid = intuit_tid;
4547
}
4648

4749
/**
@@ -56,6 +58,7 @@ public String getContent() throws ConnectionException {
5658

5759
if (content != null) {
5860
logger.debug("content already available ");
61+
logger.debug("Response json : " + content);
5962
return content;
6063
}
6164

@@ -71,6 +74,7 @@ public String getContent() throws ConnectionException {
7174
throw new ConnectionException(e.getMessage());
7275
}
7376
content = result.toString();
77+
logger.debug("Response json : " + result.toString());
7478
logger.debug("End Response::getContent");
7579
return content;
7680

@@ -94,7 +98,9 @@ public InputStream getStream() {
9498
return stream;
9599
}
96100

97-
101+
public String getIntuit_tid() {
102+
return intuit_tid;
103+
}
98104

99105

100106
}

oauth2-platform-api/src/test/java/com/intuit/oauth2/client/DiscoveryAPIClientTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,11 @@ public void testCallDiscoverAPIForSandbox() throws ConnectionException {
4949

5050
}
5151

52+
public static void main (String[] args) throws ConnectionException {
53+
54+
DiscoveryAPIResponse discoveryAPIResponse = new DiscoveryAPIClient(null).callDiscoveryAPI(Environment.PRODUCTION);
55+
56+
}
57+
5258

5359
}

0 commit comments

Comments
 (0)