You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by rb...@apache.org on 2014/01/07 15:18:33 UTC
svn commit: r1556222 - in /shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/oauth2/handler/TokenAuthorizationResponseHandler.java
test/java/org/apache/shindig/gadgets/oauth2/handler/TokenAuthorizationResponseHandlerTest.java
Author: rbaxter85
Date: Tue Jan 7 14:18:33 2014
New Revision: 1556222
URL: http://svn.apache.org/r1556222
Log:
Fix for SHINDIG-1963
Change content-type logic in TokenAuthorizationResponseHandler so application/x-www-form-urlencoded is the default
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth2/handler/TokenAuthorizationResponseHandler.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth2/handler/TokenAuthorizationResponseHandlerTest.java
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth2/handler/TokenAuthorizationResponseHandler.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth2/handler/TokenAuthorizationResponseHandler.java?rev=1556222&r1=1556221&r2=1556222&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth2/handler/TokenAuthorizationResponseHandler.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth2/handler/TokenAuthorizationResponseHandler.java Tue Jan 7 14:18:33 2014
@@ -101,21 +101,19 @@ public class TokenAuthorizationResponseH
final String responseString = response.getResponseAsString();
final OAuth2Message msg = this.oauth2MessageProvider.get();
- if (contentType.startsWith("text/plain")) {
- // Facebook does this
- msg.parseQuery('?' + responseString);
- } else if (contentType.startsWith("application/json")) {
+ if (isLogging) {
+ TokenAuthorizationResponseHandler.LOG.log("Content-Type {0}", contentType);
+ TokenAuthorizationResponseHandler.LOG.log("Response String {0}", responseString);
+ }
+ if (contentType.startsWith("application/json")) {
// Google does this
final JSONObject responseJson = new JSONObject(responseString);
msg.parseJSON(responseJson.toString());
} else {
- if (isLogging) {
- TokenAuthorizationResponseHandler.LOG.log("Unhandled Content-Type {0}", contentType);
- TokenAuthorizationResponseHandler.LOG.exiting(
- TokenAuthorizationResponseHandler.LOG_CLASS, "handleResponse", null);
- }
- ret = TokenAuthorizationResponseHandler.getError("Unhandled Content-Type "
- + contentType);
+ // Default assume it is application/x-www-form-urlencoded
+ // Facebook has a content type of text/plain
+ // GitHub has a content type of application/x-www-form-urlencoded
+ msg.parseQuery('?' + responseString);
}
final OAuth2Error error = msg.getError();
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth2/handler/TokenAuthorizationResponseHandlerTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth2/handler/TokenAuthorizationResponseHandlerTest.java?rev=1556222&r1=1556221&r2=1556222&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth2/handler/TokenAuthorizationResponseHandlerTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth2/handler/TokenAuthorizationResponseHandlerTest.java Tue Jan 7 14:18:33 2014
@@ -189,14 +189,18 @@ public class TokenAuthorizationResponseH
final HttpResponseBuilder builder = new HttpResponseBuilder().setStrictNoCache();
builder.setHttpStatusCode(HttpResponse.SC_OK);
builder.setHeader("Content-Type", "BAD");
+ builder.setContent("access_token=xxx&token_type=Bearer&expires=1&refresh_token=yyy&example_parameter=example_value");
final HttpResponse response = builder.create();
final OAuth2HandlerError result = TokenAuthorizationResponseHandlerTest.tarh.handleResponse(
accessor, response);
- Assert.assertNotNull(result);
- Assert.assertEquals(null, result.getCause());
- Assert.assertEquals(OAuth2Error.TOKEN_RESPONSE_PROBLEM, result.getError());
- Assert.assertTrue(result.getContextMessage().startsWith("Unhandled Content-Type"));
+ Assert.assertNull(result);
+ final OAuth2Token accessToken = TokenAuthorizationResponseHandlerTest.store.getToken(
+ accessor.getGadgetUri(), accessor.getServiceName(), accessor.getUser(),
+ accessor.getScope(), OAuth2Token.Type.ACCESS);
+ Assert.assertEquals("xxx", new String(accessToken.getSecret(), "UTF-8"));
+ Assert.assertEquals(OAuth2Message.BEARER_TOKEN_TYPE, accessToken.getTokenType());
+ Assert.assertTrue(accessToken.getExpiresAt() > 1000);
}
}