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:25:29 UTC

cxf git commit: Updating AbstractOAuthProvider with some boilerplate code

Repository: cxf
Updated Branches:
  refs/heads/3.1.x-fixes dfe90b649 -> c27dc582c


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/c27dc582
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/c27dc582
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/c27dc582

Branch: refs/heads/3.1.x-fixes
Commit: c27dc582c203d01fa8f63f500def10f0ae57d1e4
Parents: dfe90b6
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:25:13 2015 +0000

----------------------------------------------------------------------
 .../provider/AbstractOAuthDataProvider.java     | 48 +++++++++++++++++++-
 .../DefaultEHCacheOAuthDataProvider.java        |  1 +
 2 files changed, 47 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/c27dc582/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 3c88608..149bff1 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,20 @@ public abstract class AbstractOAuthDataProvider implements OAuthDataProvider, Cl
         return currentRefreshToken;
     }
 
-    
-
     @Override
     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 : 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");
         }
@@ -217,9 +232,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/c27dc582/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();
     }