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 2015/12/08 17:22:24 UTC

[1/2] cxf git commit: Updating AbstractOAuthProvider with some boilerplate code

Repository: cxf
Updated Branches:
  refs/heads/master 03f3fecbb -> 8461ddd12


Updating AbstractOAuthProvider with some boilerplate code


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/8aebfa30
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/8aebfa30
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/8aebfa30

Branch: refs/heads/master
Commit: 8aebfa30047f32e3a6b4feb7ffdd89208ec4f435
Parents: 55cbd9f
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Tue Dec 8 16:17:41 2015 +0000
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Tue Dec 8 16:17:41 2015 +0000

----------------------------------------------------------------------
 .../provider/AbstractOAuthDataProvider.java     | 51 ++++++++++++++++++--
 .../DefaultEHCacheOAuthDataProvider.java        |  1 +
 2 files changed, 49 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/8aebfa30/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/AbstractOAuthDataProvider.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/AbstractOAuthDataProvider.java b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/AbstractOAuthDataProvider.java
index b77dce9..a74aaf7 100644
--- a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/AbstractOAuthDataProvider.java
+++ b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/AbstractOAuthDataProvider.java
@@ -18,9 +18,13 @@
  */
 package org.apache.cxf.rs.security.oauth2.provider;
 
+import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
+import org.apache.cxf.jaxrs.ext.MessageContext;
 import org.apache.cxf.rs.security.oauth2.common.AccessTokenRegistration;
 import org.apache.cxf.rs.security.oauth2.common.Client;
 import org.apache.cxf.rs.security.oauth2.common.OAuthPermission;
@@ -35,6 +39,9 @@ public abstract class AbstractOAuthDataProvider implements OAuthDataProvider, Cl
     private long accessTokenLifetime = 3600L;
     private long refreshTokenLifetime; // refresh tokens are eternal by default
     private boolean recycleRefreshTokens = true;
+    private Map<String, OAuthPermission> permissionMap = new HashMap<String, OAuthPermission>();
+    private MessageContext messageContext;
+    
     
     protected AbstractOAuthDataProvider() {
     }
@@ -133,12 +140,21 @@ public abstract class AbstractOAuthDataProvider implements OAuthDataProvider, Cl
         return currentRefreshToken;
     }
 
-    
-
     @Override
