|
@@ -16,11 +16,16 @@
|
|
|
|
|
|
package org.springframework.security.web.authentication.switchuser;
|
|
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.junit.rules.ExpectedException;
|
|
|
|
+
|
|
import org.springframework.mock.web.MockHttpServletRequest;
|
|
import org.springframework.mock.web.MockHttpServletRequest;
|
|
import org.springframework.mock.web.MockHttpServletResponse;
|
|
import org.springframework.mock.web.MockHttpServletResponse;
|
|
import org.springframework.security.authentication.AccountExpiredException;
|
|
import org.springframework.security.authentication.AccountExpiredException;
|
|
@@ -42,8 +47,10 @@ import org.springframework.security.web.DefaultRedirectStrategy;
|
|
import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler;
|
|
import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler;
|
|
import org.springframework.security.web.util.matcher.AnyRequestMatcher;
|
|
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
|
|
* Tests
|
|
@@ -75,6 +82,7 @@ public class SwitchUserFilterTests {
|
|
request.setScheme("http");
|
|
request.setScheme("http");
|
|
request.setServerName("localhost");
|
|
request.setServerName("localhost");
|
|
request.setRequestURI("/login/impersonate");
|
|
request.setRequestURI("/login/impersonate");
|
|
|
|
+ request.setMethod("POST");
|
|
|
|
|
|
return request;
|
|
return request;
|
|
}
|
|
}
|
|
@@ -125,6 +133,20 @@ public class SwitchUserFilterTests {
|
|
assertThat(filter.requiresExitUser(request)).isFalse();
|
|
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
|
|
@Test
|
|
public void requiresExitUserWhenMatcherThenWorks() {
|
|
public void requiresExitUserWhenMatcherThenWorks() {
|
|
SwitchUserFilter filter = new SwitchUserFilter();
|
|
SwitchUserFilter filter = new SwitchUserFilter();
|
|
@@ -159,6 +181,20 @@ public class SwitchUserFilterTests {
|
|
assertThat(filter.requiresSwitchUser(request)).isFalse();
|
|
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
|
|
@Test
|
|
public void requiresSwitchUserWhenMatcherThenWorks() {
|
|
public void requiresSwitchUserWhenMatcherThenWorks() {
|
|
SwitchUserFilter filter = new SwitchUserFilter();
|
|
SwitchUserFilter filter = new SwitchUserFilter();
|