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/06/16 16:58:45 UTC
cxf git commit: Minor updates to OAuth2 filters
Repository: cxf
Updated Branches:
refs/heads/master 38d843c97 -> 2647813e1
Minor updates to OAuth2 filters
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/2647813e
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/2647813e
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/2647813e
Branch: refs/heads/master
Commit: 2647813e1bf760e1701ee8176bb6f35f1d0ba44b
Parents: 38d843c
Author: Sergey Beryozkin <sb...@talend.com>
Authored: Tue Jun 16 15:58:21 2015 +0100
Committer: Sergey Beryozkin <sb...@talend.com>
Committed: Tue Jun 16 15:58:21 2015 +0100
----------------------------------------------------------------------
.../oauth2/client/ClientCodeRequestFilter.java | 2 +-
.../client/MemoryClientCodeStateManager.java | 17 ++++++++++-------
2 files changed, 11 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/2647813e/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/ClientCodeRequestFilter.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/ClientCodeRequestFilter.java b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/ClientCodeRequestFilter.java
index b6eee3e..6fb0864 100644
--- a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/ClientCodeRequestFilter.java
+++ b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/ClientCodeRequestFilter.java
@@ -107,7 +107,7 @@ public class ClientCodeRequestFilter implements ContainerRequestFilter {
private Response createCodeResponse(ContainerRequestContext rc, UriInfo ui) {
MultivaluedMap<String, String> redirectState = createRedirectState(rc, ui);
- String theState = redirectState != null ? redirectState.getFirst(OAuthConstants.SCOPE) : null;
+ String theState = redirectState != null ? redirectState.getFirst(OAuthConstants.STATE) : null;
String redirectScope = redirectState != null ? redirectState.getFirst(OAuthConstants.SCOPE) : null;
String theScope = redirectScope != null ? redirectScope : scopes;
URI uri = OAuthClientUtils.getAuthorizationURI(authorizationServiceUri,
http://git-wip-us.apache.org/repos/asf/cxf/blob/2647813e/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/MemoryClientCodeStateManager.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/MemoryClientCodeStateManager.java b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/MemoryClientCodeStateManager.java
index 5e5b316..994a842 100644
--- a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/MemoryClientCodeStateManager.java
+++ b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/MemoryClientCodeStateManager.java
@@ -24,6 +24,8 @@ import javax.ws.rs.core.MultivaluedMap;
import org.apache.cxf.jaxrs.ext.MessageContext;
import org.apache.cxf.jaxrs.impl.MetadataMap;
+import org.apache.cxf.rs.security.oauth2.utils.OAuthConstants;
+import org.apache.cxf.rs.security.oauth2.utils.OAuthUtils;
public class MemoryClientCodeStateManager implements ClientCodeStateManager {
private ConcurrentHashMap<String, MultivaluedMap<String, String>> map =
@@ -32,17 +34,18 @@ public class MemoryClientCodeStateManager implements ClientCodeStateManager {
@Override
public MultivaluedMap<String, String> toRedirectState(MessageContext mc,
MultivaluedMap<String, String> requestState) {
- String name = mc.getSecurityContext().getUserPrincipal().getName();
- String hashCode = Integer.toString(name.hashCode());
- map.put(hashCode, requestState);
- return new MetadataMap<String, String>();
+ String stateParam = OAuthUtils.generateRandomTokenKey();
+ map.put(stateParam, requestState);
+
+ MultivaluedMap<String, String> redirectMap = new MetadataMap<String, String>();
+ redirectMap.putSingle(OAuthConstants.STATE, stateParam);
+ return redirectMap;
}
@Override
public MultivaluedMap<String, String> fromRedirectState(MessageContext mc,
MultivaluedMap<String, String> redirectState) {
- String name = mc.getSecurityContext().getUserPrincipal().getName();
- String hashCode = Integer.toString(name.hashCode());
- return map.remove(hashCode);
+ String stateParam = redirectState.getFirst(OAuthConstants.STATE);
+ return map.remove(stateParam);
}
}