[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
Fri Oct 7 17:37:44 EDT 2016
Author: putmanb
Date: Fri Oct 7 17:37:44 2016
New Revision: 4524
URL: http://svn.shibboleth.net/view/java-opensaml?rev=4524&view=rev
Log:
Checkpoint some work 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=4524&r1=4523&r2=4524&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 Fri Oct 7 17:37:44 2016
@@ -23,7 +23,10 @@
import javax.servlet.http.HttpServletRequest;
import javax.xml.namespace.QName;
+import org.joda.time.DateTime;
+import org.joda.time.chrono.ISOChronology;
import org.opensaml.core.xml.util.XMLObjectSupport;
+import org.opensaml.messaging.context.InOutOperationContext;
import org.opensaml.messaging.context.MessageContext;
import org.opensaml.messaging.decoder.MessageDecodingException;
import org.opensaml.messaging.decoder.servlet.BaseHttpServletRequestXMLMessageDecoder;
@@ -31,6 +34,7 @@
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.artifact.SAMLSourceLocationArtifact;
import org.opensaml.saml.common.binding.decoding.SAMLMessageDecoder;
import org.opensaml.saml.common.binding.impl.DefaultEndpointResolver;
import org.opensaml.saml.common.messaging.context.SAMLBindingContext;
@@ -44,18 +48,27 @@
import org.opensaml.saml.metadata.resolver.RoleDescriptorResolver;
import org.opensaml.saml.saml2.binding.artifact.SAML2Artifact;
import org.opensaml.saml.saml2.binding.artifact.SAML2ArtifactBuilderFactory;
+import org.opensaml.saml.saml2.core.Artifact;
+import org.opensaml.saml.saml2.core.ArtifactResolve;
+import org.opensaml.saml.saml2.core.Issuer;
import org.opensaml.saml.saml2.metadata.ArtifactResolutionService;
import org.opensaml.saml.saml2.metadata.RoleDescriptor;
+import org.opensaml.security.SecurityException;
+import org.opensaml.soap.client.SOAPClient;
+import org.opensaml.soap.common.SOAPException;
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.codec.Base64Support;
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;
+import net.shibboleth.utilities.java.support.security.IdentifierGenerationStrategy;
+import net.shibboleth.utilities.java.support.security.SecureRandomIdentifierGenerationStrategy;
/**
* SAML 2 Artifact Binding decoder, support both HTTP GET and POST.
@@ -82,10 +95,33 @@
/** The peer entity role QName. */
@NonnullAfterInit private QName peerEntityRole;
+
+ /** SOAP client. */
+ private SOAPClient soapClient;
+
+ /** Identifier generation strategy. */
+ private IdentifierGenerationStrategy idStrategy;
/** {@inheritDoc} */
protected void doInitialize() throws ComponentInitializationException {
super.doInitialize();
+
+ if (roleDescriptorResolver == null) {
+ throw new ComponentInitializationException("RoleDescriptorResolver cannot be null");
+ }
+
+ if (peerEntityRole == null) {
+ throw new ComponentInitializationException("Peer entity role cannot be null");
+ }
+
+ if (soapClient == null) {
+ throw new ComponentInitializationException("SOAPClient cannot be null");
+ }
+
+ if (idStrategy == null) {
+ idStrategy = new SecureRandomIdentifierGenerationStrategy();
+ }
+
if (artifactBuilderFactory == null) {
artifactBuilderFactory = SAMLConfigurationSupport.getSAML2ArtifactBuilderFactory();
if (artifactBuilderFactory == null) {
@@ -98,13 +134,6 @@
artifactEndpointResolver = new DefaultEndpointResolver<>();
}
- if (roleDescriptorResolver == null) {
- //TODO default this? Need new impl that doesn't require EntityIdCriterion
- }
-
- if (peerEntityRole == null) {
[... 245 lines stripped ...]
More information about the commits
mailing list