-    public List<OAuthPermission> convertScopeToPermissions(Client client, List<String> requestedScope) {
+    public List<OAuthPermission> convertScopeToPermissions(Client client, List<String> requestedScope)
+            throws OAuthServiceException {
         if (requestedScope.isEmpty()) {
             return Collections.emptyList();
+        } else if (!permissionMap.isEmpty()) {
+            List<OAuthPermission> list = new ArrayList<OAuthPermission>();
+            for (String scope : requestedScope) {
+                OAuthPermission permission = permissionMap.get(scope);
+                if (permission == null) {
+                    throw new OAuthServiceException("Unexpected scope: " + scope);
+                }
+                list.add(permission);
+            }
+            return list;
         } else {
             throw new OAuthServiceException("Requested scopes can not be mapped");
         }
@@ -217,9 +233,38 @@ public abstract class AbstractOAuthDataProvider implements OAuthDataProvider, Cl
         this.recycleRefreshTokens = recycleRefreshTokens;
     }
     
+    public void init() {
+    }
+    
+    public void close() {
+    }
+    
     protected abstract void saveAccessToken(ServerAccessToken serverToken);
     protected abstract void saveRefreshToken(ServerAccessToken at, RefreshToken refreshToken);
     protected abstract ServerAccessToken revokeAccessToken(String accessTokenKey);
     protected abstract RefreshToken revokeRefreshToken(Client client, String refreshTokenKey);
     protected abstract RefreshToken getRefreshToken(Client client, String refreshTokenKey);
+
+    public Map<String, OAuthPermission> getPermissionMap() {
+        return permissionMap;
+    }
+
+    public void setPermissionMap(Map<String, OAuthPermission> permissionMap) {
+        this.permissionMap = permissionMap;
+    }
+    
+    public void setScopes(Map<String, String> scopes) {
+        for (Map.Entry<String, String> entry : scopes.entrySet()) {
+            OAuthPermission permission = new OAuthPermission(entry.getKey(), entry.getValue());
+            permissionMap.put(entry.getKey(), permission);
+        }
+    }
+
+    public MessageContext getMessageContext() {
+        return messageContext;
+    }
+
+    public void setMessageContext(MessageContext messageContext) {
+        this.messageContext = messageContext;
+    }
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/8aebfa30/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/DefaultEHCacheOAuthDataProvider.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/DefaultEHCacheOAuthDataProvider.java b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/DefaultEHCacheOAuthDataProvider.java
index bdf9d10..8a3b514 100644
--- a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/DefaultEHCacheOAuthDataProvider.java
+++ b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/DefaultEHCacheOAuthDataProvider.java
@@ -195,6 +195,7 @@ public class DefaultEHCacheOAuthDataProvider extends AbstractOAuthDataProvider {
         refreshTokenCache = createCache(cacheManager, refreshTokenKey);
     }
 
+    @Override
     public void close() {
         cacheManager.shutdown();
     }


[2/2] cxf git commit: Updating AbstractOAuthProvider with some boilerplate code

Posted by se...@apache.org.
Updating AbstractOAuthProvider with some boilerplate code


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/8461ddd1
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/8461ddd1
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/8461ddd1

Branch: refs/heads/master
Commit: 8461ddd121a1ded290fa38524b3f2cd7aa667ca3
Parents: 8aebfa3 03f3fec
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Tue Dec 8 16:22:04 2015 +0000
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Tue Dec 8 16:22:04 2015 +0000

----------------------------------------------------------------------
 .../provider/AbstractOAuthDataProvider.java     |   7 +-
 .../oauth2/provider/OAuthDataProvider.java      |   4 +-
 systests/rs-security/pom.xml                    |   9 -
 .../jaxrs/security/oauth2/JAXRSOAuth2Test.java  | 106 ++++-
 .../security/oauth2/OAuthDataProviderImpl.java  |   1 +
 .../security/oauth2/SamlCallbackHandler.java    |  53 ++-
 .../security/oauth2/SamlCallbackHandler2.java   | 158 -------
 .../oauth2/grants/AuthorizationGrantTest.java   | 447 +++++++++++++++++++
 .../security/oauth2/grants/BasicAuthFilter.java | 117 +++++
 .../oauth2/grants/BookServerOAuth2Grants.java   |  48 ++
 .../oauth2/grants/CallbackHandlerImpl.java      |  52 +++
 .../grants/CallbackHandlerLoginHandler.java     |  83 ++++
 .../oauth2/grants/OAuthDataProviderImpl.java    | 101 +++++
 .../jaxrs/security/oauth2/grants/client.xml     |  38 ++
 .../security/oauth2/grants/grants-server.xml    | 142 ++++++
 .../systest/jaxrs/security/oauth2/server.xml    |  29 ++
 16 files changed, 1209 insertions(+), 186 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/8461ddd1/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/AbstractOAuthDataProvider.java
----------------------------------------------------------------------
diff --cc rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/AbstractOAuthDataProvider.java
index a74aaf7,3c88608..149bff1
--- a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/AbstractOAuthDataProvider.java
+++ b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/AbstractOAuthDataProvider.java
@@@ -140,21 -133,12 +140,20 @@@ public abstract class AbstractOAuthData
          return currentRefreshToken;
      }
  
 -    
 -
      @Override
-     public List<OAuthPermission> convertScopeToPermissions(Client client, List<String> requestedScope)
-             throws OAuthServiceException {
-         if (requestedScope.isEmpty()) {
+     public List<OAuthPermission> convertScopeToPermissions(Client client, List<String> requestedScopes) {
+         if (requestedScopes.isEmpty()) {
              return Collections.emptyList();
 +        } else if (!permissionMap.isEmpty()) {
 +            List<OAuthPermission> list = new ArrayList<OAuthPermission>();
-             for (String scope : requestedScope) {
++            for (String scope : requestedScopes) {
 +                OAuthPermission permission = permissionMap.get(scope);
 +                if (permission == null) {
 +                    throw new OAuthServiceException("Unexpected scope: " + scope);
 +                }
 +                list.add(permission);
 +            }
 +            return list;
          } else {
              throw new OAuthServiceException("Requested scopes can not be mapped");
          }