Просмотр исходного кода

Update samples to use Spring Security 6

Issue gh-46
Marcus Da Coregio 3 лет назад
Родитель
Сommit
bce2126fd1
100 измененных файлов с 274 добавлено и 253 удалено
  1. 1 1
      .idea/misc.xml
  2. 2 2
      gradle.properties
  3. 2 2
      reactive/rsocket/hello-security/build.gradle
  4. 2 2
      reactive/rsocket/hello-security/gradle.properties
  5. 2 2
      reactive/webflux-fn/hello-security/build.gradle
  6. 2 2
      reactive/webflux-fn/hello-security/gradle.properties
  7. 2 2
      reactive/webflux-fn/hello/build.gradle
  8. 2 2
      reactive/webflux-fn/hello/gradle.properties
  9. 2 2
      reactive/webflux/java/authentication/username-password/form/build.gradle
  10. 2 2
      reactive/webflux/java/authentication/username-password/form/gradle.properties
  11. 2 0
      reactive/webflux/java/authentication/username-password/form/src/integTest/java/example/pages/LoginPage.java
  12. 2 2
      reactive/webflux/java/authentication/x509/build.gradle
  13. 2 2
      reactive/webflux/java/authentication/x509/gradle.properties
  14. 2 2
      reactive/webflux/java/hello-security-explicit/build.gradle
  15. 2 2
      reactive/webflux/java/hello-security-explicit/gradle.properties
  16. 2 0
      reactive/webflux/java/hello-security-explicit/src/integTest/java/example/pages/LoginPage.java
  17. 2 2
      reactive/webflux/java/hello-security/build.gradle
  18. 2 2
      reactive/webflux/java/hello-security/gradle.properties
  19. 2 2
      reactive/webflux/java/hello/build.gradle
  20. 2 2
      reactive/webflux/java/hello/gradle.properties
  21. 2 2
      reactive/webflux/java/method/build.gradle
  22. 2 2
      reactive/webflux/java/method/gradle.properties
  23. 3 3
      reactive/webflux/java/oauth2/login/build.gradle
  24. 2 2
      reactive/webflux/java/oauth2/login/gradle.properties
  25. 2 2
      reactive/webflux/java/oauth2/resource-server/build.gradle
  26. 2 2
      reactive/webflux/java/oauth2/resource-server/gradle.properties
  27. 3 3
      reactive/webflux/java/oauth2/webclient/build.gradle
  28. 2 2
      reactive/webflux/java/oauth2/webclient/gradle.properties
  29. 7 4
      reactive/webflux/kotlin/hello-security/build.gradle.kts
  30. 1 1
      reactive/webflux/kotlin/hello-security/gradle.properties
  31. 4 4
      servlet/java-configuration/authentication/username-password/form/build.gradle
  32. 2 2
      servlet/java-configuration/authentication/username-password/form/gradle/gretty.gradle
  33. 1 1
      servlet/java-configuration/authentication/username-password/form/src/main/java/example/MvcWebApplicationInitializer.java
  34. 4 4
      servlet/java-configuration/authentication/username-password/form/src/main/java/example/WebMvcConfiguration.java
  35. 1 1
      servlet/java-configuration/authentication/x509/build.gradle
  36. 4 4
      servlet/java-configuration/hello-mvc-security/build.gradle
  37. 2 2
      servlet/java-configuration/hello-mvc-security/gradle/gretty.gradle
  38. 2 0
      servlet/java-configuration/hello-mvc-security/src/integTest/java/example/pages/LoginPage.java
  39. 1 1
      servlet/java-configuration/hello-mvc-security/src/main/java/example/MvcWebApplicationInitializer.java
  40. 4 4
      servlet/java-configuration/hello-mvc-security/src/main/java/example/WebMvcConfiguration.java
  41. 2 0
      servlet/java-configuration/hello-security-explicit/src/integTest/java/example/pages/LoginPage.java
  42. 7 8
      servlet/java-configuration/saml2/login/build.gradle
  43. 38 22
      servlet/java-configuration/saml2/login/src/integTest/java/example/Saml2JavaConfigurationITests.java
  44. 1 1
      servlet/java-configuration/saml2/login/src/main/java/example/MvcWebApplicationInitializer.java
  45. 5 5
      servlet/java-configuration/saml2/login/src/main/java/example/WebMvcConfiguration.java
  46. 2 2
      servlet/spring-boot/java/authentication/username-password/mfa/build.gradle
  47. 2 2
      servlet/spring-boot/java/authentication/username-password/mfa/gradle.properties
  48. 3 3
      servlet/spring-boot/java/authentication/username-password/mfa/src/main/java/example/MfaAuthenticationHandler.java
  49. 2 2
      servlet/spring-boot/java/authentication/username-password/mfa/src/main/java/example/MfaController.java
  50. 1 2
      servlet/spring-boot/java/authentication/username-password/mfa/src/test/java/example/MfaApplicationTests.java
  51. 2 2
      servlet/spring-boot/java/authentication/username-password/user-details-service/custom-user/build.gradle
  52. 2 2
      servlet/spring-boot/java/authentication/username-password/user-details-service/custom-user/gradle.properties
  53. 2 2
      servlet/spring-boot/java/hello-security-explicit/build.gradle
  54. 2 2
      servlet/spring-boot/java/hello-security-explicit/gradle.properties
  55. 2 0
      servlet/spring-boot/java/hello-security-explicit/src/integTest/java/example/pages/LoginPage.java
  56. 2 2
      servlet/spring-boot/java/hello-security/build.gradle
  57. 2 2
      servlet/spring-boot/java/hello-security/gradle.properties
  58. 0 1
      servlet/spring-boot/java/hello-security/settings.gradle
  59. 2 2
      servlet/spring-boot/java/hello/build.gradle
  60. 2 2
      servlet/spring-boot/java/hello/gradle.properties
  61. 2 2
      servlet/spring-boot/java/jwt/login/build.gradle
  62. 2 2
      servlet/spring-boot/java/jwt/login/gradle.properties
  63. 2 2
      servlet/spring-boot/java/ldap/build.gradle
  64. 2 2
      servlet/spring-boot/java/ldap/gradle.properties
  65. 2 2
      servlet/spring-boot/java/oauth2/authorization-server/build.gradle
  66. 2 2
      servlet/spring-boot/java/oauth2/authorization-server/gradle.properties
  67. 3 3
      servlet/spring-boot/java/oauth2/login/build.gradle
  68. 2 2
      servlet/spring-boot/java/oauth2/login/gradle.properties
  69. 7 6
      servlet/spring-boot/java/oauth2/login/src/integTest/java/example/OAuth2LoginApplicationTests.java
  70. 4 4
      servlet/spring-boot/java/oauth2/login/src/main/java/example/filter/LoopbackIpRedirectFilter.java
  71. 2 2
      servlet/spring-boot/java/oauth2/resource-server/hello-security/build.gradle
  72. 2 2
      servlet/spring-boot/java/oauth2/resource-server/hello-security/gradle.properties
  73. 2 2
      servlet/spring-boot/java/oauth2/resource-server/jwe/build.gradle
  74. 2 2
      servlet/spring-boot/java/oauth2/resource-server/jwe/gradle.properties
  75. 3 3
      servlet/spring-boot/java/oauth2/resource-server/multi-tenancy/build.gradle
  76. 2 2
      servlet/spring-boot/java/oauth2/resource-server/multi-tenancy/gradle.properties
  77. 4 1
      servlet/spring-boot/java/oauth2/resource-server/multi-tenancy/src/main/resources/application.yml
  78. 3 3
      servlet/spring-boot/java/oauth2/resource-server/opaque/build.gradle
  79. 2 2
      servlet/spring-boot/java/oauth2/resource-server/opaque/gradle.properties
  80. 2 2
      servlet/spring-boot/java/oauth2/resource-server/static/build.gradle
  81. 2 2
      servlet/spring-boot/java/oauth2/resource-server/static/gradle.properties
  82. 3 3
      servlet/spring-boot/java/oauth2/webclient/build.gradle
  83. 2 2
      servlet/spring-boot/java/oauth2/webclient/gradle.properties
  84. 3 3
      servlet/spring-boot/java/saml2/login-single-tenant/build.gradle
  85. 2 2
      servlet/spring-boot/java/saml2/login-single-tenant/gradle.properties
  86. 4 3
      servlet/spring-boot/java/saml2/login/build.gradle
  87. 2 2
      servlet/spring-boot/java/saml2/login/gradle.properties
  88. 6 13
      servlet/spring-boot/java/saml2/login/src/integTest/java/example/Saml2LoginApplicationITests.java
  89. 3 3
      servlet/spring-boot/java/saml2/refreshable-metadata/build.gradle
  90. 2 2
      servlet/spring-boot/java/saml2/refreshable-metadata/gradle.properties
  91. 6 5
      servlet/spring-boot/kotlin/hello-security/build.gradle.kts
  92. 1 1
      servlet/spring-boot/kotlin/hello-security/gradle.properties
  93. 5 10
      servlet/spring-boot/kotlin/hello-security/src/main/kotlin/org/springframework/security/samples/config/SecurityConfig.kt
  94. 1 1
      servlet/xml/java/contacts/gradle.properties
  95. 1 1
      servlet/xml/java/dms/gradle.properties
  96. 1 1
      servlet/xml/java/helloworld/gradle.properties
  97. 1 1
      servlet/xml/java/preauth/gradle.properties
  98. 3 2
      servlet/xml/java/saml2/login-logout/build.gradle
  99. 1 1
      servlet/xml/java/saml2/login-logout/gradle.properties
  100. 2 2
      servlet/xml/java/saml2/login-logout/gradle/gretty.gradle

