[java-opensaml COMMIT] in /trunk/opensaml-saml-impl/src: main/java/org/opensaml/saml/saml2/profile/impl/AddSubjectCon...
noreply at shibboleth.net
noreply at shibboleth.net
Wed Mar 5 19:12:21 EST 2014
Author: scantor
Date: Wed Mar 5 19:12:20 2014
New Revision: 3675
URL: http://svn.shibboleth.net/view/java-opensaml?rev=3675&view=rev
Log:
Include pluggable and default population of SubjectConfirmationData
Modified:
trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddSubjectConfirmationToSubjects.java
trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddSubjectConfirmationToSubjectsTest.java
Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddSubjectConfirmationToSubjects.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddSubjectConfirmationToSubjects.java?rev=3675&r1=3674&r2=3675&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddSubjectConfirmationToSubjects.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddSubjectConfirmationToSubjects.java Wed Mar 5 19:12:20 2014
@@ -17,9 +17,12 @@
package org.opensaml.saml.saml2.profile.impl;
+import java.net.URI;
+
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import org.joda.time.DateTime;
import org.opensaml.profile.ProfileException;
import org.opensaml.profile.action.AbstractProfileAction;
import org.opensaml.profile.action.ActionSupport;
@@ -35,12 +38,17 @@
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
+import org.opensaml.messaging.context.MessageContext;
import org.opensaml.messaging.context.navigate.MessageLookup;
import org.opensaml.saml.common.SAMLObjectBuilder;
+import org.opensaml.saml.common.binding.BindingException;
+import org.opensaml.saml.common.binding.SAMLBindingSupport;
+import org.opensaml.saml.common.messaging.context.SAMLMessageInfoContext;
import org.opensaml.saml.saml2.core.Assertion;
import org.opensaml.saml.saml2.core.Response;
import org.opensaml.saml.saml2.core.Subject;
import org.opensaml.saml.saml2.core.SubjectConfirmation;
+import org.opensaml.saml.saml2.core.SubjectConfirmationData;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -72,12 +80,27 @@
/** Builder for SubjectConfirmation objects. */
@Nonnull private final SAMLObjectBuilder<SubjectConfirmation> confirmationBuilder;
+
+ /** Builder for SubjectConfirmation objects. */
+ @Nonnull private final SAMLObjectBuilder<SubjectConfirmationData> confirmationDataBuilder;
/** Flag controlling whether to overwrite existing confirmations. */
private boolean overwriteExisting;
/** Strategy used to locate the {@link Response} to operate on. */
- @Nonnull private Function<ProfileRequestContext, Response> responseLookupStrategy;
+ @Nonnull private Function<ProfileRequestContext,Response> responseLookupStrategy;
+
+ /** Optional strategy to obtain value for {@link SubjectConfirmationData#getAddress()}. */
+ @Nullable private Function<ProfileRequestContext,String> addressLookupStrategy;
+
+ /** Optional strategy to obtain value for {@link SubjectConfirmationData#getInResponseTo()}. */
+ @Nullable private Function<ProfileRequestContext,String> inResponseToLookupStrategy;
+
+ /** Optional strategy to obtain value for {@link SubjectConfirmationData#getRecipient()}. */
+ @Nullable private Function<ProfileRequestContext,String> recipientLookupStrategy;
+
+ /** Optional strategy to obtain value for {@link SubjectConfirmationData#getNotOnOrAfter()}. */
+ @Nullable private Function<ProfileRequestContext,Long> lifetimeLookupStrategy;
/** Method to add. */
@NonnullAfterInit private String confirmationMethod;
@@ -93,11 +116,68 @@
confirmationBuilder = (SAMLObjectBuilder<SubjectConfirmation>)
XMLObjectProviderRegistrySupport.getBuilderFactory().<SubjectConfirmation>getBuilderOrThrow(
SubjectConfirmation.DEFAULT_ELEMENT_NAME);
-
+ confirmationDataBuilder = (SAMLObjectBuilder<SubjectConfirmationData>)
+ XMLObjectProviderRegistrySupport.getBuilderFactory().<SubjectConfirmationData>getBuilderOrThrow(
+ SubjectConfirmationData.DEFAULT_ELEMENT_NAME);
overwriteExisting = true;
-
responseLookupStrategy =
Functions.compose(new MessageLookup<>(Response.class), new OutboundMessageContextLookup());
+
+ // Default pulls from servlet request.
+ addressLookupStrategy = new Function<ProfileRequestContext,String>() {
+ public String apply(ProfileRequestContext input) {
+ final String address = getHttpServletRequest() != null ? getHttpServletRequest().getRemoteAddr() : null;
+ log.debug("{} Setting confirmation data Address to {}", getLogPrefix(),
+ address != null ? address : "(none)");
+ return address;
[... 254 lines stripped ...]
More information about the commits
mailing list