[java-identity-provider COMMIT] in /trunk/idp-profile-spring/src: main/java/net/shibboleth/idp/profile/spring/relying...

noreply at shibboleth.net noreply at shibboleth.net
Mon Feb 23 07:48:04 EST 2015


Author: rdw
Date: Mon Feb 23 07:48:03 2015
New Revision: 7365

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=7365&view=rev
Log:
IDP-540 indirect the PredicateFilter.Direction setting through a factory bean.  This allows for the (unlikely) case of someone putting this into a property

Added:
    trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/PredicateFilterDirectoryFactoryBean.java   (with props)
Modified:
    trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/PredicateFilterParser.java
    trunk/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/PredicateFilterParserTest.java

Modified: trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/PredicateFilterParser.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/PredicateFilterParser.java?rev=7365&r1=7364&r2=7365&view=diff
==============================================================================
--- trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/PredicateFilterParser.java (original)
+++ trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/PredicateFilterParser.java Mon Feb 23 07:48:03 2015
@@ -54,7 +54,7 @@
 
     /** Class logger. */
     @Nonnull private final Logger log = LoggerFactory.getLogger(PredicateFilterParser.class);
-    
+
     /** {@inheritDoc} */
     @Override protected Class<?> getBeanClass(Element element) {
         return PredicateFilter.class;
@@ -68,17 +68,11 @@
                     element.getAttributeNS(null, "removeEmptyEntitiesDescriptors"));
         }
 
-        final String direction = element.getAttributeNS(null, "direction");
-        if (direction == null) {
-            throw new BeanCreationException("Predicate filter requires 'direction' attribute");
-        } else if ("exclude".equals(direction)) {
-            builder.addConstructorArgValue(PredicateFilter.Direction.EXCLUDE);
-        } else if ("include".equals(direction)) {
-            builder.addConstructorArgValue(PredicateFilter.Direction.INCLUDE);
-        } else {
-            throw new BeanCreationException("Predicate filter direction must be 'include' or 'exclude'");
-        }
-        
+        final BeanDefinitionBuilder directionBuilder =
+                BeanDefinitionBuilder.genericBeanDefinition(PredicateFilterDirectoryFactoryBean.class);
+        directionBuilder.addConstructorArgValue(element.getAttributeNS(null, "direction"));
+        builder.addConstructorArgValue(directionBuilder.getBeanDefinition());
+
         if (element.hasAttributeNS(null, "conditionRef")) {
             log.info("Found conditionRef attribute, ignoring embedded Entity/Group/Tag elements");
             builder.addConstructorArgReference(element.getAttributeNS(null, "conditionRef"));
@@ -86,8 +80,8 @@
             builder.addConstructorArgValue(parseCustomElements(element));
         }
     }
-    
-// Checkstyle: CyclomaticComplexity OFF
+
+    // Checkstyle: CyclomaticComplexity OFF
     /**
      * Parser custom element content into a {@link com.google.common.base.Predicate} to pass to the filter constructor.
      * 
@@ -96,12 +90,12 @@
      * @return the bean definition of the Predicate to install
      */
     @Nonnull public BeanDefinition parseCustomElements(@Nonnull final Element element) {
-        
+
         // Track which predicates have to be built.
         final BeanDefinitionBuilder entityIdPredicateBuilder = parseEntityPredicate(element);
         final BeanDefinitionBuilder groupPredicateBuilder = parseGroupPredicate(element);
         final BeanDefinitionBuilder tagPredicateBuilder = parseTagPredicate(element);
-        
+
         int count = 0;
         if (entityIdPredicateBuilder != null) {
             count++;
@@ -112,7 +106,7 @@
         if (tagPredicateBuilder != null) {
             count++;
         }
-        
+
         if (count == 0) {
             throw new BeanCreationException("No Entity, Group, or Tag element found");
         } else if (count == 1) {
@@ -139,8 +133,9 @@
             return orBuilder.getBeanDefinition();
         }
     }
-// Checkstyle: CyclomaticComplexity ON
-    
+
+    // Checkstyle: CyclomaticComplexity ON
+
     /**
      * Parse Entity elements into a builder for an {@link EntityIdPredicate}.
      * 
@@ -157,7 +152,7 @@
             builder.addConstructorArgValue(managedEntityList);
             return builder;
         }
-        
+
         return null;
     }
 
@@ -169,7 +164,7 @@
      * @return builder for the predicate, or null if none needed
      */
     @Nullable public BeanDefinitionBuilder parseGroupPredicate(@Nonnull final Element element) {
-        
+
         final List<Element> groupList =

[... 42 lines stripped ...]


More information about the commits mailing list