[java-opensaml COMMIT] in /trunk/opensaml-saml-impl/src: main/java/org/opensaml/saml/saml2/binding/security/impl/Extr...
noreply at shibboleth.net
noreply at shibboleth.net
Tue Jul 15 11:18:18 EDT 2014
Author: scantor
Date: Tue Jul 15 11:18:18 2014
New Revision: 3952
URL: http://svn.shibboleth.net/view/java-opensaml?rev=3952&view=rev
Log:
IDP-414: Ignore channel bindings unsigned at the message level
Modified:
trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandler.java
trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandlerTest.java
Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandler.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandler.java?rev=3952&r1=3951&r2=3952&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandler.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandler.java Tue Jul 15 11:18:18 2014
@@ -27,6 +27,7 @@
import org.opensaml.messaging.context.MessageContext;
import org.opensaml.messaging.handler.AbstractMessageHandler;
import org.opensaml.messaging.handler.MessageHandlerException;
+import org.opensaml.saml.common.binding.SAMLBindingSupport;
import org.opensaml.saml.common.messaging.context.ChannelBindingsContext;
import org.opensaml.saml.ext.saml2cb.ChannelBindings;
import org.opensaml.saml.saml2.common.Extensions;
@@ -48,6 +49,9 @@
@Override
protected boolean doPreInvoke(@Nonnull final MessageContext messageContext) throws MessageHandlerException {
if (!super.doPreInvoke(messageContext) || messageContext.getMessage() == null) {
+ return false;
+ } else if (!SAMLBindingSupport.isMessageSigned(messageContext)) {
+ log.debug("Message was not signed, cannot extract ChannelBindings from it");
return false;
}
Modified: trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandlerTest.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandlerTest.java?rev=3952&r1=3951&r2=3952&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandlerTest.java (original)
+++ trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandlerTest.java Tue Jul 15 11:18:18 2014
@@ -26,6 +26,7 @@
import org.opensaml.messaging.context.MessageContext;
import org.opensaml.messaging.handler.MessageHandlerException;
import org.opensaml.saml.common.messaging.context.ChannelBindingsContext;
+import org.opensaml.saml.common.messaging.context.SAMLBindingContext;
import org.opensaml.saml.common.xml.SAMLConstants;
import org.opensaml.saml.ext.saml2cb.ChannelBindings;
import org.opensaml.saml.saml1.profile.SAML1ActionTestingSupport;
@@ -33,18 +34,27 @@
import org.opensaml.saml.saml2.core.AuthnRequest;
import org.opensaml.saml.saml2.profile.SAML2ActionTestingSupport;
import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/** {@link ExtractChannelBindingsExtensionsHandler} unit test. */
public class ExtractChannelBindingsExtensionsHandlerTest extends OpenSAMLInitBaseTestCase {
- /** Test that the handler returns nothing on a missing message. */
- @Test public void testMissingMessage() throws MessageHandlerException, ComponentInitializationException {
- final MessageContext messageCtx = new MessageContext();
-
- final ExtractChannelBindingsExtensionsHandler handler = new ExtractChannelBindingsExtensionsHandler();
+ private MessageContext messageCtx;
+
+ private ExtractChannelBindingsExtensionsHandler handler;
+
+ @BeforeMethod public void setUp() throws ComponentInitializationException {
+ handler = new ExtractChannelBindingsExtensionsHandler();
handler.initialize();
+ messageCtx = new MessageContext();
+ messageCtx.getSubcontext(SAMLBindingContext.class, true).setHasBindingSignature(true);
+ }
+
+ /** Test that the handler returns nothing on a missing message. */
+ @Test public void testMissingMessage() throws MessageHandlerException {
+
handler.invoke(messageCtx);
Assert.assertNull(messageCtx.getSubcontext(ChannelBindingsContext.class));
@@ -54,26 +64,21 @@
}
/** Test that the handler does nothing when no extensions exist. */
- @Test public void testNoExtensions() throws MessageHandlerException, ComponentInitializationException {
[... 62 lines stripped ...]
More information about the commits
mailing list