[java-identity-provider COMMIT] in /trunk: ./ idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageB...

noreply at shibboleth.net noreply at shibboleth.net
Mon Mar 13 11:03:57 EDT 2017


Author: scantor
Date: Mon Mar 13 11:03:57 2017
New Revision: 8675

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=8675&view=rev
Log:
IDP-1141 - SLO not working in IE/Edge

Modified:
    trunk/   (props changed)
    trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java
    trunk/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/StorageBackedSessionManagerTest.java

Modified: trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java?rev=8675&r1=8674&r2=8675&view=diff
==============================================================================
--- trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java	(original)
+++ trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java	Mon Mar 13 11:03:57 2017
@@ -62,6 +62,7 @@
 import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Predicates;
+import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 
@@ -788,7 +789,12 @@
      * @return the IdPSession object, or null
      * @throws ResolverException if an error occurs during lookup
      */
-    @Nullable private IdPSession lookupBySessionId(@Nonnull @NotEmpty final String sessionId) throws ResolverException {
+    @Nullable private IdPSession lookupBySessionId(@Nullable final String sessionId) throws ResolverException {
+        if (Strings.isNullOrEmpty(sessionId)) {
+            log.debug("Lookup of null/empty session ID");
+            return null;
+        }
+        
         log.debug("Performing primary lookup on session ID {}", sessionId);
 
         try {

Modified: trunk/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/StorageBackedSessionManagerTest.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/StorageBackedSessionManagerTest.java?rev=8675&r1=8674&r2=8675&view=diff
==============================================================================
--- trunk/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/StorageBackedSessionManagerTest.java	(original)
+++ trunk/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/StorageBackedSessionManagerTest.java	Mon Mar 13 11:03:57 2017
@@ -27,6 +27,7 @@
 
 import javax.json.JsonObject;
 import javax.json.stream.JsonGenerator;
+import javax.servlet.http.Cookie;
 
 import net.shibboleth.idp.authn.AuthenticationFlowDescriptor;
 import net.shibboleth.idp.authn.AuthenticationResult;
@@ -38,6 +39,7 @@
 import net.shibboleth.idp.session.SPSession;
 import net.shibboleth.idp.session.SPSessionSerializerRegistry;
 import net.shibboleth.idp.session.SessionException;
+import net.shibboleth.idp.session.criterion.HttpServletRequestCriterion;
 import net.shibboleth.idp.session.criterion.SPSessionCriterion;
 import net.shibboleth.idp.session.criterion.SessionIdCriterion;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
@@ -102,10 +104,23 @@
         sessionManager.setSPSessionSerializerRegistry(serializerRegistry);
     }
     
+    @Test
+    public void testEmptyCookie() throws ResolverException, SessionException, InterruptedException {
+
+        final MockHttpServletRequest mockRequest = new MockHttpServletRequest();
+        HttpServletRequestResponseContext.loadCurrent(mockRequest, new MockHttpServletResponse());
+
+        final Cookie cookie = new Cookie(StorageBackedSessionManager.DEFAULT_COOKIE_NAME, "");
+        mockRequest.setCookies(cookie);
+        
+        // Do a lookup.
+        Assert.assertNull(sessionManager.resolveSingle(new CriteriaSet(new HttpServletRequestCriterion())));
+    }
+    
     @Test(threadPoolSize = 10, invocationCount = 10,  timeOut = 10000)
     public void testSimpleSession() throws ResolverException, SessionException, InterruptedException {
 
-        MockHttpServletResponse mockResponse = new MockHttpServletResponse();
+        final MockHttpServletResponse mockResponse = new MockHttpServletResponse();
         HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), mockResponse);
         
         // Test a failed lookup.
@@ -153,7 +168,7 @@
     @Test(threadPoolSize = 10, invocationCount = 10,  timeOut = 10000)
     public void testAddress() throws SessionException, ResolverException {
         
-        MockHttpServletRequest mockRequest = new MockHttpServletRequest();
+        final MockHttpServletRequest mockRequest = new MockHttpServletRequest();
         mockRequest.setRemoteAddr("192.168.1.1");
         HttpServletRequestResponseContext.loadCurrent(mockRequest, new MockHttpServletResponse());
         



More information about the commits mailing list