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 2014/10/30 14:03:38 UTC
[1/2] git commit: [CXF-6072] Updating AbstractHttpDestination to
delegate to HttpServletRequest to get Principal
Repository: cxf
Updated Branches:
refs/heads/master d48057b63 -> 84de2c297
[CXF-6072] Updating AbstractHttpDestination to delegate to HttpServletRequest to get Principal
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/83ca30fd
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/83ca30fd
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/83ca30fd
Branch: refs/heads/master
Commit: 83ca30fda0e7712071a3cffb8cf68fb386891fdc
Parents: 5e06ba0
Author: Sergey Beryozkin <sb...@talend.com>
Authored: Thu Oct 30 13:02:52 2014 +0000
Committer: Sergey Beryozkin <sb...@talend.com>
Committed: Thu Oct 30 13:02:52 2014 +0000
----------------------------------------------------------------------
.../transport/http/AbstractHTTPDestination.java | 41 +++++++++++++-------
1 file changed, 26 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/83ca30fd/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
----------------------------------------------------------------------
diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
index 62367c5..6b1714f 100644
--- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
+++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
@@ -155,7 +155,7 @@ public abstract class AbstractHTTPDestination
return bus;
}
- private AuthorizationPolicy getAuthorizationPolicyFromMessage(String credentials, Principal pp) {
+ private AuthorizationPolicy getAuthorizationPolicyFromMessage(String credentials, SecurityContext sc) {
if (credentials == null || StringUtils.isEmpty(credentials.trim())) {
return null;
}
@@ -177,8 +177,8 @@ public abstract class AbstractHTTPDestination
}
}
- AuthorizationPolicy policy = pp == null
- ? new AuthorizationPolicy() : new PrincipalAuthorizationPolicy(pp);
+ AuthorizationPolicy policy = sc.getUserPrincipal() == null
+ ? new AuthorizationPolicy() : new PrincipalAuthorizationPolicy(sc);
policy.setUserName(username);
policy.setPassword(password);
policy.setAuthorizationType(authType);
@@ -187,9 +187,8 @@ public abstract class AbstractHTTPDestination
// Invalid authentication => treat as not authenticated or use the Principal
}
}
- if (pp != null) {
- AuthorizationPolicy policy = new PrincipalAuthorizationPolicy(pp);
- policy.setUserName(pp.getName());
+ if (sc.getUserPrincipal() != null) {
+ AuthorizationPolicy policy = new PrincipalAuthorizationPolicy(sc);
policy.setAuthorization(credentials);
policy.setAuthorizationType(authType);
return policy;
@@ -197,12 +196,21 @@ public abstract class AbstractHTTPDestination
return null;
}
public static final class PrincipalAuthorizationPolicy extends AuthorizationPolicy {
- final Principal principal;
- public PrincipalAuthorizationPolicy(Principal p) {
- principal = p;
+ final SecurityContext sc;
+ public PrincipalAuthorizationPolicy(SecurityContext sc) {
+ this.sc = sc;
}
public Principal getPrincipal() {
- return principal;
+ return sc.getUserPrincipal();
+ }
+ @Override
+ public String getUserName() {
+ String name = super.getUserName();
+ if (name != null) {
+ return name;
+ }
+ Principal pp = getPrincipal();
+ return pp != null ? pp.getName() : null;
}
}
@@ -358,21 +366,24 @@ public abstract class AbstractHTTPDestination
}
inMessage.put(Message.FIXED_PARAMETER_ORDER, isFixedParameterOrder());
inMessage.put(Message.ASYNC_POST_RESPONSE_DISPATCH, Boolean.TRUE);
- final Principal pp = req.getUserPrincipal();
- inMessage.put(SecurityContext.class, new SecurityContext() {
+
+ SecurityContext httpSecurityContext = new SecurityContext() {
public Principal getUserPrincipal() {
- return pp;
+ return req.getUserPrincipal();
}
public boolean isUserInRole(String role) {
return req.isUserInRole(role);
}
- });
+ };
+
+ inMessage.put(SecurityContext.class, httpSecurityContext);
Headers headers = new Headers(inMessage);
headers.copyFromRequest(req);
String credentials = headers.getAuthorization();
- AuthorizationPolicy authPolicy = getAuthorizationPolicyFromMessage(credentials, pp);
+ AuthorizationPolicy authPolicy = getAuthorizationPolicyFromMessage(credentials,
+ httpSecurityContext);
inMessage.put(AuthorizationPolicy.class, authPolicy);
propogateSecureSession(req, inMessage);
[2/2] git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/cxf
Posted by se...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/cxf
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/84de2c29
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/84de2c29
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/84de2c29
Branch: refs/heads/master
Commit: 84de2c29754bd9c9610124ef9b65032e519e2b19
Parents: 83ca30f d48057b
Author: Sergey Beryozkin <sb...@talend.com>
Authored: Thu Oct 30 13:03:21 2014 +0000
Committer: Sergey Beryozkin <sb...@talend.com>
Committed: Thu Oct 30 13:03:21 2014 +0000
----------------------------------------------------------------------
.../org/apache/cxf/endpoint/ClientImpl.java | 4 +-
.../WebSocketVirtualServletRequest.java | 14 ++-
.../websocket/ahc/AhcWebSocketConduit.java | 14 +--
.../atmosphere/AtmosphereWebSocketHandler.java | 4 +-
.../websocket/jetty/JettyWebSocket.java | 8 +-
.../cxf/ws/security/trust/STSLoginModule.java | 120 ++++++++++++++++++-
.../trust/claims/RoleClaimsCallbackHandler.java | 67 +++++++++++
.../systest/sts/jaas/ClaimsCallbackHandler.java | 68 -----------
.../apache/cxf/systest/sts/jaas/JAASTest.java | 32 +++++
.../apache/cxf/systest/sts/jaas/DoubleIt.wsdl | 3 +
.../apache/cxf/systest/sts/jaas/cxf-service.xml | 24 +++-
.../systests/basic/src/test/resources/sts.jaas | 10 ++
12 files changed, 272 insertions(+), 96 deletions(-)
----------------------------------------------------------------------