diff --git a/docs/spring-security-docs.gradle b/docs/spring-security-docs.gradle index a0828e0e33..d21d7b9eab 100644 --- a/docs/spring-security-docs.gradle +++ b/docs/spring-security-docs.gradle @@ -5,6 +5,7 @@ plugins { id 'security-kotlin' id 'java-toolchain' id 'test-compile-target-jdk25' + id 'compile-warnings-error' } apply plugin: 'io.spring.convention.docs' diff --git a/docs/src/test/kotlin/org/springframework/security/kt/docs/features/authentication/authenticationcompromisedpasswordcheck/CompromisedPasswordCheckerUsage.kt b/docs/src/test/kotlin/org/springframework/security/kt/docs/features/authentication/authenticationcompromisedpasswordcheck/CompromisedPasswordCheckerUsage.kt index 1add9a46a5..9bcfb2f65a 100644 --- a/docs/src/test/kotlin/org/springframework/security/kt/docs/features/authentication/authenticationcompromisedpasswordcheck/CompromisedPasswordCheckerUsage.kt +++ b/docs/src/test/kotlin/org/springframework/security/kt/docs/features/authentication/authenticationcompromisedpasswordcheck/CompromisedPasswordCheckerUsage.kt @@ -15,7 +15,7 @@ import org.springframework.security.web.authentication.SimpleUrlAuthenticationFa import org.springframework.security.web.authentication.password.HaveIBeenPwnedRestApiPasswordChecker -class CompromisedPasswordCheckerUsage { +open class CompromisedPasswordCheckerUsage { // tag::configuration[] @Bean open fun filterChain(http: HttpSecurity): SecurityFilterChain { diff --git a/docs/src/test/kotlin/org/springframework/security/kt/docs/features/authentication/authenticationpasswordstoragedepgettingstarted/WithDefaultPasswordEncoderUsage.kt b/docs/src/test/kotlin/org/springframework/security/kt/docs/features/authentication/authenticationpasswordstoragedepgettingstarted/WithDefaultPasswordEncoderUsage.kt index 6b973b286b..fef99d70da 100644 --- a/docs/src/test/kotlin/org/springframework/security/kt/docs/features/authentication/authenticationpasswordstoragedepgettingstarted/WithDefaultPasswordEncoderUsage.kt +++ b/docs/src/test/kotlin/org/springframework/security/kt/docs/features/authentication/authenticationpasswordstoragedepgettingstarted/WithDefaultPasswordEncoderUsage.kt @@ -4,6 +4,8 @@ import org.springframework.security.core.userdetails.User import org.springframework.security.core.userdetails.UserDetails class WithDefaultPasswordEncoderUsage { + + @Suppress("DEPRECATION") fun createSingleUser(): UserDetails { // tag::createSingleUser[] val user = User.withDefaultPasswordEncoder() @@ -17,6 +19,7 @@ class WithDefaultPasswordEncoderUsage { return user } + @Suppress("DEPRECATION") fun createMultipleUsers(): List { // tag::createMultipleUsers[] val users = User.withDefaultPasswordEncoder() diff --git a/docs/src/test/kotlin/org/springframework/security/kt/docs/features/authentication/authenticationpasswordstoragedpe/DelegatingPasswordEncoderUsage.kt b/docs/src/test/kotlin/org/springframework/security/kt/docs/features/authentication/authenticationpasswordstoragedpe/DelegatingPasswordEncoderUsage.kt index 63ac610e64..dbe3b0e6e7 100644 --- a/docs/src/test/kotlin/org/springframework/security/kt/docs/features/authentication/authenticationpasswordstoragedpe/DelegatingPasswordEncoderUsage.kt +++ b/docs/src/test/kotlin/org/springframework/security/kt/docs/features/authentication/authenticationpasswordstoragedpe/DelegatingPasswordEncoderUsage.kt @@ -4,10 +4,8 @@ import org.springframework.security.crypto.argon2.Argon2PasswordEncoder import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder import org.springframework.security.crypto.factory.PasswordEncoderFactories import org.springframework.security.crypto.password.DelegatingPasswordEncoder -import org.springframework.security.crypto.password.NoOpPasswordEncoder import org.springframework.security.crypto.password.PasswordEncoder import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder -import org.springframework.security.crypto.password.StandardPasswordEncoder import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder class DelegatingPasswordEncoderUsage { @@ -18,19 +16,20 @@ class DelegatingPasswordEncoderUsage { return passwordEncoder } + @Suppress("DEPRECATION") fun customDelegatingPasswordEncoder(): PasswordEncoder { // tag::createCustomPasswordEncoder[] val idForEncode = "bcrypt" val encoders: MutableMap = mutableMapOf() encoders[idForEncode] = BCryptPasswordEncoder() - encoders["noop"] = NoOpPasswordEncoder.getInstance() + encoders["noop"] = org.springframework.security.crypto.password.NoOpPasswordEncoder.getInstance() encoders["pbkdf2"] = Pbkdf2PasswordEncoder.defaultsForSpringSecurity_v5_5() encoders["pbkdf2@SpringSecurity_v5_8"] = Pbkdf2PasswordEncoder.defaultsForSpringSecurity_v5_8() encoders["scrypt"] = SCryptPasswordEncoder.defaultsForSpringSecurity_v4_1() encoders["scrypt@SpringSecurity_v5_8"] = SCryptPasswordEncoder.defaultsForSpringSecurity_v5_8() encoders["argon2"] = Argon2PasswordEncoder.defaultsForSpringSecurity_v5_2() encoders["argon2@SpringSecurity_v5_8"] = Argon2PasswordEncoder.defaultsForSpringSecurity_v5_8() - encoders["sha256"] = StandardPasswordEncoder() + encoders["sha256"] = org.springframework.security.crypto.password.StandardPasswordEncoder() val passwordEncoder: PasswordEncoder = DelegatingPasswordEncoder(idForEncode, encoders) // end::createCustomPasswordEncoder[] diff --git a/docs/src/test/kotlin/org/springframework/security/kt/docs/reactive/authentication/reactivex509/X509ConfigurationTests.kt b/docs/src/test/kotlin/org/springframework/security/kt/docs/reactive/authentication/reactivex509/X509ConfigurationTests.kt index 7479d340ff..a5d3c8fc04 100644 --- a/docs/src/test/kotlin/org/springframework/security/kt/docs/reactive/authentication/reactivex509/X509ConfigurationTests.kt +++ b/docs/src/test/kotlin/org/springframework/security/kt/docs/reactive/authentication/reactivex509/X509ConfigurationTests.kt @@ -19,8 +19,6 @@ import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith import org.springframework.beans.factory.annotation.Autowired import org.springframework.core.io.ClassPathResource -import org.springframework.http.client.reactive.ClientHttpConnector -import org.springframework.http.server.reactive.SslInfo import org.springframework.security.config.test.SpringTestContext import org.springframework.security.config.test.SpringTestContextExtension import org.springframework.security.test.web.reactive.server.SecurityMockServerConfigurers @@ -28,17 +26,10 @@ import org.springframework.security.test.web.reactive.server.WebTestClientBuilde import org.springframework.security.web.authentication.preauth.x509.X509TestUtils import org.springframework.test.web.reactive.server.UserWebTestClientConfigurer.x509 import org.springframework.test.web.reactive.server.WebTestClient -import org.springframework.test.web.reactive.server.WebTestClientConfigurer -import org.springframework.util.Assert -import org.springframework.web.server.ServerWebExchange import org.springframework.web.server.WebFilter -import org.springframework.web.server.WebFilterChain -import org.springframework.web.server.adapter.WebHttpHandlerBuilder -import reactor.core.publisher.Mono import java.security.cert.Certificate import java.security.cert.CertificateFactory import java.security.cert.X509Certificate -import java.util.function.Consumer /** * Tests [CustomX509Configuration]. @@ -88,9 +79,10 @@ class X509ConfigurationTests { // @formatter:on } + @Suppress("UNCHECKED_CAST") private fun loadCert(location: String): T { try { - ClassPathResource(location).getInputStream().use { `is` -> + ClassPathResource(location).inputStream.use { `is` -> val certFactory = CertificateFactory.getInstance("X.509") return certFactory.generateCertificate(`is`) as T } diff --git a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/authorizationmanagerfactory/UseAuthorizationManagerFactoryConfiguration.kt b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/authorizationmanagerfactory/UseAuthorizationManagerFactoryConfiguration.kt index 8463e6d3c0..272f58c2c3 100644 --- a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/authorizationmanagerfactory/UseAuthorizationManagerFactoryConfiguration.kt +++ b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/authorizationmanagerfactory/UseAuthorizationManagerFactoryConfiguration.kt @@ -37,8 +37,8 @@ internal class UseAuthorizationManagerFactoryConfiguration { // tag::authorizationManagerFactoryBean[] @Bean - fun authz(): AuthorizationManagerFactory { - return AuthorizationManagerFactories.multiFactor() + fun authz(): AuthorizationManagerFactory { + return AuthorizationManagerFactories.multiFactor() .requireFactors( FactorGrantedAuthority.PASSWORD_AUTHORITY, FactorGrantedAuthority.OTT_AUTHORITY @@ -47,6 +47,7 @@ internal class UseAuthorizationManagerFactoryConfiguration { } // end::authorizationManagerFactoryBean[] + @Suppress("DEPRECATION") @Bean fun userDetailsService(): UserDetailsService { return InMemoryUserDetailsManager( diff --git a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/emfa/EnableMultiFactorAuthenticationConfiguration.kt b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/emfa/EnableMultiFactorAuthenticationConfiguration.kt index 0a8268281d..4495769c71 100644 --- a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/emfa/EnableMultiFactorAuthenticationConfiguration.kt +++ b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/emfa/EnableMultiFactorAuthenticationConfiguration.kt @@ -44,6 +44,7 @@ internal class EnableMultiFactorAuthenticationConfiguration { } // end::httpSecurity[] + @Suppress("DEPRECATION") @Bean fun userDetailsService(): UserDetailsService { return InMemoryUserDetailsManager( diff --git a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/hasallauthorities/ListAuthoritiesConfiguration.kt b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/hasallauthorities/ListAuthoritiesConfiguration.kt index 81013b422b..56ea5be2b5 100644 --- a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/hasallauthorities/ListAuthoritiesConfiguration.kt +++ b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/hasallauthorities/ListAuthoritiesConfiguration.kt @@ -38,6 +38,7 @@ internal class ListAuthoritiesConfiguration { } // end::httpSecurity[] + @Suppress("DEPRECATION") @Bean fun userDetailsService(): UserDetailsService { return InMemoryUserDetailsManager( diff --git a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/hasallauthorities/MultipleAuthorizationRulesConfiguration.kt b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/hasallauthorities/MultipleAuthorizationRulesConfiguration.kt index 276ecc3d69..c25c0a624c 100644 --- a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/hasallauthorities/MultipleAuthorizationRulesConfiguration.kt +++ b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/hasallauthorities/MultipleAuthorizationRulesConfiguration.kt @@ -45,6 +45,7 @@ internal class MultipleAuthorizationRulesConfiguration { } // end::httpSecurity[] + @Suppress("DEPRECATION") @Bean fun userDetailsService(): UserDetailsService { return InMemoryUserDetailsManager( diff --git a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/obtainingmoreauthorization/MissingAuthorityConfiguration.kt b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/obtainingmoreauthorization/MissingAuthorityConfiguration.kt index a84c06fffa..3195d7d8e6 100644 --- a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/obtainingmoreauthorization/MissingAuthorityConfiguration.kt +++ b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/obtainingmoreauthorization/MissingAuthorityConfiguration.kt @@ -53,8 +53,8 @@ internal class MissingAuthorityConfiguration { // tag::authorizationManagerFactoryBean[] @Bean - fun authz(): AuthorizationManagerFactory { - return AuthorizationManagerFactories.multiFactor() + fun authz(): AuthorizationManagerFactory { + return AuthorizationManagerFactories.multiFactor() .requireFactors( FactorGrantedAuthority.X509_AUTHORITY, FactorGrantedAuthority.AUTHORIZATION_CODE_AUTHORITY diff --git a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/programmaticmfa/AdminMfaAuthorizationManagerConfiguration.kt b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/programmaticmfa/AdminMfaAuthorizationManagerConfiguration.kt index b65b30cce0..ffed6077f0 100644 --- a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/programmaticmfa/AdminMfaAuthorizationManagerConfiguration.kt +++ b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/programmaticmfa/AdminMfaAuthorizationManagerConfiguration.kt @@ -42,9 +42,9 @@ internal class AdminMfaAuthorizationManagerConfiguration { // tag::authorizationManager[] @Component - internal open class AdminMfaAuthorizationManager : AuthorizationManager { + internal open class AdminMfaAuthorizationManager : AuthorizationManager { override fun authorize( - authentication: Supplier, context: Object): AuthorizationResult { + authentication: Supplier, context: Any): AuthorizationResult { return if ("admin" == authentication.get().name) { var admins = AllAuthoritiesAuthorizationManager.hasAllAuthorities( @@ -62,8 +62,8 @@ internal class AdminMfaAuthorizationManagerConfiguration { // tag::authorizationManagerFactory[] @Bean - fun authorizationManagerFactory(admins: AdminMfaAuthorizationManager): AuthorizationManagerFactory { - val defaults = DefaultAuthorizationManagerFactory() + fun authorizationManagerFactory(admins: AdminMfaAuthorizationManager): AuthorizationManagerFactory { + val defaults = DefaultAuthorizationManagerFactory() // <1> defaults.setAdditionalAuthorization(admins) // <2> diff --git a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/raammfa/RequiredAuthoritiesAuthorizationManagerConfiguration.kt b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/raammfa/RequiredAuthoritiesAuthorizationManagerConfiguration.kt index 6b96405a5a..e7d345be56 100644 --- a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/raammfa/RequiredAuthoritiesAuthorizationManagerConfiguration.kt +++ b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/raammfa/RequiredAuthoritiesAuthorizationManagerConfiguration.kt @@ -16,7 +16,6 @@ import org.springframework.security.provisioning.InMemoryUserDetailsManager import org.springframework.security.web.SecurityFilterChain import org.springframework.security.web.authentication.ott.OneTimeTokenGenerationSuccessHandler import org.springframework.security.web.authentication.ott.RedirectOneTimeTokenGenerationSuccessHandler -import java.util.List @EnableWebSecurity @Configuration(proxyBeanMethods = false) @@ -40,10 +39,10 @@ internal class RequiredAuthoritiesAuthorizationManagerConfiguration { // tag::authorizationManager[] @Bean - fun adminAuthorization(): RequiredAuthoritiesAuthorizationManager { + fun adminAuthorization(): RequiredAuthoritiesAuthorizationManager { // <1> val authorities = MapRequiredAuthoritiesRepository() - authorities.saveRequiredAuthorities("admin", List.of( + authorities.saveRequiredAuthorities("admin", listOf( FactorGrantedAuthority.PASSWORD_AUTHORITY, FactorGrantedAuthority.OTT_AUTHORITY) ) @@ -55,8 +54,8 @@ internal class RequiredAuthoritiesAuthorizationManagerConfiguration { // tag::authorizationManagerFactory[] @Bean - fun authorizationManagerFactory(admins: RequiredAuthoritiesAuthorizationManager): AuthorizationManagerFactory { - val defaults = DefaultAuthorizationManagerFactory() + fun authorizationManagerFactory(admins: RequiredAuthoritiesAuthorizationManager): AuthorizationManagerFactory { + val defaults = DefaultAuthorizationManagerFactory() // <1> defaults.setAdditionalAuthorization(admins) // <2> diff --git a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/reauthentication/RequireOttConfiguration.kt b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/reauthentication/RequireOttConfiguration.kt index 4100ce0356..39e6555b78 100644 --- a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/reauthentication/RequireOttConfiguration.kt +++ b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/reauthentication/RequireOttConfiguration.kt @@ -34,6 +34,7 @@ class RequireOttConfiguration { } // end::httpSecurity[] + @Suppress("DEPRECATION") @Bean fun userDetailsService(): UserDetailsService { return InMemoryUserDetailsManager( diff --git a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/reauthentication/SimpleConfiguration.kt b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/reauthentication/SimpleConfiguration.kt index 221360d121..8639ce1bd3 100644 --- a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/reauthentication/SimpleConfiguration.kt +++ b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/reauthentication/SimpleConfiguration.kt @@ -31,6 +31,7 @@ class SimpleConfiguration { } // end::httpSecurity[] + @Suppress("DEPRECATION") @Bean fun userDetailsService(): UserDetailsService { return InMemoryUserDetailsManager( diff --git a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/selectivemfa/SelectiveMfaConfiguration.kt b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/selectivemfa/SelectiveMfaConfiguration.kt index 4f601eb84a..c4553a46b3 100644 --- a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/selectivemfa/SelectiveMfaConfiguration.kt +++ b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/selectivemfa/SelectiveMfaConfiguration.kt @@ -3,7 +3,6 @@ package org.springframework.security.kt.docs.servlet.authentication.selectivemfa import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import org.springframework.security.authorization.AuthorizationManagerFactories -import org.springframework.security.authorization.AuthorizationManagerFactory import org.springframework.security.config.annotation.authorization.EnableMultiFactorAuthentication import org.springframework.security.config.annotation.web.builders.HttpSecurity import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity @@ -52,6 +51,7 @@ internal class SelectiveMfaConfiguration { } // end::httpSecurity[] + @Suppress("DEPRECATION") @Bean fun userDetailsService(): UserDetailsService { return InMemoryUserDetailsManager( diff --git a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/validduration/ValidDurationConfiguration.kt b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/validduration/ValidDurationConfiguration.kt index 7119b52723..a1689daa7f 100644 --- a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/validduration/ValidDurationConfiguration.kt +++ b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/authentication/validduration/ValidDurationConfiguration.kt @@ -3,11 +3,9 @@ package org.springframework.security.kt.docs.servlet.authentication.validduratio import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import org.springframework.security.authorization.AuthorizationManagerFactories -import org.springframework.security.authorization.AuthorizationManagerFactory import org.springframework.security.config.annotation.web.builders.HttpSecurity import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity import org.springframework.security.config.annotation.web.invoke -import org.springframework.security.core.authority.FactorGrantedAuthority import org.springframework.security.core.userdetails.User import org.springframework.security.core.userdetails.UserDetailsService import org.springframework.security.provisioning.InMemoryUserDetailsManager @@ -55,6 +53,7 @@ internal class ValidDurationConfiguration { } // end::httpSecurity[] + @Suppress("DEPRECATION") @Bean fun userDetailsService(): UserDetailsService { return InMemoryUserDetailsManager( diff --git a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/test/testmethodwithuserdetails/WithUserDetailsTests.kt b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/test/testmethodwithuserdetails/WithUserDetailsTests.kt index 0c77028880..81c97ef187 100644 --- a/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/test/testmethodwithuserdetails/WithUserDetailsTests.kt +++ b/docs/src/test/kotlin/org/springframework/security/kt/docs/servlet/test/testmethodwithuserdetails/WithUserDetailsTests.kt @@ -61,17 +61,18 @@ class WithUserDetailsTests { @Configuration open class Config { + @Suppress("DEPRECATION") @Bean open fun userDetailsService(): UserDetailsService { val user1 = User.withDefaultPasswordEncoder() .username("user") .password("password") - .build(); + .build() val customUser = User.withDefaultPasswordEncoder() .username("customUsername") .password("password") - .build(); - return InMemoryUserDetailsManager(user1, customUser); + .build() + return InMemoryUserDetailsManager(user1, customUser) } @Bean