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");
}