[java-identity-provider COMMIT] in /trunk: idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filte...

noreply at shibboleth.net noreply at shibboleth.net
Sun Jun 1 22:15:10 EDT 2014


Author: scantor
Date: Sun Jun  1 22:15:09 2014
New Revision: 6018

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=6018&view=rev
Log:
IDP-413 - Recode group checking functions to use object metadata

Modified:
    trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AttributeRequesterInEntityGroupPolicyRule.java
    trunk/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/BaseMetadataTests.java
    trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/logic/EntitiesDescriptorPredicate.java

Modified: trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AttributeRequesterInEntityGroupPolicyRule.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AttributeRequesterInEntityGroupPolicyRule.java?rev=6018&r1=6017&r2=6018&view=diff
==============================================================================
--- trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AttributeRequesterInEntityGroupPolicyRule.java (original)
+++ trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AttributeRequesterInEntityGroupPolicyRule.java Sun Jun  1 22:15:09 2014
@@ -26,9 +26,8 @@
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
-import org.opensaml.core.xml.XMLObject;
 import org.opensaml.saml.common.messaging.context.SAMLMetadataContext;
-import org.opensaml.saml.saml2.metadata.EntitiesDescriptor;
+import org.opensaml.saml.metadata.EntityGroupName;
 import org.opensaml.saml.saml2.metadata.EntityDescriptor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -39,10 +38,10 @@
 public class AttributeRequesterInEntityGroupPolicyRule extends AbstractPolicyRule {
 
     /** Class logger. */
-    private final Logger log = LoggerFactory.getLogger(AttributeRequesterInEntityGroupPolicyRule.class);
+    @Nonnull private final Logger log = LoggerFactory.getLogger(AttributeRequesterInEntityGroupPolicyRule.class);
 
     /** The entity group to match against. */
-    private String entityGroup;
+    @Nullable private String entityGroup;
 
     /**
      * Gets the entity group to match against.
@@ -58,7 +57,7 @@
      * 
      * @param group entity group to match against
      */
-    public void setEntityGroup(@Nullable String group) {
+    public void setEntityGroup(@Nullable final String group) {
         entityGroup = StringSupport.trimOrNull(group);
     }
 
@@ -69,7 +68,7 @@
      * 
      * @return entity descriptor for the entity to check
      */
-    @Nullable protected EntityDescriptor getEntityMetadata(final AttributeFilterContext filterContext) {
+    @Nullable protected EntityDescriptor getEntityMetadata(@Nonnull final AttributeFilterContext filterContext) {
         final SAMLMetadataContext metadataContext = filterContext.getRequesterMetadataContext();
 
         if (null == metadataContext) {
@@ -88,7 +87,7 @@
      *         {@inheritDoc}
      */
     @Override
-    public Tristate matches(@Nonnull AttributeFilterContext input) {
+    @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext input) {
 
         Constraint.isNotNull(input, "Context must be supplied");
         ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
@@ -104,20 +103,11 @@
             return Tristate.FAIL;
         }
 
-        XMLObject currentGroup = entity.getParent();
-        if (currentGroup == null) {
-            log.warn("{} Entity descriptor does not have a parent object, unable to check if entity is in group {}",
-                    getLogPrefix(), entityGroup);
-            return Tristate.FAIL;
-        }
-
-        do {
-            if (currentGroup instanceof EntitiesDescriptor && ((EntitiesDescriptor) currentGroup).getName() != null
-                    && entityGroup.equals(((EntitiesDescriptor) currentGroup).getName())) {
+        for (final EntityGroupName group : entity.getObjectMetadata().get(EntityGroupName.class)) {
+            if (group.getName().equals(entityGroup)) {
                 return Tristate.TRUE;
             }
-            currentGroup = currentGroup.getParent();
-        } while (currentGroup != null);
+        }
 
         return Tristate.FALSE;
     }

Modified: trunk/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/BaseMetadataTests.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/BaseMetadataTests.java?rev=6018&r1=6017&r2=6018&view=diff
==============================================================================

[... 87 lines stripped ...]


More information about the commits mailing list