+ 1 - 1
.idea/misc.xml

@@ -4,5 +4,5 @@
   <component name="FrameworkDetectionExcludesConfiguration">
     <file type="web" url="file://$PROJECT_DIR$" />
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK" />
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="temurin-17" project-jdk-type="JavaSDK" />
 </project>

+ 2 - 2
gradle.properties

@@ -1,5 +1,5 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT
 org.gradle.jvmargs=-Xmx3g -XX:+HeapDumpOnOutOfMemoryError
 org.gradle.parallel=true
 org.gradle.caching=true

+ 2 - 2
reactive/rsocket/hello-security/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
reactive/rsocket/hello-security/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 2 - 2
reactive/webflux-fn/hello-security/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
reactive/webflux-fn/hello-security/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 2 - 2
reactive/webflux-fn/hello/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
reactive/webflux-fn/hello/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 2 - 2
reactive/webflux/java/authentication/username-password/form/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '2.6.4'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
reactive/webflux/java/authentication/username-password/form/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=5.7.0-SNAPSHOT
+spring-security.version=5.7.0-SNAPSHOT

+ 2 - 0
reactive/webflux/java/authentication/username-password/form/src/integTest/java/example/pages/LoginPage.java

@@ -70,8 +70,10 @@ public class LoginPage {
 
 		private WebDriver driver;
 
+		@FindBy(id = "username")
 		private WebElement username;
 
+		@FindBy(id = "password")
 		private WebElement password;
 
 		@FindBy(css = "button[type=submit]")

+ 2 - 2
reactive/webflux/java/authentication/x509/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
reactive/webflux/java/authentication/x509/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 2 - 2
reactive/webflux/java/hello-security-explicit/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
reactive/webflux/java/hello-security-explicit/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 2 - 0
reactive/webflux/java/hello-security-explicit/src/integTest/java/example/pages/LoginPage.java

@@ -51,8 +51,10 @@ public class LoginPage {
 
 		private WebDriver webDriver;
 
+		@FindBy(id = "username")
 		private WebElement username;
 
+		@FindBy(id = "password")
 		private WebElement password;
 
 		@FindBy(css = "button[type=submit]")

+ 2 - 2
reactive/webflux/java/hello-security/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
reactive/webflux/java/hello-security/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 2 - 2
reactive/webflux/java/hello/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
reactive/webflux/java/hello/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 2 - 2
reactive/webflux/java/method/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
reactive/webflux/java/method/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 3 - 3
reactive/webflux/java/oauth2/login/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }
@@ -15,7 +15,7 @@ dependencies {
 	implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
 	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
 	implementation 'org.springframework.boot:spring-boot-starter-webflux'
-	implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
+	implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6'
 
 	testImplementation 'org.springframework.boot:spring-boot-starter-test'
 	testImplementation 'org.springframework.security:spring-security-test'

+ 2 - 2
reactive/webflux/java/oauth2/login/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 2 - 2
reactive/webflux/java/oauth2/resource-server/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
reactive/webflux/java/oauth2/resource-server/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 3 - 3
reactive/webflux/java/oauth2/webclient/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }
@@ -15,7 +15,7 @@ dependencies {
 	implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
 	implementation 'org.springframework:spring-webflux'
 	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
-	implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
+	implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6'
 	implementation 'io.projectreactor.netty:reactor-netty'
 
 	testImplementation 'org.springframework.boot:spring-boot-starter-test'

+ 2 - 2
reactive/webflux/java/oauth2/webclient/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 7 - 4
reactive/webflux/kotlin/hello-security/build.gradle.kts

@@ -1,8 +1,8 @@
 import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
 
 plugins {
-    id("org.springframework.boot") version "2.5.0"
-    id("io.spring.dependency-management") version "1.0.9.RELEASE"
+    id("org.springframework.boot") version "3.0.0-M1"
+    id("io.spring.dependency-management") version "1.0.11.RELEASE"
     kotlin("jvm") version "1.6.0"
     kotlin("plugin.spring") version "1.6.0"
 }
@@ -12,13 +12,16 @@ repositories {
     maven {
         url = uri("https://repo.spring.io/snapshot")
     }
+    maven {
+        url = uri("https://repo.spring.io/milestone")
+    }
 }
 
 dependencies {
     implementation("org.springframework.boot:spring-boot-starter-security")
     implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
     implementation("org.springframework.boot:spring-boot-starter-webflux")
-    implementation("org.thymeleaf.extras:thymeleaf-extras-springsecurity5")
+    implementation("org.thymeleaf.extras:thymeleaf-extras-springsecurity6")
     implementation("io.projectreactor.kotlin:reactor-kotlin-extensions")
     implementation("org.jetbrains.kotlin:kotlin-reflect")
     implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
@@ -40,4 +43,4 @@ tasks.withType<KotlinCompile> {
 
 tasks.withType<Test> {
     useJUnitPlatform()
-}
+}

+ 1 - 1
reactive/webflux/kotlin/hello-security/gradle.properties

@@ -1 +1 @@
-spring-security.version=5.6.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 4 - 4
servlet/java-configuration/authentication/username-password/form/build.gradle

@@ -1,7 +1,7 @@
 plugins {
 	id "java"
 	id "nebula.integtest" version "8.2.0"
-	id "org.gretty" version "3.0.6"
+	id "org.gretty" version "4.0.0"
 	id "war"
 }
 
@@ -14,14 +14,14 @@ repositories {
 }
 
 dependencies {
-	implementation platform("org.springframework:spring-framework-bom:5.3.0")
-	implementation platform("org.springframework.security:spring-security-bom:5.5.0-SNAPSHOT")
+	implementation platform("org.springframework:spring-framework-bom:6.0.0-SNAPSHOT")
+	implementation platform("org.springframework.security:spring-security-bom:6.0.0-SNAPSHOT")
 	implementation platform("org.junit:junit-bom:5.7.0")
 
 	implementation "org.springframework.security:spring-security-config"
 	implementation "org.springframework.security:spring-security-web"
 	implementation "org.springframework:spring-webmvc"
-	implementation "org.thymeleaf:thymeleaf-spring5:3.0.11.RELEASE"
+	implementation "org.thymeleaf:thymeleaf-spring6:3.1.0.M1"
 
 	testImplementation "org.assertj:assertj-core:3.18.0"
 	testImplementation "org.springframework:spring-test"

+ 2 - 2
servlet/java-configuration/authentication/username-password/form/gradle/gretty.gradle

@@ -1,5 +1,5 @@
 gretty {
-	servletContainer = "tomcat9"
+	servletContainer = "tomcat10"
 	contextPath = "/"
 	fileLogEnabled = false
 	integrationTestTask = 'integrationTest'
@@ -38,4 +38,4 @@ project.tasks.matching { it.name == "integrationTest" }.all {
 		integrationTest.systemProperty 'app.httpBaseURI', httpBaseUrl
 		integrationTest.systemProperty 'app.httpsBaseURI', httpsBaseUrl
 	}
-}
+}

+ 1 - 1
servlet/java-configuration/authentication/username-password/form/src/main/java/example/MvcWebApplicationInitializer.java

@@ -16,7 +16,7 @@
 
 package example;
 
-import javax.servlet.Filter;
+import jakarta.servlet.Filter;
 
 import org.springframework.web.filter.HiddenHttpMethodFilter;
 import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

+ 4 - 4
servlet/java-configuration/authentication/username-password/form/src/main/java/example/WebMvcConfiguration.java

@@ -16,10 +16,10 @@
 
 package example;
 
-import org.thymeleaf.spring5.ISpringTemplateEngine;
-import org.thymeleaf.spring5.SpringTemplateEngine;
-import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver;
-import org.thymeleaf.spring5.view.ThymeleafViewResolver;
+import org.thymeleaf.spring6.ISpringTemplateEngine;
+import org.thymeleaf.spring6.SpringTemplateEngine;
+import org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver;
+import org.thymeleaf.spring6.view.ThymeleafViewResolver;
 import org.thymeleaf.templatemode.TemplateMode;
 import org.thymeleaf.templateresolver.ITemplateResolver;
 

+ 1 - 1
servlet/java-configuration/authentication/x509/build.gradle

@@ -1,6 +1,6 @@
 plugins {
 	id "java"
-	id "nebula.integtest" version "8.2.0"
+//	id "nebula.integtest" version "8.2.0"
 	id "org.gretty" version "3.0.6"
 	id "war"
 }

+ 4 - 4
servlet/java-configuration/hello-mvc-security/build.gradle

@@ -1,7 +1,7 @@
 plugins {
 	id "java"
 	id "nebula.integtest" version "8.2.0"
-	id "org.gretty" version "3.0.6"
+	id "org.gretty" version "4.0.0"
 	id "war"
 }
 
@@ -14,14 +14,14 @@ repositories {
 }
 
 dependencies {
-	implementation platform("org.springframework:spring-framework-bom:5.3.0")
-	implementation platform("org.springframework.security:spring-security-bom:5.5.0-SNAPSHOT")
+	implementation platform("org.springframework:spring-framework-bom:6.0.0-SNAPSHOT")
+	implementation platform("org.springframework.security:spring-security-bom:6.0.0-SNAPSHOT")
 	implementation platform("org.junit:junit-bom:5.7.0")
 
 	implementation "org.springframework.security:spring-security-config"
 	implementation "org.springframework.security:spring-security-web"
 	implementation "org.springframework:spring-webmvc"
-	implementation "org.thymeleaf:thymeleaf-spring5:3.0.11.RELEASE"
+	implementation "org.thymeleaf:thymeleaf-spring6:3.1.0.M1"
 
 	testImplementation "org.assertj:assertj-core:3.18.0"
 	testImplementation "org.springframework:spring-test"

+ 2 - 2
servlet/java-configuration/hello-mvc-security/gradle/gretty.gradle

@@ -1,5 +1,5 @@
 gretty {
-	servletContainer = "tomcat9"
+	servletContainer = "tomcat10"
 	contextPath = "/"
 	fileLogEnabled = false
 	integrationTestTask = 'integrationTest'
@@ -38,4 +38,4 @@ project.tasks.matching { it.name == "integrationTest" }.all {
 		integrationTest.systemProperty 'app.httpBaseURI', httpBaseUrl
 		integrationTest.systemProperty 'app.httpsBaseURI', httpsBaseUrl
 	}
-}
+}

+ 2 - 0
servlet/java-configuration/hello-mvc-security/src/integTest/java/example/pages/LoginPage.java

@@ -51,8 +51,10 @@ public class LoginPage {
 
 		private WebDriver webDriver;
 
+		@FindBy(id = "username")
 		private WebElement username;
 
+		@FindBy(id = "password")
 		private WebElement password;
 
 		@FindBy(css = "button[type=submit]")

+ 1 - 1
servlet/java-configuration/hello-mvc-security/src/main/java/example/MvcWebApplicationInitializer.java

@@ -16,7 +16,7 @@
 
 package example;
 
-import javax.servlet.Filter;
+import jakarta.servlet.Filter;
 
 import org.springframework.web.filter.HiddenHttpMethodFilter;
 import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

+ 4 - 4
servlet/java-configuration/hello-mvc-security/src/main/java/example/WebMvcConfiguration.java

@@ -16,10 +16,10 @@
 
 package example;
 
-import org.thymeleaf.spring5.ISpringTemplateEngine;
-import org.thymeleaf.spring5.SpringTemplateEngine;
-import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver;
-import org.thymeleaf.spring5.view.ThymeleafViewResolver;
+import org.thymeleaf.spring6.ISpringTemplateEngine;
+import org.thymeleaf.spring6.SpringTemplateEngine;
+import org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver;
+import org.thymeleaf.spring6.view.ThymeleafViewResolver;
 import org.thymeleaf.templatemode.TemplateMode;
 import org.thymeleaf.templateresolver.ITemplateResolver;
 

+ 2 - 0
servlet/java-configuration/hello-security-explicit/src/integTest/java/example/pages/LoginPage.java

@@ -51,8 +51,10 @@ public class LoginPage {
 
 		private WebDriver webDriver;
 
+		@FindBy(id = "username")
 		private WebElement username;
 
+		@FindBy(id = "password")
 		private WebElement password;
 
 		@FindBy(css = "button[type=submit]")

+ 7 - 8
servlet/java-configuration/saml2/login/build.gradle

@@ -36,21 +36,19 @@ dependencies {
 		implementation "org.opensaml:opensaml-saml-api:4.1.1"
 		implementation "org.opensaml:opensaml-saml-impl:4.1.1"
 	}
-	implementation platform("org.springframework:spring-framework-bom:5.3.11")
-	implementation platform("org.springframework.security:spring-security-bom:5.6.0-SNAPSHOT")
+	implementation platform("org.springframework:spring-framework-bom:6.0.0-SNAPSHOT")
+	implementation platform("org.springframework.security:spring-security-bom:6.0.0-SNAPSHOT")
 	implementation platform("org.junit:junit-bom:5.7.0")
 
 	implementation "org.springframework.security:spring-security-config"
 	implementation "org.springframework.security:spring-security-web"
 	implementation "org.springframework:spring-webmvc"
 	implementation "org.springframework.security:spring-security-saml2-service-provider"
-	implementation "javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.2"
-	implementation "org.apache.taglibs:taglibs-standard-jstlel:1.2.5"
-	implementation "org.thymeleaf:thymeleaf-spring5:3.0.11.RELEASE"
-	implementation "org.thymeleaf.extras:thymeleaf-extras-springsecurity5:3.0.4.RELEASE"
+	implementation "org.thymeleaf:thymeleaf-spring6:3.1.0.M1"
+	implementation "org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.0.M1"
 
-	providedCompile "javax.servlet:javax.servlet-api:4.0.1"
-	providedCompile "javax.servlet.jsp:javax.servlet.jsp-api:2.3.3"
+	providedCompile "jakarta.servlet:jakarta.servlet-api:5.0.0"
+	providedCompile "org.glassfish.web:jakarta.servlet.jsp.jstl:2.0.0"
 
 	testImplementation "org.assertj:assertj-core:3.18.0"
 	testImplementation "org.springframework:spring-test"
@@ -58,6 +56,7 @@ dependencies {
 	testImplementation("org.junit.jupiter:junit-jupiter-api")
 	testImplementation "org.seleniumhq.selenium:htmlunit-driver:2.44.0"
 	testImplementation 'org.hamcrest:hamcrest:2.2'
+	testImplementation 'org.awaitility:awaitility:4.2.0'
 
 	testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
 }

+ 38 - 22
servlet/java-configuration/saml2/login/src/integTest/java/example/Saml2JavaConfigurationITests.java

@@ -16,15 +16,16 @@
 
 package example;
 
-import java.io.IOException;
+import java.util.concurrent.TimeUnit;
 
+import com.gargoylesoftware.htmlunit.ElementNotFoundException;
 import com.gargoylesoftware.htmlunit.WebClient;
 import com.gargoylesoftware.htmlunit.html.HtmlElement;
 import com.gargoylesoftware.htmlunit.html.HtmlForm;
 import com.gargoylesoftware.htmlunit.html.HtmlInput;
 import com.gargoylesoftware.htmlunit.html.HtmlPage;
+import com.gargoylesoftware.htmlunit.html.HtmlPasswordInput;
 import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
-import org.assertj.core.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -40,6 +41,9 @@ import org.springframework.test.web.servlet.htmlunit.MockMvcWebClientBuilder;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
 
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.awaitility.Awaitility.await;
+
 @ExtendWith(SpringExtension.class)
 @ContextConfiguration(classes = ApplicationConfiguration.class)
 @WebAppConfiguration
@@ -66,35 +70,47 @@ public class Saml2JavaConfigurationITests {
 
 	@Test
 	void authenticationAttemptWhenValidThenShowsUserEmailAddress() throws Exception {
-		HtmlPage relyingParty = performLogin();
-		Assertions.assertThat(relyingParty.asText()).contains("You're email address is testuser@spring.security.saml");
+		performLogin();
+		HtmlPage home = (HtmlPage) this.webClient.getCurrentWindow().getEnclosedPage();
+		assertThat(home.asText()).contains("You're email address is testuser@spring.security.saml");
 	}
 
 	@Test
 	void logoutWhenRelyingPartyInitiatedLogoutThenLoginPageWithLogoutParam() throws Exception {
-		HtmlPage relyingParty = performLogin();
-		HtmlElement rpLogoutButton = relyingParty.getHtmlElementById("rp_logout_button");
+		performLogin();
+		HtmlPage home = (HtmlPage) this.webClient.getCurrentWindow().getEnclosedPage();
+		HtmlElement rpLogoutButton = home.getHtmlElementById("rp_logout_button");
 		HtmlPage loginPage = rpLogoutButton.click();
-		Assertions.assertThat(loginPage.getUrl().getFile()).isEqualTo("/login?logout");
-	}
-
-	@Test
-	void logoutWhenAssertingPartyInitiatedLogoutThenLoginPageWithLogoutParam() throws Exception {
-		HtmlPage relyingParty = performLogin();
-		HtmlElement apLogoutButton = relyingParty.getHtmlElementById("ap_logout_button");
-		HtmlPage loginPage = apLogoutButton.click();
-		Assertions.assertThat(loginPage.getUrl().getFile()).isEqualTo("/login?logout");
+		assertThat(loginPage.getUrl().getFile()).isEqualTo("/login?logout");
 	}
 
-	private HtmlPage performLogin() throws IOException {
+	private void performLogin() throws Exception {
 		HtmlPage login = this.webClient.getPage("/");
-		HtmlForm form = login.getFormByName("f");
+		this.webClient.waitForBackgroundJavaScript(10000);
+		HtmlForm form = findForm(login);
 		HtmlInput username = form.getInputByName("username");
-		HtmlInput password = form.getInputByName("password");
-		HtmlSubmitInput submit = login.getHtmlElementById("submit_button");
-		username.setValueAttribute("user");
-		password.setValueAttribute("password");
-		return submit.click();
+		HtmlPasswordInput password = form.getInputByName("password");
+		HtmlSubmitInput submit = login.getHtmlElementById("okta-signin-submit");
+		username.type("testuser@spring.security.saml");
+		password.type("12345678");
+		submit.click();
+		this.webClient.waitForBackgroundJavaScript(10000);
+	}
+
+	private HtmlForm findForm(HtmlPage login) {
+		await().atMost(10, TimeUnit.SECONDS)
+				.until(() -> login.getForms().stream().map(HtmlForm::getId).anyMatch("form19"::equals));
+		for (HtmlForm form : login.getForms()) {
+			try {
+				if (form.getId().equals("form19")) {
+					return form;
+				}
+			}
+			catch (ElementNotFoundException ex) {
+				// Continue
+			}
+		}
+		throw new IllegalStateException("Could not resolve login form");
 	}
 
 }

+ 1 - 1
servlet/java-configuration/saml2/login/src/main/java/example/MvcWebApplicationInitializer.java

@@ -16,7 +16,7 @@
 
 package example;
 
-import javax.servlet.Filter;
+import jakarta.servlet.Filter;
 
 import org.springframework.web.filter.HiddenHttpMethodFilter;
 import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

+ 5 - 5
servlet/java-configuration/saml2/login/src/main/java/example/WebMvcConfiguration.java

@@ -16,11 +16,11 @@
 
 package example;
 
-import org.thymeleaf.extras.springsecurity5.dialect.SpringSecurityDialect;
-import org.thymeleaf.spring5.ISpringTemplateEngine;
-import org.thymeleaf.spring5.SpringTemplateEngine;
-import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver;
-import org.thymeleaf.spring5.view.ThymeleafViewResolver;
+import org.thymeleaf.extras.springsecurity6.dialect.SpringSecurityDialect;
+import org.thymeleaf.spring6.ISpringTemplateEngine;
+import org.thymeleaf.spring6.SpringTemplateEngine;
+import org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver;
+import org.thymeleaf.spring6.view.ThymeleafViewResolver;
 import org.thymeleaf.templatemode.TemplateMode;
 import org.thymeleaf.templateresolver.ITemplateResolver;
 

+ 2 - 2
servlet/spring-boot/java/authentication/username-password/mfa/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
-	id 'org.springframework.boot' version '2.5.2'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
servlet/spring-boot/java/authentication/username-password/mfa/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 3 - 3
servlet/spring-boot/java/authentication/username-password/mfa/src/main/java/example/MfaAuthenticationHandler.java

@@ -18,9 +18,9 @@ package example;
 
 import java.io.IOException;
 
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.springframework.security.authentication.AnonymousAuthenticationToken;
 import org.springframework.security.core.Authentication;

+ 2 - 2
servlet/spring-boot/java/authentication/username-password/mfa/src/main/java/example/MfaController.java

@@ -18,8 +18,8 @@ package example;
 
 import java.security.SecureRandom;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.springframework.security.authentication.BadCredentialsException;
 import org.springframework.security.core.context.SecurityContextHolder;

+ 1 - 2
servlet/spring-boot/java/authentication/username-password/mfa/src/test/java/example/MfaApplicationTests.java

@@ -15,9 +15,8 @@
  */
 package example;
 
-import javax.servlet.http.HttpSession;
-
 import com.j256.twofactorauth.TimeBasedOneTimePasswordUtil;
+import jakarta.servlet.http.HttpSession;
 import org.junit.jupiter.api.Test;
 
 import org.springframework.beans.factory.annotation.Autowired;

+ 2 - 2
servlet/spring-boot/java/authentication/username-password/user-details-service/custom-user/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
-	id 'org.springframework.boot' version '2.5.2'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
servlet/spring-boot/java/authentication/username-password/user-details-service/custom-user/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 2 - 2
servlet/spring-boot/java/hello-security-explicit/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
-	id 'org.springframework.boot' version '2.5.2'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
servlet/spring-boot/java/hello-security-explicit/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 2 - 0
servlet/spring-boot/java/hello-security-explicit/src/integTest/java/example/pages/LoginPage.java

@@ -51,8 +51,10 @@ public class LoginPage {
 
 		private WebDriver webDriver;
 
+		@FindBy(id = "username")
 		private WebElement username;
 
+		@FindBy(id = "password")
 		private WebElement password;
 
 		@FindBy(css = "button[type=submit]")

+ 2 - 2
servlet/spring-boot/java/hello-security/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
-	id 'org.springframework.boot' version '2.5.2'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
servlet/spring-boot/java/hello-security/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 0 - 1
servlet/spring-boot/java/hello-security/settings.gradle

@@ -1 +0,0 @@
-

+ 2 - 2
servlet/spring-boot/java/hello/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
servlet/spring-boot/java/hello/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 2 - 2
servlet/spring-boot/java/jwt/login/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id 'java'
 }
 

+ 2 - 2
servlet/spring-boot/java/jwt/login/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 2 - 2
servlet/spring-boot/java/ldap/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id 'java'
 }
 

+ 2 - 2
servlet/spring-boot/java/ldap/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 2 - 2
servlet/spring-boot/java/oauth2/authorization-server/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '2.6.4'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
servlet/spring-boot/java/oauth2/authorization-server/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=5.7.0-SNAPSHOT
+spring-security.version=5.7.0-SNAPSHOT

+ 3 - 3
servlet/spring-boot/java/oauth2/login/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }
@@ -15,7 +15,7 @@ dependencies {
 	implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
 	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
 	implementation 'org.springframework.boot:spring-boot-starter-web'
-	implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
+	implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6'
 
 	testImplementation 'org.springframework.boot:spring-boot-starter-test'
 	testImplementation 'org.springframework.security:spring-security-test'

+ 2 - 2
servlet/spring-boot/java/oauth2/login/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 7 - 6
servlet/spring-boot/java/oauth2/login/src/integTest/java/example/OAuth2LoginApplicationTests.java

@@ -225,7 +225,7 @@ public class OAuth2LoginApplicationTests {
 
 		HtmlElement errorElement = page.getBody().getFirstByXPath("div");
 		assertThat(errorElement).isNotNull();
-		assertThat(errorElement.asText()).contains("authorization_request_not_found");
+		assertThat(errorElement.asNormalizedText()).contains("authorization_request_not_found");
 	}
 
 	@Test
@@ -253,7 +253,7 @@ public class OAuth2LoginApplicationTests {
 
 		HtmlElement errorElement = page.getBody().getFirstByXPath("div");
 		assertThat(errorElement).isNotNull();
-		assertThat(errorElement.asText()).contains("authorization_request_not_found");
+		assertThat(errorElement.asNormalizedText()).contains("authorization_request_not_found");
 	}
 
 	@Test
@@ -291,7 +291,7 @@ public class OAuth2LoginApplicationTests {
 			assertThat(clientAnchorElements.get(i).getAttribute("href")).isIn(googleClientAuthorizeUri,
 					githubClientAuthorizeUri, facebookClientAuthorizeUri, oktaClientAuthorizeUri,
 					springClientAuthorizeUri);
-			assertThat(clientAnchorElements.get(i).asText()).isIn(googleClientRegistration.getClientName(),
+			assertThat(clientAnchorElements.get(i).asNormalizedText()).isIn(googleClientRegistration.getClientName(),
 					githubClientRegistration.getClientName(), facebookClientRegistration.getClientName(),
 					oktaClientRegistration.getClientName(), springClientRegistration.getClientName());
 		}
@@ -301,13 +301,14 @@ public class OAuth2LoginApplicationTests {
 		assertThat(page.getTitleText()).isEqualTo("Spring Security - OAuth 2.0 Login");
 
 		DomNodeList<HtmlElement> divElements = page.getBody().getElementsByTagName("div");
-		assertThat(divElements.get(1).asText()).contains("User: joeg@springsecurity.io");
-		assertThat(divElements.get(4).asText()).contains("You are successfully logged in joeg@springsecurity.io");
+		assertThat(divElements.get(1).asNormalizedText()).contains("User: joeg@springsecurity.io");
+		assertThat(divElements.get(4).asNormalizedText())
+				.contains("You are successfully logged in joeg@springsecurity.io");
 	}
 
 	private HtmlAnchor getClientAnchorElement(HtmlPage page, ClientRegistration clientRegistration) {
 		Optional<HtmlAnchor> clientAnchorElement = page.getAnchors().stream()
-				.filter((e) -> e.asText().equals(clientRegistration.getClientName())).findFirst();
+				.filter((e) -> e.asNormalizedText().equals(clientRegistration.getClientName())).findFirst();
 
 		return (clientAnchorElement.orElse(null));
 	}

+ 4 - 4
servlet/spring-boot/java/oauth2/login/src/main/java/example/filter/LoopbackIpRedirectFilter.java

@@ -18,10 +18,10 @@ package example.filter;
 
 import java.io.IOException;
 
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.springframework.core.Ordered;
 import org.springframework.core.annotation.Order;

+ 2 - 2
servlet/spring-boot/java/oauth2/resource-server/hello-security/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
servlet/spring-boot/java/oauth2/resource-server/hello-security/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 2 - 2
servlet/spring-boot/java/oauth2/resource-server/jwe/build.gradle

@@ -15,8 +15,8 @@
  */
 
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
servlet/spring-boot/java/oauth2/resource-server/jwe/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 3 - 3
servlet/spring-boot/java/oauth2/resource-server/multi-tenancy/build.gradle

@@ -15,8 +15,8 @@
  */
 
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '2.6.4'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }
@@ -31,7 +31,7 @@ dependencies {
 	implementation 'com.squareup.okhttp3:mockwebserver'
 	implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server'
 	implementation 'org.springframework.boot:spring-boot-starter-web'
-	implementation 'com.nimbusds:oauth2-oidc-sdk'
+	implementation 'com.nimbusds:oauth2-oidc-sdk:9.29'
 
 	testImplementation 'org.springframework.boot:spring-boot-starter-test'
 	testImplementation 'org.springframework.security:spring-security-test'

+ 2 - 2
servlet/spring-boot/java/oauth2/resource-server/multi-tenancy/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=5.7.0-SNAPSHOT
+spring-security.version=5.7.0-SNAPSHOT

+ 4 - 1
servlet/spring-boot/java/oauth2/resource-server/multi-tenancy/src/main/resources/application.yml

@@ -7,4 +7,7 @@ spring:
         opaquetoken:
           introspection-uri: ${mockwebserver.url}/introspect
           client-id: client
-          client-secret: secret
+          client-secret: secret
+  mvc:
+    pathmatch:
+      matching-strategy: ant_path_matcher

+ 3 - 3
servlet/spring-boot/java/oauth2/resource-server/opaque/build.gradle

@@ -15,8 +15,8 @@
  */
 
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }
@@ -31,7 +31,7 @@ dependencies {
 	implementation 'com.squareup.okhttp3:mockwebserver'
 	implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server'
 	implementation 'org.springframework.boot:spring-boot-starter-web'
-	implementation 'com.nimbusds:oauth2-oidc-sdk'
+	implementation 'com.nimbusds:oauth2-oidc-sdk:9.29'
 
 	testImplementation 'org.springframework.boot:spring-boot-starter-test'
 	testImplementation 'org.springframework.security:spring-security-test'

+ 2 - 2
servlet/spring-boot/java/oauth2/resource-server/opaque/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 2 - 2
servlet/spring-boot/java/oauth2/resource-server/static/build.gradle

@@ -15,8 +15,8 @@
  */
 
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }

+ 2 - 2
servlet/spring-boot/java/oauth2/resource-server/static/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 3 - 3
servlet/spring-boot/java/oauth2/webclient/build.gradle

@@ -15,8 +15,8 @@
  */
 
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }
@@ -32,7 +32,7 @@ dependencies {
 	implementation 'org.springframework:spring-webflux'
 	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
 	implementation 'org.springframework.boot:spring-boot-starter-web'
-	implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
+	implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6'
 	implementation 'io.projectreactor.netty:reactor-netty'
 
 	testImplementation 'org.springframework.boot:spring-boot-starter-test'

+ 2 - 2
servlet/spring-boot/java/oauth2/webclient/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 3 - 3
servlet/spring-boot/java/saml2/login-single-tenant/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }
@@ -22,7 +22,7 @@ dependencies {
 	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
 	implementation 'org.springframework.boot:spring-boot-starter-web'
 	implementation 'org.springframework.security:spring-security-saml2-service-provider'
-	implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
+	implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6'
 
 	testImplementation 'net.sourceforge.htmlunit:htmlunit'
 	testImplementation 'org.springframework.boot:spring-boot-starter-test'

+ 2 - 2
servlet/spring-boot/java/saml2/login-single-tenant/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 4 - 3
servlet/spring-boot/java/saml2/login/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.2'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }
@@ -22,11 +22,12 @@ dependencies {
 	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
 	implementation 'org.springframework.boot:spring-boot-starter-web'
 	implementation 'org.springframework.security:spring-security-saml2-service-provider'
-	implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
+	implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6'
 
 	testImplementation 'net.sourceforge.htmlunit:htmlunit'
 	testImplementation 'org.springframework.boot:spring-boot-starter-test'
 	testImplementation 'org.springframework.security:spring-security-test'
+	testImplementation 'org.awaitility:awaitility:4.2.0'
 }
 
 tasks.withType(Test).configureEach {

+ 2 - 2
servlet/spring-boot/java/saml2/login/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

Разница между файлами не показана из-за своего большого размера
+ 6 - 13
servlet/spring-boot/java/saml2/login/src/integTest/java/example/Saml2LoginApplicationITests.java


+ 3 - 3
servlet/spring-boot/java/saml2/refreshable-metadata/build.gradle

@@ -1,6 +1,6 @@
 plugins {
-	id 'org.springframework.boot' version '2.5.6'
-	id 'io.spring.dependency-management' version '1.0.10.RELEASE'
+	id 'org.springframework.boot' version '3.0.0-M1'
+	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
 	id "nebula.integtest" version "8.2.0"
 	id 'java'
 }
@@ -22,7 +22,7 @@ dependencies {
 	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
 	implementation 'org.springframework.boot:spring-boot-starter-web'
 	implementation 'org.springframework.security:spring-security-saml2-service-provider'
-	implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
+	implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6'
 
 	testImplementation 'net.sourceforge.htmlunit:htmlunit'
 	testImplementation 'org.springframework.boot:spring-boot-starter-test'

+ 2 - 2
servlet/spring-boot/java/saml2/refreshable-metadata/gradle.properties

@@ -1,2 +1,2 @@
-version=5.6.0-SNAPSHOT
-spring-security.version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 6 - 5
servlet/spring-boot/kotlin/hello-security/build.gradle.kts

@@ -1,8 +1,8 @@
 import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
 
 plugins {
-    id("org.springframework.boot") version "2.5.0"
-    id("io.spring.dependency-management") version "1.0.9.RELEASE"
+    id("org.springframework.boot") version "3.0.0-M1"
+    id("io.spring.dependency-management") version "1.0.11.RELEASE"
     kotlin("jvm") version "1.6.0"
     kotlin("plugin.spring") version "1.6.0"
 }
@@ -12,15 +12,16 @@ repositories {
     maven {
         url = uri("https://repo.spring.io/snapshot")
     }
+    maven {
+        url = uri("https://repo.spring.io/milestone")
+    }
 }
 
 dependencies {
-    implementation("org.jetbrains.kotlin:kotlin-reflect")
-    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
     implementation("org.springframework.boot:spring-boot-starter-security")
     implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
     implementation("org.springframework.boot:spring-boot-starter-web")
-    implementation("org.thymeleaf.extras:thymeleaf-extras-springsecurity5")
+    implementation("org.thymeleaf.extras:thymeleaf-extras-springsecurity6")
     testImplementation("org.springframework.boot:spring-boot-starter-test")
     testImplementation("org.springframework.security:spring-security-test")
 }

+ 1 - 1
servlet/spring-boot/kotlin/hello-security/gradle.properties

@@ -1 +1 @@
-spring-security.version=5.6.0-SNAPSHOT
+spring-security.version=6.0.0-SNAPSHOT

+ 5 - 10
servlet/spring-boot/kotlin/hello-security/src/main/kotlin/org/springframework/security/samples/config/SecurityConfig.kt

@@ -19,7 +19,6 @@ package org.springframework.security.samples.config
 import org.springframework.context.annotation.Bean
 import org.springframework.security.config.annotation.web.builders.HttpSecurity
 import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity
-import org.springframework.security.config.web.servlet.invoke
 import org.springframework.security.core.userdetails.User
 import org.springframework.security.core.userdetails.UserDetailsService
 import org.springframework.security.provisioning.InMemoryUserDetailsManager
@@ -33,15 +32,11 @@ class SecurityConfig {
 
     @Bean
     fun filterChain(http: HttpSecurity): SecurityFilterChain {
-        http {
-            authorizeRequests {
-                authorize("/css/**", permitAll)
-                authorize("/user/**", hasAuthority("ROLE_USER"))
-            }
-            formLogin {
-                loginPage = "/log-in"
-            }
-        }
+        http.authorizeRequests()
+            .antMatchers("/css/**").permitAll()
+            .antMatchers("/user/**").hasAuthority("ROLE_USER")
+            .and()
+            .formLogin().loginPage("/log-in")
         return http.build()
     }
 

+ 1 - 1
servlet/xml/java/contacts/gradle.properties

@@ -1 +1 @@
-version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT

+ 1 - 1
servlet/xml/java/dms/gradle.properties

@@ -1 +1 @@
-version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT

+ 1 - 1
servlet/xml/java/helloworld/gradle.properties

@@ -1 +1 @@
-version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT

+ 1 - 1
servlet/xml/java/preauth/gradle.properties

@@ -1 +1 @@
-version=5.6.0-SNAPSHOT
+version=6.0.0-SNAPSHOT

+ 3 - 2
servlet/xml/java/saml2/login-logout/build.gradle

@@ -1,6 +1,7 @@
 plugins {
 	id "java"
-	id "org.gretty" version "3.0.6"
+	id "nebula.integtest" version "8.2.0"
+	id "org.gretty" version "4.0.0"
 	id "war"
 }
 
@@ -34,7 +35,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.49.1'
+	testImplementation 'net.sourceforge.htmlunit:htmlunit:2.44.0'
 	testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
 
 

+ 1 - 1
servlet/xml/java/saml2/login-logout/gradle.properties

@@ -1 +1 @@
-version=5.7.0-SNAPSHOT
+version=6.0.0-SNAPSHOT

+ 2 - 2
servlet/xml/java/saml2/login-logout/gradle/gretty.gradle

@@ -1,5 +1,5 @@
 gretty {
-	servletContainer = "tomcat9"
+	servletContainer = "tomcat10"
 	contextPath = "/"
 	fileLogEnabled = false
 	integrationTestTask = 'integrationTest'
@@ -38,4 +38,4 @@ project.tasks.matching { it.name == "integrationTest" }.all {
 		integrationTest.systemProperty 'app.httpBaseURI', httpBaseUrl
 		integrationTest.systemProperty 'app.httpsBaseURI', httpsBaseUrl
 	}
-}
+}

Некоторые файлы не были показаны из-за большого количества измененных файлов