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(-)
----------------------------------------------------------------------