[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