You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2013/07/16 11:44:04 UTC

svn commit: r1503637 - /cxf/branches/2.7.x-fixes/rt/security/src/main/java/org/apache/cxf/rt/security/xacml/DefaultXACMLRequestBuilder.java

Author: coheigea
Date: Tue Jul 16 09:44:03 2013
New Revision: 1503637

URL: http://svn.apache.org/r1503637
Log:
Send multiple roles as XACML AttributeValues of a single Attribute

Modified:
    cxf/branches/2.7.x-fixes/rt/security/src/main/java/org/apache/cxf/rt/security/xacml/DefaultXACMLRequestBuilder.java

Modified: cxf/branches/2.7.x-fixes/rt/security/src/main/java/org/apache/cxf/rt/security/xacml/DefaultXACMLRequestBuilder.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/security/src/main/java/org/apache/cxf/rt/security/xacml/DefaultXACMLRequestBuilder.java?rev=1503637&r1=1503636&r2=1503637&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/security/src/main/java/org/apache/cxf/rt/security/xacml/DefaultXACMLRequestBuilder.java (original)
+++ cxf/branches/2.7.x-fixes/rt/security/src/main/java/org/apache/cxf/rt/security/xacml/DefaultXACMLRequestBuilder.java Tue Jul 16 09:44:03 2013
@@ -94,16 +94,23 @@ public class DefaultXACMLRequestBuilder 
             );
         attributes.add(subjectIdAttribute);
         
-        for (String role : roles) {
-            if (role != null) {
-                AttributeValueType subjectRoleAttributeValue = 
-                    RequestComponentBuilder.createAttributeValueType(role);
+        if (roles != null) {
+            List<AttributeValueType> roleAttributes = new ArrayList<AttributeValueType>();
+            for (String role : roles) {
+                if (role != null) {
+                    AttributeValueType subjectRoleAttributeValue = 
+                        RequestComponentBuilder.createAttributeValueType(role);
+                    roleAttributes.add(subjectRoleAttributeValue);
+                }
+            }
+            
+            if (!roleAttributes.isEmpty()) {
                 AttributeType subjectRoleAttribute = 
                     RequestComponentBuilder.createAttributeType(
                             XACMLConstants.SUBJECT_ROLE,
                             XACMLConstants.XS_ANY_URI,
                             issuer,
-                            Collections.singletonList(subjectRoleAttributeValue)
+                            roleAttributes
                     );
                 attributes.add(subjectRoleAttribute);
             }