You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ay...@apache.org on 2011/07/15 10:27:21 UTC

svn commit: r1147016 - in /cxf/branches/2.4.x-fixes: ./ rt/core/src/main/java/org/apache/cxf/interceptor/security/DefaultSecurityContext.java rt/core/src/test/java/org/apache/cxf/interceptor/security/DefaultSecurityContextTest.java

Author: ay
Date: Fri Jul 15 08:27:21 2011
New Revision: 1147016

URL: http://svn.apache.org/viewvc?rev=1147016&view=rev
Log:
Merged revisions 1146773 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r1146773 | ay | 2011-07-14 18:09:39 +0200 (Thu, 14 Jul 2011) | 1 line
  
  [CXF-3655] DefaultSecurityContext to handle implicit roles
........

Modified:
    cxf/branches/2.4.x-fixes/   (props changed)
    cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/security/DefaultSecurityContext.java
    cxf/branches/2.4.x-fixes/rt/core/src/test/java/org/apache/cxf/interceptor/security/DefaultSecurityContextTest.java

Propchange: cxf/branches/2.4.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jul 15 08:27:21 2011
@@ -1 +1 @@
-/cxf/trunk:1144977,1145682
+/cxf/trunk:1144977,1145682,1146773

Propchange: cxf/branches/2.4.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/security/DefaultSecurityContext.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/security/DefaultSecurityContext.java?rev=1147016&r1=1147015&r2=1147016&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/security/DefaultSecurityContext.java (original)
+++ cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/security/DefaultSecurityContext.java Fri Jul 15 08:27:21 2011
@@ -68,7 +68,10 @@ public class DefaultSecurityContext impl
     public boolean isUserInRole(String role) {
         if (subject != null) {
             for (Principal principal : subject.getPrincipals()) {
-                if (principal instanceof Group && checkGroup((Group)principal, role)) { 
+                if (principal instanceof Group && checkGroup((Group)principal, role)) {
+                    return true;
+                } else if (p != principal
+                           && role.equals(principal.getName())) {
                     return true;
                 }
             }

Modified: cxf/branches/2.4.x-fixes/rt/core/src/test/java/org/apache/cxf/interceptor/security/DefaultSecurityContextTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/core/src/test/java/org/apache/cxf/interceptor/security/DefaultSecurityContextTest.java?rev=1147016&r1=1147015&r2=1147016&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/rt/core/src/test/java/org/apache/cxf/interceptor/security/DefaultSecurityContextTest.java (original)
+++ cxf/branches/2.4.x-fixes/rt/core/src/test/java/org/apache/cxf/interceptor/security/DefaultSecurityContextTest.java Fri Jul 15 08:27:21 2011
@@ -100,5 +100,18 @@ public class DefaultSecurityContextTest 
         s.getPrincipals().add(group);
         assertTrue(new DefaultSecurityContext(p, s).isUserInRole("friend"));
     }
+
+    @Test
+    public void testUserInImplicitRoles() {
+        Subject s = new Subject();
+        Principal p = new SimplePrincipal("Barry");
+        s.getPrincipals().add(p);
+        Principal role = new SimplePrincipal("friend");
+        s.getPrincipals().add(role);
+        LoginSecurityContext context = new DefaultSecurityContext(p, s); 
+        assertTrue(context.isUserInRole("friend"));
+        assertFalse(context.isUserInRole("family"));
+        assertFalse(context.isUserInRole("Barry"));
+    }
     
 }