Skip to content

Commit e70063c

Browse files
Updated exception handling
1 parent bad8c81 commit e70063c

File tree

4 files changed

+52
-30
lines changed

4 files changed

+52
-30
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ public DiscoveryAPIResponse callDiscoveryAPI(Environment environment) throws Con
8787
logger.debug("failed calling discovery document API");
8888
throw new ConnectionException("Failed calling discovery document API", response.getStatusCode() + "", response.getIntuit_tid(), response);
8989
}
90+
} catch (ConnectionException ex) {
91+
logger.error("ConnectionException while calling discovery document " + ex.getResponseContent() + ex.getResponseContent(), ex);
92+
throw new ConnectionException("Failed calling discovery document API", ex.getStatusCode() + "", ex.getIntuit_tid(), ex.getResponse());
9093
} catch (Exception ex) {
9194
logger.error("Exception while calling discovery document", ex);
9295
throw new ConnectionException(ex.getMessage(), ex);
@@ -123,8 +126,10 @@ public DiscoveryAPIResponse callDiscoveryAPI(String discoveryEndpoint) throws Co
123126

124127
} else {
125128
logger.debug("failed calling discovery document API");
129+
logger.debug("Response content: " + response.getContent());
126130
throw new ConnectionException("Failed calling discovery document API", response.getStatusCode() + "", response.getIntuit_tid(), response);
127131
}
132+
throw new ConnectionException("Failed calling discovery document API", ex.getStatusCode() + "", ex.getIntuit_tid(), ex.getResponse());
128133
} catch (Exception ex) {
129134
logger.error("Exception while calling discovery document", ex);
130135
throw new ConnectionException(ex.getMessage(), ex);

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

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.util.HashMap;
2727
import java.util.List;
2828

29+
import com.intuit.oauth2.exception.InvalidRequestException;
2930
import org.apache.commons.codec.binary.Base64;
3031
import org.apache.http.NameValuePair;
3132
import org.apache.http.message.BasicNameValuePair;
@@ -68,7 +69,7 @@ public OAuth2PlatformClient(OAuth2Config oauth2Config) {
6869
this.oauth2Config = oauth2Config;
6970
}
7071

71-
/**
72+
/** `
7273
* Hiding the default constructor as OAuth2PlatformClient is always required to function properly
7374
*/
7475
protected OAuth2PlatformClient() {
@@ -102,6 +103,7 @@ public BearerTokenResponse retrieveBearerTokens(String authCode, String redirect
102103
logger.debug("intuit_tid : "+ response.getIntuit_tid());
103104
if (response.getStatusCode() != 200) {
104105
logger.debug("failed getting access token");
106+
logger.debug("Response content : "+ response.getContent());
105107
throw new OAuthException("Failed getting access token", response.getStatusCode() + "", response.getIntuit_tid(), response);
106108
}
107109

@@ -111,7 +113,10 @@ public BearerTokenResponse retrieveBearerTokens(String authCode, String redirect
111113

112114
return bearerTokenResponse;
113115

114-
} catch (Exception ex) {
116+
} catch (OAuthException ex) {
117+
logger.error("OAuthException while retrieving bearer tokens: " + ex.getResponseContent());
118+
throw new OAuthException("Failed getting access token", ex.getStatusCode() + "", ex.getIntuit_tid(), ex.getResponse());
119+
} catch (Exception ex) {
115120
logger.error("Exception while retrieving bearer tokens", ex);
116121
throw new OAuthException(ex.getMessage(), ex);
117122
}
@@ -139,19 +144,20 @@ public BearerTokenResponse refreshToken(String refreshToken) throws OAuthExcepti
139144
logger.debug("Response Code : "+ response.getStatusCode());
140145
logger.debug("intuit_tid : "+ response.getIntuit_tid());
141146
if (response.getStatusCode() != 200) {
142-
logger.debug("Failed getting access token");
143-
logger.debug("Response Code : "+ response.getStatusCode());
144-
logger.debug("intuit_tid : "+ response.getIntuit_tid());
145-
throw new OAuthException("Failed getting access token", response.getStatusCode() + "", response.getIntuit_tid(), response);
147+
logger.debug("Failed to refresh token");
148+
logger.debug("Response content : "+ response.getContent());
149+
throw new OAuthException("Failed to refresh token", response.getStatusCode() + "", response.getIntuit_tid(), response);
146150
}
147151

148152
ObjectReader reader = mapper.readerFor(BearerTokenResponse.class);
149153
BearerTokenResponse bearerTokenResponse = reader.readValue(response.getContent());
150154
bearerTokenResponse.setIntuit_tid(response.getIntuit_tid());
151155
return bearerTokenResponse;
152-
}
153-
catch (Exception ex) {
154-
logger.error("Exception while calling refreshToken ", ex);
156+
} catch (OAuthException ex) {
157+
logger.error("OAuthException while calling refreshToken: " + ex.getResponseContent());
158+
throw new OAuthException(ex.getMessage(), ex.getStatusCode() + "", ex.getIntuit_tid(), ex.getResponse());
159+
} catch (Exception ex) {
160+
logger.error("Exception while calling refreshToken ");
155161
throw new OAuthException(ex.getMessage(), ex);
156162
}
157163
}
@@ -207,12 +213,11 @@ public PlatformResponse revokeToken(String token) throws ConnectionException {
207213
logger.debug("intuit_tid: " + response.getIntuit_tid());
208214
if (response.getStatusCode() != 200) {
209215
logger.debug("failed to revoke token");
216+
210217
platformResponse.setStatus("ERROR");
211218
platformResponse.setErrorCode(response.getStatusCode() + "");
212219
platformResponse.setErrorMessage("Failed to revoke token");
213220
return platformResponse;
214-
215-
//throw new ConnectionException("Failed to revoke token", response.getStatusCode() + "", response.getIntuit_tid(), response);
216221
}
217222

218223
platformResponse.setStatus("SUCCESS");
@@ -269,6 +274,10 @@ public UserInfoResponse getUserInfo(String accessToken) throws OpenIdException {
269274
throw new OpenIdException("failed getting user info", response.getStatusCode() + "", response.getIntuit_tid(), response);
270275
}
271276
}
277+
catch (OpenIdException ex) {
278+
logger.error("OpenIdException while retrieving user info: " + ex.getResponseContent());
279+
throw new OpenIdException("failed getting user info", ex.getStatusCode() + "", ex.getIntuit_tid(), ex.getResponse());
280+
}
272281
catch (Exception ex) {
273282
logger.error("Exception while retrieving user info ", ex);
274283
throw new OpenIdException(ex.getMessage(), ex);

oauth2-platform-api/src/main/java/com/intuit/oauth2/exception/OAuthException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public OAuthException(String errorMessage,Throwable e){
4040
super(errorMessage,e);
4141
}
4242

43-
public OAuthException(final String errorMessage, final String statusCode, final String intuit_tid, final Response response){
43+
public OAuthException( String errorMessage, String statusCode, String intuit_tid, Response response){
4444
super(errorMessage, statusCode, intuit_tid, response);
4545
}
4646

oauth2-platform-api/src/main/java/com/intuit/oauth2/exception/PlatformException.java

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
/**
2121
* Base Exception class to handle Exceptions thrown from SDK
22-
*
22+
*
2323
* @author dderose
2424
*
2525
*/
@@ -30,30 +30,37 @@ public abstract class PlatformException extends Exception {
3030
private String errorCode;
3131
private String statusCode;
3232
private String intuit_tid;
33+
private String responseContent;
3334
private Response response;
34-
35+
3536
public PlatformException(final String errorMessage, final String errorCode){
3637
super(errorMessage);
3738
this.errorMessage = errorMessage;
3839
this.errorCode = errorCode;
3940
}
40-
41+
4142
public PlatformException(final String errorMessage){
4243
super(errorMessage);
4344
this.errorMessage = errorMessage;
4445
}
45-
46+
4647
public PlatformException(final String errorMessage, final Throwable cause){
4748
super(errorMessage,cause);
4849
this.errorMessage = errorMessage;
49-
50+
5051
}
5152

52-
public PlatformException(final String errorMessage, final String statusCode, final String intuit_tid, final Response response){
53+
public PlatformException(final String errorMessage, final String statusCode, final String intuit_tid, final Response response){
5354
super(errorMessage);
5455
this.errorMessage = errorMessage;
5556
this.statusCode = statusCode;
5657
this.intuit_tid = intuit_tid;
58+
try {
59+
this.responseContent = response.getContent();
60+
}
61+
catch (Exception e) {
62+
this.responseContent = "";
63+
}
5764
this.response = response;
5865
}
5966

@@ -81,18 +88,19 @@ public void setIntuit_tid(String intuit_tid) {
8188
this.intuit_tid = intuit_tid;
8289
}
8390

84-
public Response getResponse() {
85-
return response;
86-
}
91+
public String getResponseContent() { return responseContent; }
8792

88-
public void setResponse(Response response) {
89-
this.response = response;
93+
public void setResponseContent(String responseContent) { this.responseContent = responseContent; }
94+
95+
public Response getResponse() { return response; }
96+
97+
public void setResponse(Response response) { this.response = response; }
98+
99+
100+
@Override
101+
public String toString(){
102+
return "Error Code: " + errorCode + ", Error Message: "+ errorMessage+ ", Response Content: "+ responseContent;
90103
}
91-
92-
@Override
93-
public String toString(){
94-
return "Error Code: " + errorCode + ",Error Message: "+ errorMessage;
95-
}
96-
97-
104+
105+
98106
}

0 commit comments

Comments
 (0)