1515import software .xdev .spring .security .web .authentication .ui .advanced .AdvancedLoginPageAdapter ;
1616import software .xdev .spring .security .web .authentication .ui .advanced .config .AdditionalOAuth2ClientProperties ;
1717import software .xdev .sse .csp .CSPGenerator ;
18+ import software .xdev .sse .web .hsts .HstsApplier ;
1819
1920
2021@ EnableWebSecurity
2122@ Configuration
2223@ EnableConfigurationProperties (AdditionalOAuth2ClientProperties .class )
2324public class MainWebSecurity
2425{
25- @ SuppressWarnings ("java:S4502" ) // See below
26- @ Bean (name = "mainSecurityFilterChainBean" )
27- public SecurityFilterChain configure (
26+ @ Bean
27+ public SecurityFilterChain mainSecurityFilterChain (
2828 final HttpSecurity http ,
2929 final CSPGenerator cspGenerator ,
30- final AdditionalOAuth2ClientProperties additionalOAuth2ClientProperties ) throws Exception
30+ final AdditionalOAuth2ClientProperties additionalOAuth2ClientProperties ,
31+ final HstsApplier hstsApplier )
32+ throws Exception
3133 {
32- http .with (
34+ return http .with (
3335 new AdvancedLoginPageAdapter <>(http ),
3436 c -> c
3537 .customizePages (p -> p .setHeaderElements (List .of (
@@ -46,7 +48,7 @@ public SecurityFilterChain configure(
4648 + "</div>"
4749 + "<h2 class='h2 mb-3 text-center'>Demo</h2>" )
4850 ))
49- .headers (h -> h
51+ .headers (h -> hstsApplier . apply ( h )
5052 .referrerPolicy (r -> r .policy (ReferrerPolicyHeaderWriter .ReferrerPolicy .SAME_ORIGIN ))
5153 // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
5254 .contentTypeOptions (Customizer .withDefaults ())
@@ -57,9 +59,8 @@ public SecurityFilterChain configure(
5759 .authorizeHttpRequests (urlRegistry -> urlRegistry .anyRequest ().authenticated ())
5860 .logout (Customizer .withDefaults ())
5961 // nothing needs to be saved
60- .requestCache (r -> r .requestCache (new NullRequestCache ()));
61-
62- return http .build ();
62+ .requestCache (r -> r .requestCache (new NullRequestCache ()))
63+ .build ();
6364 }
6465
6566}
0 commit comments