Add LogoutPageGeneratingWebFilter

Fixes gh-4735
This commit is contained in:
Rob Winch
2017-10-29 00:11:37 -05:00
parent 0734d70d02
commit 5a5ec58ca4
5 changed files with 141 additions and 5 deletions

View File

@@ -78,9 +78,11 @@ public class FormLoginTests {
homePage.assertAt();
driver.get("http://localhost/logout");
loginPage = DefaultLogoutPage.to(driver)
.assertAt()
.logout();
DefaultLoginPage.create(driver)
loginPage
.assertAt()
.assertLogout();
}
@@ -229,6 +231,32 @@ public class FormLoginTests {
}
}
public static class DefaultLogoutPage {
private WebDriver driver;
@FindBy(css = "button[type=submit]")
private WebElement submit;
public DefaultLogoutPage(WebDriver webDriver) {
this.driver = webDriver;
}
public DefaultLogoutPage assertAt() {
assertThat(this.driver.getTitle()).isEqualTo("Confirm Log Out?");
return this;
}
public DefaultLoginPage logout() {
this.submit.click();
return DefaultLoginPage.create(this.driver);
}
static DefaultLogoutPage to(WebDriver driver) {
driver.get("http://localhost/logout");
return PageFactory.initElements(driver, DefaultLogoutPage.class);
}
}
public static class HomePage {
private WebDriver driver;

View File

@@ -26,6 +26,7 @@ import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.htmlunit.server.WebTestClientHtmlUnitDriverBuilder;
import org.springframework.security.web.server.SecurityWebFilterChain;
import org.springframework.security.web.server.util.matcher.ServerWebExchangeMatchers;
import org.springframework.test.web.reactive.server.WebTestClient;
import org.springframework.security.test.web.reactive.server.WebTestClientBuilder;
@@ -70,9 +71,11 @@ public class LogoutBuilderTests {
homePage.assertAt();
driver.get("http://localhost/logout");
loginPage = FormLoginTests.DefaultLogoutPage.to(driver)
.assertAt()
.logout();
FormLoginTests.DefaultLoginPage.create(driver)
loginPage
.assertAt()
.assertLogout();
}
@@ -85,7 +88,7 @@ public class LogoutBuilderTests {
.and()
.formLogin().and()
.logout()
.logoutUrl("/custom-logout")
.requiresLogout(ServerWebExchangeMatchers.pathMatchers("/custom-logout"))
.and()
.build();