[java-identity-provider COMMIT] /trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/delegation/i...
noreply at shibboleth.net
noreply at shibboleth.net
Wed Oct 19 17:53:58 EDT 2016
Author: putmanb
Date: Wed Oct 19 17:53:58 2016
New Revision: 8519
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=8519&view=rev
Log:
IDP-1012: Delegation Liberty SSOS flow Assertion Subject C14N fails for transient NameIDs
Refactor to move NameID SPNameQualifier eval logic into default requester strategy function.
Modified:
trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/delegation/impl/ProcessDelegatedAssertion.java
Modified: trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/delegation/impl/ProcessDelegatedAssertion.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/delegation/impl/ProcessDelegatedAssertion.java?rev=8519&r1=8518&r2=8519&view=diff
==============================================================================
--- trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/delegation/impl/ProcessDelegatedAssertion.java (original)
+++ trunk/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/delegation/impl/ProcessDelegatedAssertion.java Wed Oct 19 17:53:58 2016
@@ -21,17 +21,6 @@
import javax.annotation.Nullable;
import javax.security.auth.Subject;
-import net.shibboleth.idp.authn.AuthnEventIds;
-import net.shibboleth.idp.authn.context.SubjectCanonicalizationContext;
-import net.shibboleth.idp.profile.AbstractProfileAction;
-import net.shibboleth.idp.profile.context.navigate.RelyingPartyIdLookupFunction;
-import net.shibboleth.idp.profile.context.navigate.ResponderIdLookupFunction;
-import net.shibboleth.idp.saml.authn.principal.NameIDPrincipal;
-import net.shibboleth.utilities.java.support.annotation.Prototype;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.xml.SerializeSupport;
-
import org.opensaml.core.xml.io.MarshallingException;
import org.opensaml.core.xml.util.XMLObjectSupport;
import org.opensaml.profile.action.ActionSupport;
@@ -43,6 +32,16 @@
import org.slf4j.LoggerFactory;
import com.google.common.base.Function;
+
+import net.shibboleth.idp.authn.AuthnEventIds;
+import net.shibboleth.idp.authn.context.SubjectCanonicalizationContext;
+import net.shibboleth.idp.profile.AbstractProfileAction;
+import net.shibboleth.idp.profile.context.navigate.ResponderIdLookupFunction;
+import net.shibboleth.idp.saml.authn.principal.NameIDPrincipal;
+import net.shibboleth.utilities.java.support.annotation.Prototype;
+import net.shibboleth.utilities.java.support.component.ComponentSupport;
+import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.xml.SerializeSupport;
/**
@@ -85,7 +84,7 @@
* Constructor.
*/
public ProcessDelegatedAssertion() {
- requesterLookupStrategy = new SAMLPresenterLookupFunction();
+ requesterLookupStrategy = new DefaultC14NRequesterLookupFunction();
responderLookupStrategy = new ResponderIdLookupFunction();
assertionTokenStrategy = new DelegatedAssertionLookupStrategy();
}
@@ -175,22 +174,15 @@
c14n.setSubject(subject);
String requesterEntityID = null;
- if (nameID.getSPNameQualifier() != null) {
- requesterEntityID = nameID.getSPNameQualifier();
- log.debug("Saw NameID SPNameQualifier: {}", requesterEntityID);
- } else {
- if (requesterLookupStrategy != null) {
- requesterEntityID = requesterLookupStrategy.apply(profileRequestContext);
- log.debug("Resolved SAML requester entityID from context: {}", requesterEntityID);
- }
- }
-
+ if (requesterLookupStrategy != null) {
+ requesterEntityID = requesterLookupStrategy.apply(profileRequestContext);
+ }
if (requesterEntityID != null) {
log.debug("Resolved effective SAML requester entityID for Subject c14n: {}", requesterEntityID);
c14n.setRequesterId(requesterEntityID);
} else {
- log.warn("Unable to determine effective SAML requester for c14n purposes, "
- + "Subject c14n may fail, depending on NameID type");
+ log.warn("Unable to determine effective SAML requester for c14n, Subject c14n may fail, "
+ + "depending on NameID type");
}
if (responderLookupStrategy != null) {
@@ -200,23 +192,33 @@
}
/**
- * Default strategy for resolving the SAML presenter entityID.
- */
- public static class SAMLPresenterLookupFunction implements Function<ProfileRequestContext, String> {
+ * Default strategy for resolving the requester entityID for SAML subject c14n.
+ */
+ public class DefaultC14NRequesterLookupFunction implements Function<ProfileRequestContext, String> {
/** {@inheritDoc} */
public String apply(final ProfileRequestContext input) {
[... 34 lines stripped ...]
More information about the commits
mailing list