You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2011/10/11 12:49:26 UTC

svn commit: r1181700 - in /cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth: data/OAuthAuthorizationData.java services/AuthorizationRequestHandler.java

Author: sergeyb
Date: Tue Oct 11 10:49:25 2011
New Revision: 1181700

URL: http://svn.apache.org/viewvc?rev=1181700&view=rev
Log:
[CXF-2759] Removing redundant callback property from OAuthAuthorizationData

Modified:
    cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/data/OAuthAuthorizationData.java
    cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/services/AuthorizationRequestHandler.java

Modified: cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/data/OAuthAuthorizationData.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/data/OAuthAuthorizationData.java?rev=1181700&r1=1181699&r2=1181700&view=diff
==============================================================================
--- cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/data/OAuthAuthorizationData.java (original)
+++ cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/data/OAuthAuthorizationData.java Tue Oct 11 10:49:25 2011
@@ -30,8 +30,6 @@ public class OAuthAuthorizationData impl
     private String authenticityToken;
     private String applicationName;
     private String userName;
-    private String callback;
-    private String oauthVerifier;
     private List<? extends Permission> permissions;
     private List<String> uris;
 
@@ -66,22 +64,6 @@ public class OAuthAuthorizationData impl
         this.userName = userName;
     }
 
-    public String getCallback() {
-        return callback;
-    }
-
-    public void setCallback(String callback) {
-        this.callback = callback;
-    }
-
-    public String getOauthVerifier() {
-        return oauthVerifier;
-    }
-
-    public void setOauthVerifier(String oauthVerifier) {
-        this.oauthVerifier = oauthVerifier;
-    }
-
     public List<? extends Permission> getPermissions() {
         return permissions;
     }

Modified: cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/services/AuthorizationRequestHandler.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/services/AuthorizationRequestHandler.java?rev=1181700&r1=1181699&r2=1181700&view=diff
==============================================================================
--- cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/services/AuthorizationRequestHandler.java (original)
+++ cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/services/AuthorizationRequestHandler.java Tue Oct 11 10:49:25 2011
@@ -29,6 +29,7 @@ import javax.servlet.http.HttpServletReq
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriBuilder;
 
 import net.oauth.OAuth;
 import net.oauth.OAuthMessage;
@@ -74,29 +75,20 @@ public class AuthorizationRequestHandler
             }
             
             String decision = request.getParameter(OAuthConstants.AUTHORIZATION_DECISION_KEY);
-            if (!OAuthConstants.AUTHORIZATION_DECISION_ALLOW.equals(decision)) {
-                //user not authorized client
-                secData.setCallback(token.getCallback());
-                return Response.ok(addAdditionalParams(secData, token)).build();
-            }
-
-            String verifier = dataProvider.createRequestTokenVerifier(token);
-            
-
-            String callbackURL = getCallbackURI(token);
-            
+            boolean allow = OAuthConstants.AUTHORIZATION_DECISION_ALLOW.equals(decision);
 
             Map<String, String> queryParams = new HashMap<String, String>();
-            queryParams.put(OAuth.OAUTH_VERIFIER, verifier);
+            if (allow) {
+                String verifier = dataProvider.createRequestTokenVerifier(token);
+                queryParams.put(OAuth.OAUTH_VERIFIER, verifier);
+            }
             queryParams.put(OAuth.OAUTH_TOKEN, token.getTokenString());
             if (token.getState() != null) {
                 queryParams.put("state", token.getState());
             }
-            callbackURL = buildCallbackUrl(callbackURL, queryParams);
-
-
-            return Response.seeOther(URI.create(callbackURL))
-                    .build();
+            URI callback = buildCallbackURI(getCallbackURI(token), queryParams);
+            return Response.seeOther(callback).build();
+            
         } catch (OAuthProblemException e) {
             if (LOG.isLoggable(Level.WARNING)) {
                 LOG.log(Level.WARNING, "An OAuth related problem: {0}", new Object[]{e.fillInStackTrace()});
@@ -122,23 +114,14 @@ public class AuthorizationRequestHandler
         return callback;
     }
     
-    protected String buildCallbackUrl(String callbackURL, final Map<String, String> queryParams) {
-
-        boolean containsQuestionMark = callbackURL.contains("?");
+    private URI buildCallbackURI(String callback, final Map<String, String> queryParams) {
 
-
-        StringBuffer query = new StringBuffer(OAuthUtils.format(queryParams.entrySet(), "UTF-8"));
-        StringBuffer url = new StringBuffer(callbackURL);
-
-        if (!StringUtils.isEmpty(url.toString())) {
-            if (containsQuestionMark) {
-                url.append("&").append(query);
-            } else {
-                url.append("?").append(query);
-            }
+        UriBuilder builder = UriBuilder.fromUri(callback);
+        for (Map.Entry<String, String> entry : queryParams.entrySet()) {
+            builder.queryParam(entry.getKey(), entry.getValue());
         }
 
-        return url.toString();
+        return builder.build(); 
     }
     
     protected OAuthAuthorizationData addAdditionalParams(OAuthAuthorizationData secData,