From 1f26a2faeaf6c99cbd1e2e4b72a2a76afab92694 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Thu, 23 Feb 2023 11:13:33 -0300 Subject: [PATCH] Fix SAML2 samples --- servlet/java-configuration/saml2/login/README.adoc | 2 +- servlet/java-configuration/saml2/login/build.gradle | 2 +- .../java/example/Saml2JavaConfigurationITests.java | 4 ++-- .../java/saml2/login-single-tenant/README.adoc | 2 +- .../java/saml2/login-single-tenant/build.gradle | 10 +++++----- .../java/saml2/login-single-tenant/gradle.properties | 1 + .../java/example/Saml2LoginApplicationITests.java | 12 +++++++----- servlet/spring-boot/java/saml2/login/README.adoc | 2 +- .../spring-boot/java/saml2/login/gradle.properties | 1 + .../java/example/Saml2LoginApplicationITests.java | 8 ++++---- .../java/saml2/refreshable-metadata/README.adoc | 2 +- .../java/saml2/refreshable-metadata/build.gradle | 2 +- .../saml2/refreshable-metadata/gradle.properties | 1 + .../java/example/Saml2LoginApplicationITests.java | 4 ++-- servlet/xml/java/saml2/login-logout/build.gradle | 2 +- .../src/integTest/java/example/Saml2XmlITests.java | 4 ++-- 16 files changed, 32 insertions(+), 27 deletions(-) diff --git a/servlet/java-configuration/saml2/login/README.adoc b/servlet/java-configuration/saml2/login/README.adoc index cda90b5..6ff6b9b 100644 --- a/servlet/java-configuration/saml2/login/README.adoc +++ b/servlet/java-configuration/saml2/login/README.adoc @@ -45,7 +45,7 @@ You will be redirect to the Okta SAML 2.0 IDP === Type in your credentials ``` -User: testuser@spring.security.saml +User: testuser2@spring.security.saml Password: 12345678 ``` diff --git a/servlet/java-configuration/saml2/login/build.gradle b/servlet/java-configuration/saml2/login/build.gradle index 3e34221..85c5641 100644 --- a/servlet/java-configuration/saml2/login/build.gradle +++ b/servlet/java-configuration/saml2/login/build.gradle @@ -56,7 +56,7 @@ dependencies { testImplementation "org.springframework:spring-test" testImplementation "org.springframework.security:spring-security-test" testImplementation("org.junit.jupiter:junit-jupiter-api") - testImplementation "org.seleniumhq.selenium:htmlunit-driver:2.44.0" + testImplementation "org.seleniumhq.selenium:htmlunit-driver:4.8.0" testImplementation 'org.hamcrest:hamcrest:2.2' testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine") diff --git a/servlet/java-configuration/saml2/login/src/integTest/java/example/Saml2JavaConfigurationITests.java b/servlet/java-configuration/saml2/login/src/integTest/java/example/Saml2JavaConfigurationITests.java index b664155..d405ef4 100644 --- a/servlet/java-configuration/saml2/login/src/integTest/java/example/Saml2JavaConfigurationITests.java +++ b/servlet/java-configuration/saml2/login/src/integTest/java/example/Saml2JavaConfigurationITests.java @@ -72,7 +72,7 @@ public class Saml2JavaConfigurationITests { void authenticationAttemptWhenValidThenShowsUserEmailAddress() throws Exception { performLogin(); HtmlPage home = (HtmlPage) this.webClient.getCurrentWindow().getEnclosedPage(); - assertThat(home.asText()).contains("You're email address is testuser@spring.security.saml"); + assertThat(home.asNormalizedText()).contains("You're email address is testuser2@spring.security.saml"); } @Test @@ -104,7 +104,7 @@ public class Saml2JavaConfigurationITests { HtmlInput username = form.getInputByName("username"); HtmlPasswordInput password = form.getInputByName("password"); HtmlSubmitInput submit = login.getHtmlElementById("okta-signin-submit"); - username.type("testuser@spring.security.saml"); + username.type("testuser2@spring.security.saml"); password.type("12345678"); submit.click(); this.webClient.waitForBackgroundJavaScript(10000); diff --git a/servlet/spring-boot/java/saml2/login-single-tenant/README.adoc b/servlet/spring-boot/java/saml2/login-single-tenant/README.adoc index e4659db..0daa32d 100644 --- a/servlet/spring-boot/java/saml2/login-single-tenant/README.adoc +++ b/servlet/spring-boot/java/saml2/login-single-tenant/README.adoc @@ -46,7 +46,7 @@ You will be redirect to the Okta SAML 2.0 IDP === Type in your credentials ``` -User: testuser@spring.security.saml +User: testuser2@spring.security.saml Password: 12345678 ``` diff --git a/servlet/spring-boot/java/saml2/login-single-tenant/build.gradle b/servlet/spring-boot/java/saml2/login-single-tenant/build.gradle index 87351e1..9dddc2d 100644 --- a/servlet/spring-boot/java/saml2/login-single-tenant/build.gradle +++ b/servlet/spring-boot/java/saml2/login-single-tenant/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.springframework.boot' version '2.5.2' + id 'org.springframework.boot' version '2.7.1' id 'io.spring.dependency-management' version '1.0.10.RELEASE' id "nebula.integtest" version "8.2.0" id 'java' @@ -14,9 +14,9 @@ repositories { dependencies { constraints { - implementation "org.opensaml:opensaml-core:4.1.1" - implementation "org.opensaml:opensaml-saml-api:4.1.1" - implementation "org.opensaml:opensaml-saml-impl:4.1.1" + implementation "org.opensaml:opensaml-core:4.2.0" + implementation "org.opensaml:opensaml-saml-api:4.2.0" + implementation "org.opensaml:opensaml-saml-impl:4.2.0" } implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' @@ -24,7 +24,7 @@ dependencies { implementation 'org.springframework.security:spring-security-saml2-service-provider' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' - testImplementation 'net.sourceforge.htmlunit:htmlunit:2.44.0' + testImplementation 'net.sourceforge.htmlunit:htmlunit' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' } diff --git a/servlet/spring-boot/java/saml2/login-single-tenant/gradle.properties b/servlet/spring-boot/java/saml2/login-single-tenant/gradle.properties index bd54891..5aba1dc 100644 --- a/servlet/spring-boot/java/saml2/login-single-tenant/gradle.properties +++ b/servlet/spring-boot/java/saml2/login-single-tenant/gradle.properties @@ -1,2 +1,3 @@ version=5.8.0-SNAPSHOT spring-security.version=5.8.0-SNAPSHOT +htmlunit.version=2.70.0 diff --git a/servlet/spring-boot/java/saml2/login-single-tenant/src/integTest/java/example/Saml2LoginApplicationITests.java b/servlet/spring-boot/java/saml2/login-single-tenant/src/integTest/java/example/Saml2LoginApplicationITests.java index 01369dd..8277c36 100644 --- a/servlet/spring-boot/java/saml2/login-single-tenant/src/integTest/java/example/Saml2LoginApplicationITests.java +++ b/servlet/spring-boot/java/saml2/login-single-tenant/src/integTest/java/example/Saml2LoginApplicationITests.java @@ -56,7 +56,7 @@ public class Saml2LoginApplicationITests { void authenticationAttemptWhenValidThenShowsUserEmailAddress() throws Exception { performLogin(); HtmlPage home = (HtmlPage) this.webClient.getCurrentWindow().getEnclosedPage(); - assertThat(home.asText()).contains("You're email address is testuser@spring.security.saml"); + assertThat(home.asNormalizedText()).contains("You're email address is testuser2@spring.security.saml"); } @Test @@ -82,13 +82,15 @@ public class Saml2LoginApplicationITests { } private void performLogin() throws Exception { - HtmlPage login = this.webClient.getPage("/"); + this.webClient.getPage("/"); this.webClient.waitForBackgroundJavaScript(10000); - HtmlForm form = findForm(login); + HtmlPage okta = (HtmlPage) this.webClient.getCurrentWindow().getEnclosedPage(); + this.webClient.waitForBackgroundJavaScript(10000); + HtmlForm form = findForm(okta); HtmlInput username = form.getInputByName("username"); HtmlPasswordInput password = form.getInputByName("password"); - HtmlSubmitInput submit = login.getHtmlElementById("okta-signin-submit"); - username.type("testuser@spring.security.saml"); + HtmlSubmitInput submit = okta.getHtmlElementById("okta-signin-submit"); + username.type("testuser2@spring.security.saml"); password.type("12345678"); submit.click(); this.webClient.waitForBackgroundJavaScript(10000); diff --git a/servlet/spring-boot/java/saml2/login/README.adoc b/servlet/spring-boot/java/saml2/login/README.adoc index a9be556..73bf4ad 100644 --- a/servlet/spring-boot/java/saml2/login/README.adoc +++ b/servlet/spring-boot/java/saml2/login/README.adoc @@ -45,7 +45,7 @@ You will be redirect to the Okta SAML 2.0 IDP === Type in your credentials ``` -User: testuser@spring.security.saml +User: testuser2@spring.security.saml Password: 12345678 ``` diff --git a/servlet/spring-boot/java/saml2/login/gradle.properties b/servlet/spring-boot/java/saml2/login/gradle.properties index bd54891..5aba1dc 100644 --- a/servlet/spring-boot/java/saml2/login/gradle.properties +++ b/servlet/spring-boot/java/saml2/login/gradle.properties @@ -1,2 +1,3 @@ version=5.8.0-SNAPSHOT spring-security.version=5.8.0-SNAPSHOT +htmlunit.version=2.70.0 diff --git a/servlet/spring-boot/java/saml2/login/src/integTest/java/example/Saml2LoginApplicationITests.java b/servlet/spring-boot/java/saml2/login/src/integTest/java/example/Saml2LoginApplicationITests.java index f99961a..8277c36 100644 --- a/servlet/spring-boot/java/saml2/login/src/integTest/java/example/Saml2LoginApplicationITests.java +++ b/servlet/spring-boot/java/saml2/login/src/integTest/java/example/Saml2LoginApplicationITests.java @@ -55,14 +55,14 @@ public class Saml2LoginApplicationITests { @Test void authenticationAttemptWhenValidThenShowsUserEmailAddress() throws Exception { performLogin(); - HtmlPage home = (HtmlPage) Saml2LoginApplicationITests.this.webClient.getCurrentWindow().getEnclosedPage(); - assertThat(home.asNormalizedText()).contains("You're email address is testuser@spring.security.saml"); + HtmlPage home = (HtmlPage) this.webClient.getCurrentWindow().getEnclosedPage(); + assertThat(home.asNormalizedText()).contains("You're email address is testuser2@spring.security.saml"); } @Test void logoutWhenRelyingPartyInitiatedLogoutThenLoginPageWithLogoutParam() throws Exception { performLogin(); - HtmlPage home = (HtmlPage) Saml2LoginApplicationITests.this.webClient.getCurrentWindow().getEnclosedPage(); + HtmlPage home = (HtmlPage) this.webClient.getCurrentWindow().getEnclosedPage(); HtmlElement rpLogoutButton = home.getHtmlElementById("rp_logout_button"); HtmlPage loginPage = rpLogoutButton.click(); this.webClient.waitForBackgroundJavaScript(10000); @@ -90,7 +90,7 @@ public class Saml2LoginApplicationITests { HtmlInput username = form.getInputByName("username"); HtmlPasswordInput password = form.getInputByName("password"); HtmlSubmitInput submit = okta.getHtmlElementById("okta-signin-submit"); - username.type("testuser@spring.security.saml"); + username.type("testuser2@spring.security.saml"); password.type("12345678"); submit.click(); this.webClient.waitForBackgroundJavaScript(10000); diff --git a/servlet/spring-boot/java/saml2/refreshable-metadata/README.adoc b/servlet/spring-boot/java/saml2/refreshable-metadata/README.adoc index 8c8b3a6..c98a153 100644 --- a/servlet/spring-boot/java/saml2/refreshable-metadata/README.adoc +++ b/servlet/spring-boot/java/saml2/refreshable-metadata/README.adoc @@ -50,7 +50,7 @@ You will be redirect to the Okta SAML 2.0 IDP === Type in your credentials ``` -User: testuser@spring.security.saml +User: testuser2@spring.security.saml Password: 12345678 ``` diff --git a/servlet/spring-boot/java/saml2/refreshable-metadata/build.gradle b/servlet/spring-boot/java/saml2/refreshable-metadata/build.gradle index 961ac42..3fc5803 100644 --- a/servlet/spring-boot/java/saml2/refreshable-metadata/build.gradle +++ b/servlet/spring-boot/java/saml2/refreshable-metadata/build.gradle @@ -24,7 +24,7 @@ dependencies { implementation 'org.springframework.security:spring-security-saml2-service-provider' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' - testImplementation 'net.sourceforge.htmlunit:htmlunit:2.44.0' + testImplementation 'net.sourceforge.htmlunit:htmlunit' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' } diff --git a/servlet/spring-boot/java/saml2/refreshable-metadata/gradle.properties b/servlet/spring-boot/java/saml2/refreshable-metadata/gradle.properties index bd54891..5aba1dc 100644 --- a/servlet/spring-boot/java/saml2/refreshable-metadata/gradle.properties +++ b/servlet/spring-boot/java/saml2/refreshable-metadata/gradle.properties @@ -1,2 +1,3 @@ version=5.8.0-SNAPSHOT spring-security.version=5.8.0-SNAPSHOT +htmlunit.version=2.70.0 diff --git a/servlet/spring-boot/java/saml2/refreshable-metadata/src/integTest/java/example/Saml2LoginApplicationITests.java b/servlet/spring-boot/java/saml2/refreshable-metadata/src/integTest/java/example/Saml2LoginApplicationITests.java index b73e69c..0a7b593 100644 --- a/servlet/spring-boot/java/saml2/refreshable-metadata/src/integTest/java/example/Saml2LoginApplicationITests.java +++ b/servlet/spring-boot/java/saml2/refreshable-metadata/src/integTest/java/example/Saml2LoginApplicationITests.java @@ -52,7 +52,7 @@ public class Saml2LoginApplicationITests { void authenticationAttemptWhenValidThenShowsUserEmailAddress() throws Exception { performLogin(); HtmlPage home = (HtmlPage) this.webClient.getCurrentWindow().getEnclosedPage(); - assertThat(home.asText()).contains("You're email address is testuser@spring.security.saml"); + assertThat(home.asNormalizedText()).contains("You're email address is testuser2@spring.security.saml"); } private void performLogin() throws Exception { @@ -62,7 +62,7 @@ public class Saml2LoginApplicationITests { HtmlInput username = form.getInputByName("username"); HtmlPasswordInput password = form.getInputByName("password"); HtmlSubmitInput submit = login.getHtmlElementById("okta-signin-submit"); - username.type("testuser@spring.security.saml"); + username.type("testuser2@spring.security.saml"); password.type("12345678"); submit.click(); this.webClient.waitForBackgroundJavaScript(10000); diff --git a/servlet/xml/java/saml2/login-logout/build.gradle b/servlet/xml/java/saml2/login-logout/build.gradle index c48e4ba..d884142 100644 --- a/servlet/xml/java/saml2/login-logout/build.gradle +++ b/servlet/xml/java/saml2/login-logout/build.gradle @@ -34,7 +34,7 @@ dependencies { testImplementation "org.springframework:spring-test" testImplementation "org.springframework.security:spring-security-test" testImplementation "org.junit.jupiter:junit-jupiter-api" - testImplementation 'net.sourceforge.htmlunit:htmlunit:2.44.0' + testImplementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine") diff --git a/servlet/xml/java/saml2/login-logout/src/integTest/java/example/Saml2XmlITests.java b/servlet/xml/java/saml2/login-logout/src/integTest/java/example/Saml2XmlITests.java index 670af6a..160d655 100644 --- a/servlet/xml/java/saml2/login-logout/src/integTest/java/example/Saml2XmlITests.java +++ b/servlet/xml/java/saml2/login-logout/src/integTest/java/example/Saml2XmlITests.java @@ -73,7 +73,7 @@ public class Saml2XmlITests { void authenticationAttemptWhenValidThenShowsUserEmailAddress() throws Exception { performLogin(); HtmlPage home = (HtmlPage) this.webClient.getCurrentWindow().getEnclosedPage(); - assertThat(home.asText()).contains("You're email address is testuser@spring.security.saml"); + assertThat(home.asNormalizedText()).contains("You're email address is testuser2@spring.security.saml"); } @Test @@ -105,7 +105,7 @@ public class Saml2XmlITests { HtmlInput username = form.getInputByName("username"); HtmlPasswordInput password = form.getInputByName("password"); HtmlSubmitInput submit = login.getHtmlElementById("okta-signin-submit"); - username.type("testuser@spring.security.saml"); + username.type("testuser2@spring.security.saml"); password.type("12345678"); submit.click(); this.webClient.waitForBackgroundJavaScript(10000);