[java-opensaml COMMIT] in /trunk: opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/servlet/Abstrac...
noreply at shibboleth.net
noreply at shibboleth.net
Fri Mar 1 18:13:01 EST 2013
Author: putmanb
Date: Fri Mar 1 18:13:00 2013
New Revision: 3242
URL: http://svn.shibboleth.net/view/java-opensaml?rev=3242&view=rev
Log:
For lifecycle reasons, we can't store the HttpServletRequest in a subcontext. The message context tree may live beyond the initial request/response exchange (e.g. Spring Webflow in the IdP).
Instead Handlers should use a lookup strategy to obtain it.
Added:
trunk/opensaml-messaging-api/src/test/java/org/opensaml/messaging/context/navigate/
trunk/opensaml-messaging-api/src/test/java/org/opensaml/messaging/context/navigate/MockHttpServletRequestLookupStrategy.java (with props)
Modified:
trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/servlet/AbstractHttpServletRequestMessageDecoder.java
trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/servlet/HttpServletRequestContext.java
trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/binding/SAMLBindingSupport.java
trunk/opensaml-saml-impl/pom.xml
trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/security/ReceivedEndpointSecurityHandler.java
trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/security/ReceivedEndpointSecurityHandlerTest.java
Modified: trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/servlet/AbstractHttpServletRequestMessageDecoder.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/servlet/AbstractHttpServletRequestMessageDecoder.java?rev=3242&r1=3241&r2=3242&view=diff
==============================================================================
--- trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/servlet/AbstractHttpServletRequestMessageDecoder.java (original)
+++ trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/servlet/AbstractHttpServletRequestMessageDecoder.java Fri Mar 1 18:13:00 2013
@@ -53,7 +53,6 @@
/** {@inheritDoc} */
public void decode() throws MessageDecodingException {
super.decode();
- getMessageContext().getSubcontext(HttpServletRequestContext.class, true).setHttpServletRequest(getHttpServletRequest());
}
/** {@inheritDoc} */
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=3242&r1=3241&r2=3242&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 Fri Mar 1 18:13:00 2013
@@ -22,13 +22,14 @@
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import javax.servlet.http.HttpServletRequest;
import net.shibboleth.utilities.java.support.logic.Constraint;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import org.opensaml.messaging.MessageException;
import org.opensaml.messaging.context.MessageContext;
-import org.opensaml.messaging.decoder.servlet.HttpServletRequestContext;
+import org.opensaml.messaging.context.navigate.ContextDataLookupFunction;
import org.opensaml.saml.common.SAMLObject;
import org.opensaml.saml.common.SignableSAMLObject;
import org.opensaml.saml.common.messaging.context.SamlBindingContext;
@@ -234,18 +235,20 @@
* Extract the transport endpoint URI at which this message was received.
*
* @param messageContext current message context
+ * @param requestLookupStrategy the strategy used to look up the HttpServletRequest
* @return string representing the transport endpoint URI at which the current message was received
- * @throws MessageException thrown if the endpoint can not be extracted from the message
+ * @throws MessageException thrown if the endpoint can not be looked up from the message
* context and converted to a string representation
*/
- public static String getActualReceiverEndpointUri(@Nonnull final MessageContext<SAMLObject> messageContext)
- throws MessageException {
- HttpServletRequestContext requestContext = messageContext.getSubcontext(HttpServletRequestContext.class, false);
- if (requestContext == null || requestContext.getHttpServletRequest() == null) {
- throw new MessageException("HttpServletRequest could not be obtained from message context");
- }
-
- return requestContext.getHttpServletRequest().getRequestURL().toString();
+ public static String getActualReceiverEndpointUri(@Nonnull final MessageContext<SAMLObject> messageContext,
+ @Nonnull final ContextDataLookupFunction<MessageContext<?>, HttpServletRequest> requestLookupStrategy)
+ throws MessageException {
[... 130 lines stripped ...]
More information about the commits
mailing list