|
@@ -17,10 +17,14 @@ import org.springframework.security.web.SecurityFilterChain;
|
|
|
import org.springframework.security.web.access.channel.ChannelProcessingFilter;
|
|
import org.springframework.security.web.access.channel.ChannelProcessingFilter;
|
|
|
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
|
|
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
|
|
|
import org.springframework.security.web.context.SecurityContextRepository;
|
|
import org.springframework.security.web.context.SecurityContextRepository;
|
|
|
|
|
+//import org.springframework.security.web.csrf.CookieCsrfTokenRepository;
|
|
|
|
|
+import org.springframework.security.web.header.HeaderWriterFilter;
|
|
|
import org.springframework.security.web.header.writers.ReferrerPolicyHeaderWriter.ReferrerPolicy;
|
|
import org.springframework.security.web.header.writers.ReferrerPolicyHeaderWriter.ReferrerPolicy;
|
|
|
import org.springframework.security.web.header.writers.XXssProtectionHeaderWriter;
|
|
import org.springframework.security.web.header.writers.XXssProtectionHeaderWriter;
|
|
|
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
|
|
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
|
|
|
|
|
|
|
|
|
|
+import fr.triplea.demovote.security.cors.CorsFilter;
|
|
|
|
|
+import fr.triplea.demovote.security.csrf.CsrfHeaderFilter;
|
|
|
import fr.triplea.demovote.security.jwt.JwtTokenFilter;
|
|
import fr.triplea.demovote.security.jwt.JwtTokenFilter;
|
|
|
|
|
|
|
|
import org.springframework.security.web.context.DelegatingSecurityContextRepository;
|
|
import org.springframework.security.web.context.DelegatingSecurityContextRepository;
|
|
@@ -86,11 +90,15 @@ public class SecurityConfig
|
|
|
|
|
|
|
|
Class<? extends ChannelProcessingFilter> cpf_clazz = ChannelProcessingFilter.class;
|
|
Class<? extends ChannelProcessingFilter> cpf_clazz = ChannelProcessingFilter.class;
|
|
|
|
|
|
|
|
|
|
+ @Bean
|
|
|
|
|
+ public CsrfHeaderFilter csrfHeaderFilter() { return new CsrfHeaderFilter(); }
|
|
|
|
|
+
|
|
|
|
|
+ Class<? extends HeaderWriterFilter> csrfhf_clazz = HeaderWriterFilter.class;
|
|
|
|
|
|
|
|
@Bean
|
|
@Bean
|
|
|
SecurityFilterChain securityFilterChain(HttpSecurity http, SecurityContextRepository securityContextRepository) throws Exception
|
|
SecurityFilterChain securityFilterChain(HttpSecurity http, SecurityContextRepository securityContextRepository) throws Exception
|
|
|
{
|
|
{
|
|
|
- http.csrf(csrf -> csrf.disable())
|
|
|
|
|
|
|
+ http.csrf(csrf -> csrf.disable())//csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()))
|
|
|
.requiresChannel(channel -> channel.anyRequest().requiresSecure())
|
|
.requiresChannel(channel -> channel.anyRequest().requiresSecure())
|
|
|
.authenticationProvider(authenticationProvider())
|
|
.authenticationProvider(authenticationProvider())
|
|
|
.authorizeHttpRequests((ahreq) -> ahreq
|
|
.authorizeHttpRequests((ahreq) -> ahreq
|
|
@@ -102,6 +110,7 @@ public class SecurityConfig
|
|
|
)
|
|
)
|
|
|
.addFilterBefore(jwtTokenFilter(), upaf_clazz)
|
|
.addFilterBefore(jwtTokenFilter(), upaf_clazz)
|
|
|
.addFilterBefore(corsFilter(), cpf_clazz)
|
|
.addFilterBefore(corsFilter(), cpf_clazz)
|
|
|
|
|
+ //.addFilterBefore(csrfHeaderFilter(), csrfhf_clazz)
|
|
|
.securityContext(sc -> sc.securityContextRepository(securityContextRepository).requireExplicitSave(true))
|
|
.securityContext(sc -> sc.securityContextRepository(securityContextRepository).requireExplicitSave(true))
|
|
|
.headers(headers -> headers
|
|
.headers(headers -> headers
|
|
|
.xssProtection(xss -> xss.headerValue(XXssProtectionHeaderWriter.HeaderValue.ENABLED_MODE_BLOCK))
|
|
.xssProtection(xss -> xss.headerValue(XXssProtectionHeaderWriter.HeaderValue.ENABLED_MODE_BLOCK))
|