Create RedirectMatcher
This commit creates RedirectMatcher for binary backward compatability with Spring 4.3.x and Spring 5 to ensure that the Spring IO tests pass. Issue gh-4080
This commit is contained in:
parent
17cfd4707b
commit
52c6e3cf89
|
@ -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);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue