[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