[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