[java-opensaml COMMIT] /trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPArti...
noreply at shibboleth.net
noreply at shibboleth.net
Thu May 19 02:40:29 EDT 2016
Author: putmanb
Date: Thu May 19 02:40:27 2016
New Revision: 4458
URL: http://svn.shibboleth.net/view/java-opensaml?rev=4458&view=rev
Log:
Checkpoint work-in-progress on SAML 2 artifact decoder.
Modified:
trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPArtifactDecoder.java
Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPArtifactDecoder.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPArtifactDecoder.java?rev=4458&r1=4457&r2=4458&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPArtifactDecoder.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPArtifactDecoder.java Thu May 19 02:40:27 2016
@@ -21,21 +21,42 @@
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.servlet.http.HttpServletRequest;
-
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-
+import javax.xml.namespace.QName;
+
+import org.opensaml.core.xml.util.XMLObjectSupport;
import org.opensaml.messaging.context.MessageContext;
import org.opensaml.messaging.decoder.MessageDecodingException;
import org.opensaml.messaging.decoder.servlet.BaseHttpServletRequestXMLMessageDecoder;
import org.opensaml.saml.common.SAMLObject;
import org.opensaml.saml.common.binding.BindingDescriptor;
+import org.opensaml.saml.common.binding.EndpointResolver;
import org.opensaml.saml.common.binding.SAMLBindingSupport;
import org.opensaml.saml.common.binding.decoding.SAMLMessageDecoder;
+import org.opensaml.saml.common.binding.impl.DefaultEndpointResolver;
import org.opensaml.saml.common.messaging.context.SAMLBindingContext;
import org.opensaml.saml.common.xml.SAMLConstants;
+import org.opensaml.saml.config.SAMLConfigurationSupport;
+import org.opensaml.saml.criterion.ArtifactSourceIDCriterion;
+import org.opensaml.saml.criterion.EndpointCriterion;
+import org.opensaml.saml.criterion.EntityRoleCriterion;
+import org.opensaml.saml.criterion.ProtocolCriterion;
+import org.opensaml.saml.criterion.RoleDescriptorCriterion;
+import org.opensaml.saml.metadata.resolver.RoleDescriptorResolver;
+import org.opensaml.saml.saml2.binding.artifact.AbstractSAML2Artifact;
+import org.opensaml.saml.saml2.binding.artifact.SAML2ArtifactBuilderFactory;
+import org.opensaml.saml.saml2.binding.artifact.SAML2ArtifactType0004;
+import org.opensaml.saml.saml2.metadata.ArtifactResolutionService;
+import org.opensaml.saml.saml2.metadata.RoleDescriptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.utilities.java.support.component.ComponentSupport;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
+import net.shibboleth.utilities.java.support.resolver.ResolverException;
/**
* SAML 2 Artifact Binding decoder, support both HTTP GET and POST.
@@ -50,6 +71,140 @@
/** Optional {@link BindingDescriptor} to inject into {@link SAMLBindingContext} created. */
@Nullable private BindingDescriptor bindingDescriptor;
+
+ /** SAML 2 artifact builder factory. */
+ @NonnullAfterInit private SAML2ArtifactBuilderFactory artifactBuilderFactory;
+
+ /** Resolver for ArtifactResolutionService endpoints. **/
+ @NonnullAfterInit private EndpointResolver<ArtifactResolutionService> artifactEndpointResolver;
+
+ /** Role descriptor resolver. */
+ @NonnullAfterInit private RoleDescriptorResolver roleDescriptorResolver;
+
+ /** The peer entity role QName. */
+ @NonnullAfterInit private QName peerEntityRole;
+
+ /** {@inheritDoc} */
+ protected void doInitialize() throws ComponentInitializationException {
+ super.doInitialize();
+ if (artifactBuilderFactory == null) {
+ artifactBuilderFactory = SAMLConfigurationSupport.getSAML2ArtifactBuilderFactory();
+ if (artifactBuilderFactory == null) {
+ throw new ComponentInitializationException("Could not obtain a required instance "
+ + "of SAML2ArtifactBuilderFactory");
+ }
+ }
+
+ if (artifactEndpointResolver == null) {
+ artifactEndpointResolver = new DefaultEndpointResolver<>();
+ }
+
+ if (roleDescriptorResolver == null) {
+ //TODO default this? Need new impl that doesn't require EntityIdCriterion
+ }
+
+ if (peerEntityRole == null) {
[... 214 lines stripped ...]
More information about the commits
mailing list