Author: sergeyb
Date: Fri Feb 10 16:26:50 2012
New Revision: 1242840

URL: http://svn.apache.org/viewvc?rev=1242840&view=rev
Log:
Updating OAuthProvider to cope better with multiple authorization approval vars 

Modified:
    
cxf/trunk/distribution/src/main/release/samples/oauth/server/src/main/java/demo/oauth/server/controllers/MemoryOAuthDataProvider.java
    
cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/provider/OAuthDataProvider.java
    
cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/services/AuthorizationRequestHandler.java
    
cxf/trunk/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/oauth/MemoryOAuthDataProvider.java

Modified: 
cxf/trunk/distribution/src/main/release/samples/oauth/server/src/main/java/demo/oauth/server/controllers/MemoryOAuthDataProvider.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/oauth/server/src/main/java/demo/oauth/server/controllers/MemoryOAuthDataProvider.java?rev=1242840&r1=1242839&r2=1242840&view=diff
==============================================================================
--- 
cxf/trunk/distribution/src/main/release/samples/oauth/server/src/main/java/demo/oauth/server/controllers/MemoryOAuthDataProvider.java
 (original)
+++ 
cxf/trunk/distribution/src/main/release/samples/oauth/server/src/main/java/demo/oauth/server/controllers/MemoryOAuthDataProvider.java
 Fri Feb 10 16:26:50 2012
@@ -32,6 +32,7 @@ import net.oauth.OAuthProblemException;
 import org.apache.cxf.jaxrs.impl.MetadataMap;
 import org.apache.cxf.rs.security.oauth.data.AccessToken;
 import org.apache.cxf.rs.security.oauth.data.AccessTokenRegistration;
+import org.apache.cxf.rs.security.oauth.data.AuthorizationInput;
 import org.apache.cxf.rs.security.oauth.data.Client;
 import org.apache.cxf.rs.security.oauth.data.OAuthPermission;
 import org.apache.cxf.rs.security.oauth.data.RequestToken;
@@ -110,8 +111,9 @@ public class MemoryOAuthDataProvider imp
         return (RequestToken) token;
     }
 
-    public String setRequestTokenVerifier(RequestToken requestToken) throws
+    public String finalizeAuthorization(AuthorizationInput input) throws
             OAuthServiceException {
+        RequestToken requestToken = input.getToken();
         requestToken.setVerifier(generateToken());
         return requestToken.getVerifier();
     }

Modified: 
cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/provider/OAuthDataProvider.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/provider/OAuthDataProvider.java?rev=1242840&r1=1242839&r2=1242840&view=diff
==============================================================================
--- 
cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/provider/OAuthDataProvider.java
 (original)
+++ 
cxf/trunk/rt/rs/security/oauth-parent/oauth/src/main/java/org/apache/cxf/rs/security/oauth/provider/OAuthDataProvider.java
 Fri Feb 10 16:26:50 2012
@@ -21,6 +21,7 @@ package org.apache.cxf.rs.security.oauth
 
 import org.apache.cxf.rs.security.oauth.data.AccessToken;
 import org.apache.cxf.rs.security.oauth.data.AccessTokenRegistration;
+import org.apache.cxf.rs.security.oauth.data.AuthorizationInput;
 import org.apache.cxf.rs.security.oauth.data.Client;
 import org.apache.cxf.rs.security.oauth.data.RequestToken;
 import org.apache.cxf.rs.security.oauth.data.RequestTokenRegistration;
@@ -66,11 +67,11 @@ public interface OAuthDataProvider {
      * this verifier to the client who will exchange it for 
      * a new {@link AccessToken}
      *    
-     * @param requestToken the request token
+     * @param data AuthorizationInput
      * @return the generated verifier
      * @throws OAuthServiceException
      */
-    String setRequestTokenVerifier(RequestToken requestToken) throws 
OAuthServiceException;
+    String finalizeAuthorization(AuthorizationInput data) throws 
OAuthServiceException;
     
     /**
      * Creates a new {@link AccessToken}

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=1242840&r1=1242839&r2=1242840&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
 Fri Feb 10 16:26:50 2012
@@ -45,6 +45,7 @@ import net.oauth.OAuthProblemException;
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.common.util.StringUtils;
 import org.apache.cxf.jaxrs.ext.MessageContext;
+import org.apache.cxf.rs.security.oauth.data.AuthorizationInput;
 import org.apache.cxf.rs.security.oauth.data.OAuthAuthorizationData;
 import org.apache.cxf.rs.security.oauth.data.RequestToken;
 import org.apache.cxf.rs.security.oauth.data.UserSubject;
@@ -99,7 +100,12 @@ public class AuthorizationRequestHandler
                 token.setSubject(new UserSubject(sc.getUserPrincipal() == null 
                     ? null : sc.getUserPrincipal().getName(), roleNames));
                 
-                String verifier = dataProvider.setRequestTokenVerifier(token);
+                AuthorizationInput input = new AuthorizationInput();
+                input.setToken(token);
+                //TODO: check if some of individual scopes may have been 
refused 
+                input.setApprovedScopes(token.getScopes());
+                
+                String verifier = dataProvider.finalizeAuthorization(input);
                 queryParams.put(OAuth.OAUTH_VERIFIER, verifier);
             } else {
                 dataProvider.removeToken(token);

Modified: 
cxf/trunk/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/oauth/MemoryOAuthDataProvider.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/oauth/MemoryOAuthDataProvider.java?rev=1242840&r1=1242839&r2=1242840&view=diff
==============================================================================
--- 
cxf/trunk/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/oauth/MemoryOAuthDataProvider.java
 (original)
+++ 
cxf/trunk/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/oauth/MemoryOAuthDataProvider.java
 Fri Feb 10 16:26:50 2012
@@ -29,6 +29,7 @@ import java.util.concurrent.ConcurrentHa
 import org.apache.cxf.jaxrs.impl.MetadataMap;
 import org.apache.cxf.rs.security.oauth.data.AccessToken;
 import org.apache.cxf.rs.security.oauth.data.AccessTokenRegistration;
+import org.apache.cxf.rs.security.oauth.data.AuthorizationInput;
 import org.apache.cxf.rs.security.oauth.data.Client;
 import org.apache.cxf.rs.security.oauth.data.OAuthPermission;
 import org.apache.cxf.rs.security.oauth.data.RequestToken;
@@ -102,8 +103,9 @@ public class MemoryOAuthDataProvider imp
         return (RequestToken)oauthTokens.get(tokenString);
     }
 
-    public String setRequestTokenVerifier(RequestToken requestToken) throws
+    public String finalizeAuthorization(AuthorizationInput input) throws
             OAuthServiceException {
+        RequestToken requestToken = input.getToken();
         requestToken.setVerifier(generateToken());
         return requestToken.getVerifier();
     }


Reply via email to