[java-opensaml COMMIT] in /trunk: opensaml-saml-api/src/main/java/org/opensaml/saml/common/binding/SAMLBindingSupport...

noreply at shibboleth.net noreply at shibboleth.net
Wed Jan 30 20:28:07 EST 2013


Author: putmanb
Date: Wed Jan 30 20:28:07 2013
New Revision: 3194

URL: http://svn.shibboleth.net/view/java-opensaml?rev=3194&view=rev
Log:
Get rid of some other erroneous use of UriSupport, in artifact encoders which aren't currently tested.
Move some code from base encoder to support class.

Modified:
    trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/binding/SAMLBindingSupport.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/binding/encoding/HTTPArtifactEncoder.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/BaseSAML2MessageEncoder.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/HTTPArtifactEncoder.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/HTTPPostEncoder.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/encoding/HTTPRedirectDeflateEncoder.java

Modified: trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/binding/SAMLBindingSupport.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/binding/SAMLBindingSupport.java?rev=3194&r1=3193&r2=3194&view=diff
==============================================================================
--- trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/binding/SAMLBindingSupport.java (original)
+++ trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/binding/SAMLBindingSupport.java Wed Jan 30 20:28:07 2013
@@ -122,5 +122,17 @@
             }
         }
     }
+    
+    /**
+     * Sets the destination attribute on the outbound message if it is a {@link StatusResponseType} message.
+     * 
+     * @param outboundMessage outbound SAML message
+     * @param endpointURL destination endpoint
+     */
+    public static void setSaml2ResponseDestination(SAMLObject outboundMessage, String endpointURL) {
+        if (outboundMessage instanceof StatusResponseType) {
+            ((StatusResponseType) outboundMessage).setDestination(endpointURL);
+        }
+    }
 
 }

Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/binding/encoding/HTTPArtifactEncoder.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/binding/encoding/HTTPArtifactEncoder.java?rev=3194&r1=3193&r2=3194&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/binding/encoding/HTTPArtifactEncoder.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/binding/encoding/HTTPArtifactEncoder.java Wed Jan 30 20:28:07 2013
@@ -18,7 +18,7 @@
 package org.opensaml.saml.saml1.binding.encoding;
 
 import java.io.IOException;
-import java.net.URI;
+import java.net.MalformedURLException;
 import java.util.List;
 
 import javax.servlet.http.HttpServletResponse;
@@ -27,7 +27,6 @@
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.net.UriSupport;
 
 import org.opensaml.core.xml.io.MarshallingException;
 import org.opensaml.messaging.context.BasicMessageMetadataContext;
@@ -44,6 +43,7 @@
 import org.opensaml.saml.saml1.binding.artifact.SAML1ArtifactType0001;
 import org.opensaml.saml.saml1.core.Assertion;
 import org.opensaml.saml.saml1.core.Response;
+import org.opensaml.util.net.UrlBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -123,13 +123,21 @@
     protected void doEncode() throws MessageEncodingException {
         MessageContext<SAMLObject> messageContext = getMessageContext();
 
-        URI endpointUrl = getEndpointURL(messageContext);
-
-        List<Pair<String, String>> params = UriSupport.parseQueryString(endpointUrl.getQuery());
+        String endpointUrl = getEndpointURL(messageContext).toString();
+        
+        UrlBuilder urlBuilder = null;
+        try {
+            urlBuilder = new UrlBuilder(endpointUrl);
+        } catch (MalformedURLException e) {
+            throw new MessageEncodingException("Endpoint URL " + endpointUrl + " is not a valid URL", e);
+        }
+        
+        List<Pair<String, String>> queryParams = urlBuilder.getQueryParams();
+        queryParams.clear();
 
         String relayState = SAMLBindingSupport.getRelayState(messageContext);
         if (SAMLBindingSupport.checkRelayState(relayState)) {
-            params.add(new Pair<String, String>("TARGET", relayState));
+            queryParams.add(new Pair<String, String>("TARGET", relayState));
         }
 
         SAML1ArtifactBuilder artifactBuilder;
@@ -165,12 +173,10 @@
                 throw new MessageEncodingException("Unable to marshall assertion to be represented as an artifact", e);
             }
             artifactString = artifact.base64Encode();

[... 157 lines stripped ...]


More information about the commits mailing list