[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
Wed Oct 21 14:32:34 EDT 2015


Author: putmanb
Date: Wed Oct 21 14:32:34 2015
New Revision: 7849

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=7849&view=rev
Log:
IDP-671: Create Action(s) and supporting code to issue SAML 2 Assertions decorated for delegation

Switch Spring config parser to use a FactoryBean for handling the allowDelegation/allowDelegationPredicateRef
pair.  This is necessary to allow config file property replacement to work properly. 

Added:
    trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/saml/impl/AllowDelegationPredicateFactoryBean.java   (with props)
    trunk/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/saml/saml2SSOAllowDelegationPropertyReplacement.xml   (with props)
Modified:
    trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/saml/impl/SAML2BrowserSSOProfileParser.java
    trunk/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/saml/SAML2BrowserSSOProfileTest.java
    trunk/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/file.properties
    trunk/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/saml/saml2SSOAllowDelegationPredicate.xml

Modified: trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/saml/impl/SAML2BrowserSSOProfileParser.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/saml/impl/SAML2BrowserSSOProfileParser.java?rev=7849&r1=7848&r2=7849&view=diff
==============================================================================
--- trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/saml/impl/SAML2BrowserSSOProfileParser.java	(original)
+++ trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/saml/impl/SAML2BrowserSSOProfileParser.java	Wed Oct 21 14:32:34 2015
@@ -23,6 +23,7 @@
 import javax.xml.namespace.QName;
 
 import net.shibboleth.ext.spring.util.SpringSupport;
+import net.shibboleth.idp.profile.spring.relyingparty.metadata.filter.impl.PredicateFilterDirectionFactoryBean;
 import net.shibboleth.idp.saml.authn.principal.AuthnContextClassRefPrincipal;
 import net.shibboleth.idp.saml.saml2.profile.config.BrowserSSOProfileConfiguration;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -145,31 +146,17 @@
                     StringSupport.trimOrNull(element.getAttributeNS(null, "skipEndpointValidationWhenSigned")));
         }
         
+        final BeanDefinitionBuilder allowDelegationPredicateBuilder =
+                BeanDefinitionBuilder.genericBeanDefinition(AllowDelegationPredicateFactoryBean.class);
         if (element.hasAttributeNS(null, "allowDelegation")) {
-            if (element.hasAttributeNS(null, "allowDelegationPredicateRef")) {
-                log.warn("Attribute 'allowDelegation' is being ignored in favor of 'allowDelegationPredicateRef'");
-            } else {
-                Boolean value = AttributeSupport.getAttributeValueAsBoolean(
-                        element.getAttributeNodeNS(null, "allowDelegation"));
-                if (value != null) {
-                    if (value) {
-                        builder.addPropertyValue("allowDelegation", Predicates.alwaysTrue());
-                    } else {
-                        builder.addPropertyValue("allowDelegation", Predicates.alwaysFalse());
-                    }
-                } else {
-                    log.error("Attribute 'allowDelegation' is being ignored because it's not a legal xs:boolean value");
-                    throw new BeanDefinitionParsingException(new Problem(
-                            "Attribute 'allowDelegation' is being ignored because it's not a legal xs:boolean value",
-                            new Location(parserContext.getReaderContext().getResource())));
-                }
-            }
+            allowDelegationPredicateBuilder.addPropertyValue("allowDelegation", 
+                    element.getAttributeNS(null, "allowDelegation"));
         }
-        
         if (element.hasAttributeNS(null, "allowDelegationPredicateRef")) {
-            builder.addPropertyReference("allowDelegation", 
-                    StringSupport.trimOrNull(element.getAttributeNS(null, "allowDelegationPredicateRef")));
+            allowDelegationPredicateBuilder.addPropertyReference("allowDelegationPredicate", 
+                    element.getAttributeNS(null, "allowDelegationPredicateRef"));
         }
+        builder.addPropertyValue("allowDelegation", allowDelegationPredicateBuilder.getBeanDefinition());
 
         setPropertiesFromRelyingParty(element, builder);
     }

Modified: trunk/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/saml/SAML2BrowserSSOProfileTest.java

[... 69 lines stripped ...]


More information about the commits mailing list