[java-identity-provider COMMIT] /trunk/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/...

noreply at shibboleth.net noreply at shibboleth.net
Tue Jun 24 07:00:57 EDT 2014


Author: rdw
Date: Tue Jun 24 07:00:57 2014
New Revision: 6157

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=6157&view=rev
Log:
Add test agains unsupported, but schema valid configurations (it's that rule reference thing again)

Modified:
    trunk/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/basic/NotMatcherParser.java

Modified: trunk/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/basic/NotMatcherParser.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/basic/NotMatcherParser.java?rev=6157&r1=6156&r2=6157&view=diff
==============================================================================
--- trunk/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/basic/NotMatcherParser.java (original)
+++ trunk/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/basic/NotMatcherParser.java Tue Jun 24 07:00:57 2014
@@ -28,6 +28,7 @@
 import net.shibboleth.idp.attribute.filter.spring.BaseFilterParser;
 import net.shibboleth.utilities.java.support.xml.ElementSupport;
 
+import org.springframework.beans.factory.BeanCreationException;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
 import org.w3c.dom.Element;
@@ -41,7 +42,7 @@
     public static final QName SCHEMA_TYPE = new QName(AttributeFilterBasicNamespaceHandler.NAMESPACE, "NOT");
 
     /** {@inheritDoc} */
-    @Nonnull protected Class<?> getBeanClass(@Nonnull final Element element) {
+    @Override @Nonnull protected Class<?> getBeanClass(@Nonnull final Element element) {
         if (isPolicyRule(element)) {
             return NotPolicyRule.class;
         }
@@ -49,7 +50,7 @@
     }
 
     /** {@inheritDoc} */
-    protected void doParse(@Nonnull final Element configElement, @Nonnull final ParserContext parserContext,
+    @Override protected void doParse(@Nonnull final Element configElement, @Nonnull final ParserContext parserContext,
             @Nonnull final BeanDefinitionBuilder builder) {
         super.doParse(configElement, parserContext, builder);
 
@@ -60,10 +61,17 @@
         final List<Element> ruleElements =
                 ElementSupport.getChildElementsByTagNameNS(configElement,
                         AttributeFilterBasicNamespaceHandler.NAMESPACE, "Rule");
+        final List<Element> ruleReference =
+                ElementSupport.getChildElementsByTagNameNS(configElement,
+                        AttributeFilterBasicNamespaceHandler.NAMESPACE, "RuleReference");
 
         if (ruleElements != null && !ruleElements.isEmpty()) {
 
             builder.addConstructorArgValue(SpringSupport.parseCustomElements(ruleElements, parserContext).get(0));
+            
+        } else if (ruleReference != null && !ruleReference.isEmpty()) {
+            throw new BeanCreationException(parserContext.getReaderContext().getResource().getDescription(), myId,
+                    "RuleReference is not supported");
         }
     }
 }



More information about the commits mailing list