|
|
|
|
@ -16,11 +16,16 @@
@@ -16,11 +16,16 @@
|
|
|
|
|
|
|
|
|
|
package org.springframework.security.web.authentication.switchuser; |
|
|
|
|
|
|
|
|
|
import static org.assertj.core.api.Assertions.*; |
|
|
|
|
import static org.mockito.Mockito.*; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.List; |
|
|
|
|
import javax.servlet.FilterChain; |
|
|
|
|
|
|
|
|
|
import org.junit.*; |
|
|
|
|
import org.junit.After; |
|
|
|
|
import org.junit.Before; |
|
|
|
|
import org.junit.Rule; |
|
|
|
|
import org.junit.Test; |
|
|
|
|
import org.junit.rules.ExpectedException; |
|
|
|
|
|
|
|
|
|
import org.springframework.mock.web.MockHttpServletRequest; |
|
|
|
|
import org.springframework.mock.web.MockHttpServletResponse; |
|
|
|
|
import org.springframework.security.authentication.AccountExpiredException; |
|
|
|
|
@ -42,8 +47,10 @@ import org.springframework.security.web.DefaultRedirectStrategy;
@@ -42,8 +47,10 @@ import org.springframework.security.web.DefaultRedirectStrategy;
|
|
|
|
|
import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler; |
|
|
|
|
import org.springframework.security.web.util.matcher.AnyRequestMatcher; |
|
|
|
|
|
|
|
|
|
import javax.servlet.FilterChain; |
|
|
|
|
import java.util.*; |
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat; |
|
|
|
|
import static org.mockito.Mockito.mock; |
|
|
|
|
import static org.mockito.Mockito.never; |
|
|
|
|
import static org.mockito.Mockito.verify; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Tests |
|
|
|
|
@ -75,6 +82,7 @@ public class SwitchUserFilterTests {
@@ -75,6 +82,7 @@ public class SwitchUserFilterTests {
|
|
|
|
|
request.setScheme("http"); |
|
|
|
|
request.setServerName("localhost"); |
|
|
|
|
request.setRequestURI("/login/impersonate"); |
|
|
|
|
request.setMethod("POST"); |
|
|
|
|
|
|
|
|
|
return request; |
|
|
|
|
} |
|
|
|
|
@ -125,6 +133,20 @@ public class SwitchUserFilterTests {
@@ -125,6 +133,20 @@ public class SwitchUserFilterTests {
|
|
|
|
|
assertThat(filter.requiresExitUser(request)).isFalse(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
// gh-4183
|
|
|
|
|
public void requiresExitUserWhenGetThenDoesNotMatch() { |
|
|
|
|
SwitchUserFilter filter = new SwitchUserFilter(); |
|
|
|
|
|
|
|
|
|
MockHttpServletRequest request = new MockHttpServletRequest(); |
|
|
|
|
request.setScheme("http"); |
|
|
|
|
request.setServerName("localhost"); |
|
|
|
|
request.setRequestURI("/login/impersonate"); |
|
|
|
|
request.setMethod("GET"); |
|
|
|
|
|
|
|
|
|
assertThat(filter.requiresExitUser(request)).isFalse(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void requiresExitUserWhenMatcherThenWorks() { |
|
|
|
|
SwitchUserFilter filter = new SwitchUserFilter(); |
|
|
|
|
@ -159,6 +181,20 @@ public class SwitchUserFilterTests {
@@ -159,6 +181,20 @@ public class SwitchUserFilterTests {
|
|
|
|
|
assertThat(filter.requiresSwitchUser(request)).isFalse(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
// gh-4183
|
|
|
|
|
public void requiresSwitchUserWhenGetThenDoesNotMatch() { |
|
|
|
|
SwitchUserFilter filter = new SwitchUserFilter(); |
|
|
|
|
|
|
|
|
|
MockHttpServletRequest request = new MockHttpServletRequest(); |
|
|
|
|
request.setScheme("http"); |
|
|
|
|
request.setServerName("localhost"); |
|
|
|
|
request.setRequestURI("/login/impersonate"); |
|
|
|
|
request.setMethod("GET"); |
|
|
|
|
|
|
|
|
|
assertThat(filter.requiresSwitchUser(request)).isFalse(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void requiresSwitchUserWhenMatcherThenWorks() { |
|
|
|
|
SwitchUserFilter filter = new SwitchUserFilter(); |
|
|
|
|
|