From ea8fb1f159280f1ee03b9593256588d40aa4b86d Mon Sep 17 00:00:00 2001 From: Steve Riesenberg Date: Wed, 9 Nov 2022 12:14:40 -0600 Subject: [PATCH] Document SecurityContextRepository default Issue gh-12049 --- docs/modules/ROOT/pages/migration.adoc | 62 ++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/docs/modules/ROOT/pages/migration.adoc b/docs/modules/ROOT/pages/migration.adoc index 96dc02b0b2..6e7385f2cb 100644 --- a/docs/modules/ROOT/pages/migration.adoc +++ b/docs/modules/ROOT/pages/migration.adoc @@ -193,6 +193,68 @@ To opt into the new Spring Security 6 default, the following configuration can b include::partial$servlet/architecture/security-context-explicit.adoc[] +=== Multiple SecurityContextRepository + +In Spring Security 5, the default xref:servlet/authentication/persistence.adoc#securitycontextrepository[`SecurityContextRepository`] is `HttpSessionSecurityContextRepository`. + +In Spring Security 6, the default `SecurityContextRepository` is `DelegatingSecurityContextRepository`. +To opt into the new Spring Security 6 default, the following configuration can be used. + +.Configure SecurityContextRepository with 6.0 defaults +==== +.Java +[source,java,role="primary"] +---- +@Bean +public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { + http + // ... + .securityContext((securityContext) -> securityContext + .securityContextRepository(new DelegatingSecurityContextRepository( + new RequestAttributeSecurityContextRepository(), + new HttpSessionSecurityContextRepository() + )) + ); + return http.build(); +} +---- + +.Kotlin +[source,kotlin,role="secondary"] +---- +@Bean +fun securityFilterChain(http: HttpSecurity): SecurityFilterChain { + http { + // ... + securityContext { + securityContextRepository = DelegatingSecurityContextRepository( + RequestAttributeSecurityContextRepository(), + HttpSessionSecurityContextRepository() + ) + } + } + return http.build() +} +---- + +.XML +[source,xml,role="secondary"] +---- + + + + + + + + + + + +---- +==== + === Deprecation in SecurityContextRepository In Spring Security 5.7, a new method was added to xref:servlet/authentication/persistence.adoc#securitycontextrepository[`SecurityContextRepository`] with the signature: