|
@@ -15,23 +15,28 @@
|
|
*/
|
|
*/
|
|
package org.springframework.security.web.csrf;
|
|
package org.springframework.security.web.csrf;
|
|
|
|
|
|
|
|
+import java.lang.reflect.Method;
|
|
|
|
+
|
|
|
|
+import javax.servlet.http.Cookie;
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
+
|
|
import org.junit.Test;
|
|
import org.junit.Test;
|
|
import org.junit.runner.RunWith;
|
|
import org.junit.runner.RunWith;
|
|
import org.mockito.ArgumentCaptor;
|
|
import org.mockito.ArgumentCaptor;
|
|
import org.mockito.Mock;
|
|
import org.mockito.Mock;
|
|
import org.powermock.core.classloader.annotations.PrepareForTest;
|
|
import org.powermock.core.classloader.annotations.PrepareForTest;
|
|
import org.powermock.modules.junit4.PowerMockRunner;
|
|
import org.powermock.modules.junit4.PowerMockRunner;
|
|
-import org.springframework.util.ReflectionUtils;
|
|
|
|
|
|
|
|
-import javax.servlet.http.Cookie;
|
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
|
-import javax.servlet.http.HttpServletResponse;
|
|
|
|
-import java.lang.reflect.Method;
|
|
|
|
|
|
+import org.springframework.util.ReflectionUtils;
|
|
|
|
|
|
|
|
+import static org.mockito.Matchers.eq;
|
|
|
|
+import static org.mockito.Matchers.same;
|
|
import static org.mockito.Mockito.mock;
|
|
import static org.mockito.Mockito.mock;
|
|
-import static org.mockito.Mockito.*;
|
|
|
|
|
|
+import static org.mockito.Mockito.never;
|
|
|
|
+import static org.mockito.Mockito.verify;
|
|
import static org.powermock.api.mockito.PowerMockito.spy;
|
|
import static org.powermock.api.mockito.PowerMockito.spy;
|
|
-import static org.powermock.api.mockito.PowerMockito.*;
|
|
|
|
|
|
+import static org.powermock.api.mockito.PowerMockito.verifyStatic;
|
|
import static org.powermock.api.mockito.PowerMockito.when;
|
|
import static org.powermock.api.mockito.PowerMockito.when;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -39,7 +44,7 @@ import static org.powermock.api.mockito.PowerMockito.when;
|
|
* @since 4.1
|
|
* @since 4.1
|
|
*/
|
|
*/
|
|
@RunWith(PowerMockRunner.class)
|
|
@RunWith(PowerMockRunner.class)
|
|
-@PrepareForTest({ReflectionUtils.class, Method.class})
|
|
|
|
|
|
+@PrepareForTest({ ReflectionUtils.class, Method.class })
|
|
public class CookieCsrfTokenRepositoryServlet3Tests {
|
|
public class CookieCsrfTokenRepositoryServlet3Tests {
|
|
|
|
|
|
@Mock
|
|
@Mock
|
|
@@ -48,8 +53,8 @@ public class CookieCsrfTokenRepositoryServlet3Tests {
|
|
@Test
|
|
@Test
|
|
public void httpOnlyServlet30() throws Exception {
|
|
public void httpOnlyServlet30() throws Exception {
|
|
spy(ReflectionUtils.class);
|
|
spy(ReflectionUtils.class);
|
|
- when(ReflectionUtils.findMethod(Cookie.class, "setHttpOnly",
|
|
|
|
- boolean.class)).thenReturn(method);
|
|
|
|
|
|
+ when(ReflectionUtils.findMethod(Cookie.class, "setHttpOnly", boolean.class))
|
|
|
|
+ .thenReturn(this.method);
|
|
|
|
|
|
HttpServletRequest request = mock(HttpServletRequest.class);
|
|
HttpServletRequest request = mock(HttpServletRequest.class);
|
|
when(request.getContextPath()).thenReturn("/contextpath");
|
|
when(request.getContextPath()).thenReturn("/contextpath");
|
|
@@ -63,14 +68,14 @@ public class CookieCsrfTokenRepositoryServlet3Tests {
|
|
|
|
|
|
verify(response).addCookie(cookie.capture());
|
|
verify(response).addCookie(cookie.capture());
|
|
verifyStatic();
|
|
verifyStatic();
|
|
- ReflectionUtils.invokeMethod(same(method), eq(cookie.getValue()), eq(true));
|
|
|
|
|
|
+ ReflectionUtils.invokeMethod(same(this.method), eq(cookie.getValue()), eq(true));
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
public void httpOnlyPreServlet30() throws Exception {
|
|
public void httpOnlyPreServlet30() throws Exception {
|
|
spy(ReflectionUtils.class);
|
|
spy(ReflectionUtils.class);
|
|
- when(ReflectionUtils.findMethod(Cookie.class, "setHttpOnly",
|
|
|
|
- boolean.class)).thenReturn(null);
|
|
|
|
|
|
+ when(ReflectionUtils.findMethod(Cookie.class, "setHttpOnly", boolean.class))
|
|
|
|
+ .thenReturn(null);
|
|
|
|
|
|
HttpServletRequest request = mock(HttpServletRequest.class);
|
|
HttpServletRequest request = mock(HttpServletRequest.class);
|
|
when(request.getContextPath()).thenReturn("/contextpath");
|
|
when(request.getContextPath()).thenReturn("/contextpath");
|
|
@@ -84,7 +89,7 @@ public class CookieCsrfTokenRepositoryServlet3Tests {
|
|
|
|
|
|
verify(response).addCookie(cookie.capture());
|
|
verify(response).addCookie(cookie.capture());
|
|
verifyStatic(never());
|
|
verifyStatic(never());
|
|
- ReflectionUtils.invokeMethod(same(method), eq(cookie.getValue()), eq(true));
|
|
|
|
|
|
+ ReflectionUtils.invokeMethod(same(this.method), eq(cookie.getValue()), eq(true));
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|