diff --git a/test/src/test/java/org/springframework/security/test/web/servlet/response/RedirectMatcher.java b/test/src/test/java/org/springframework/security/test/web/servlet/response/RedirectMatcher.java new file mode 100644 index 0000000000..9311846f53 --- /dev/null +++ b/test/src/test/java/org/springframework/security/test/web/servlet/response/RedirectMatcher.java @@ -0,0 +1,42 @@ +/* + * Copyright 2002-2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.security.test.web.servlet.response; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.ResultMatcher; + +/** + * Necessary to support binary compatibility for Spring IO Checks against Cario + * since Spring Framework changed the signature in Spring 5. See + * https://github.com/spring-projects/spring-framework/commit/ + * a795fd47142bd3b206ce244b94b1fd1dd0adc2e9 + * + * @author Rob Winch + */ +public class RedirectMatcher { + + public static ResultMatcher redirectUrl(final String expectedUrl) { + return new ResultMatcher() { + + @Override + public void match(MvcResult result) throws Exception { + assertThat(result.getResponse().getRedirectedUrl()).isEqualTo(expectedUrl); + } + }; + } +} diff --git a/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/AuthenticationTests.java b/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/AuthenticationTests.java index 688eae69f7..ce7857d9c6 100644 --- a/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/AuthenticationTests.java +++ b/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/AuthenticationTests.java @@ -16,6 +16,7 @@ package org.springframework.security.test.web.servlet.showcase.login; import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestBuilders.*; +import static org.springframework.security.test.web.servlet.response.RedirectMatcher.redirectUrl; import static org.springframework.security.test.web.servlet.response.SecurityMockMvcResultMatchers.*; import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; @@ -67,7 +68,7 @@ public class AuthenticationTests { @Test public void authenticationSuccess() throws Exception { mvc.perform(formLogin()).andExpect(status().isFound()) - .andExpect(redirectedUrl("/")) + .andExpect(redirectUrl("/")) .andExpect(authenticated().withUsername("user")); } @@ -75,7 +76,8 @@ public class AuthenticationTests { public void authenticationFailed() throws Exception { mvc.perform(formLogin().user("user").password("invalid")) .andExpect(status().isFound()) - .andExpect(redirectedUrl("/login?error")).andExpect(unauthenticated()); + .andExpect(redirectUrl("/login?error")) + .andExpect(unauthenticated()); } @EnableWebSecurity diff --git a/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomConfigAuthenticationTests.java b/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomConfigAuthenticationTests.java index f73067df77..641faacc1a 100644 --- a/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomConfigAuthenticationTests.java +++ b/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomConfigAuthenticationTests.java @@ -64,7 +64,7 @@ public class CustomConfigAuthenticationTests { mvc.perform( formLogin("/authenticate").user("user", "user").password("pass", "password")).andExpect(status().isFound()) - .andExpect(redirectedUrl("/")) + .andExpect(redirectUrl("/")) .andExpect(authenticated().withUsername("user")); } @@ -79,7 +79,7 @@ public class CustomConfigAuthenticationTests { mvc.perform( formLogin("/authenticate").user("user", "notfound").password("pass", "invalid")).andExpect(status().isFound()) - .andExpect(redirectedUrl("/authenticate?error")) + .andExpect(redirectUrl("/authenticate?error")) .andExpect(unauthenticated()); } diff --git a/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomLoginRequestBuilderAuthenticationTests.java b/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomLoginRequestBuilderAuthenticationTests.java index 0e3d8e6c9b..a540361a54 100644 --- a/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomLoginRequestBuilderAuthenticationTests.java +++ b/test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomLoginRequestBuilderAuthenticationTests.java @@ -15,6 +15,7 @@ */ package org.springframework.security.test.web.servlet.showcase.login; +import static org.springframework.security.test.web.servlet.response.RedirectMatcher.redirectUrl; import static org.springframework.security.test.web.servlet.response.SecurityMockMvcResultMatchers.*; import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; @@ -55,7 +56,7 @@ public class CustomLoginRequestBuilderAuthenticationTests { @Test public void authenticationSuccess() throws Exception { mvc.perform(login()).andExpect(status().isMovedTemporarily()) - .andExpect(redirectedUrl("/")) + .andExpect(redirectUrl("/")) .andExpect(authenticated().withUsername("user")); } @@ -63,7 +64,7 @@ public class CustomLoginRequestBuilderAuthenticationTests { public void authenticationFailed() throws Exception { mvc.perform(login().user("notfound").password("invalid")) .andExpect(status().isMovedTemporarily()) - .andExpect(redirectedUrl("/authenticate?error")) + .andExpect(redirectUrl("/authenticate?error")) .andExpect(unauthenticated()); }