[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
Fri Oct 16 19:42:58 EDT 2015
Author: putmanb
Date: Fri Oct 16 19:42:57 2015
New Revision: 7832
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=7832&view=rev
Log:
IDP-671: Create Action(s) and supporting code to issue SAML 2 Assertions decorated for delegation
Add new 'allowDelegation' Predicate to SAML 2 BrowserSSOProfileConfiguration.
Update Spring config parser to handle.
Update dependent code to use.
Added:
trunk/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/logic/DummyPredicate.java (with props)
trunk/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/saml/saml2SSOAllowDelegationPredicate.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/beans.xml
trunk/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/saml/saml2SSOValues.xml
trunk/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/BrowserSSOProfileConfiguration.java
trunk/idp-saml-api/src/test/java/net/shibboleth/idp/saml/saml2/profile/config/BrowserSSOProfileConfigurationTest.java
trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/delegation/impl/PopulateDelegationContext.java
trunk/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/delegation/impl/PopulateDelegationContextTest.java
trunk/idp-schema/src/main/resources/schema/shibboleth-relying-party-saml.xsd
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=7832&r1=7831&r2=7832&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 Fri Oct 16 19:42:57 2015
@@ -26,6 +26,7 @@
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;
+import net.shibboleth.utilities.java.support.xml.AttributeSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -38,6 +39,9 @@
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
+
+import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
/**
* Parser to generate {@link BrowserSSOProfileConfiguration} from a <code>saml:SAML2SSOProfile</code>.
@@ -140,10 +144,31 @@
builder.addPropertyValue("skipEndpointValidationWhenSigned",
StringSupport.trimOrNull(element.getAttributeNS(null, "skipEndpointValidationWhenSigned")));
}
-
+
if (element.hasAttributeNS(null, "allowDelegation")) {
- builder.addPropertyValue("allowingDelegation",
- StringSupport.trimOrNull(element.getAttributeNS(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())));
+ }
+ }
+ }
+
+ if (element.hasAttributeNS(null, "allowDelegationPredicateRef")) {
+ builder.addPropertyReference("allowDelegation",
+ StringSupport.trimOrNull(element.getAttributeNS(null, "allowDelegationPredicateRef")));
}
[... 385 lines stripped ...]
More information about the commits
mailing list