Как разрешить Spring Security 6 разрешать общие ресурсы (статические, изображения и т. д.)
Я использую Spring Security 6, и у меня проблемы с рендерингом страниц: поскольку я использую Thymeleaf, статический репертуар не разрешен.
Это мой фильтр
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception{
httpSecurity
.csrf(AbstractHttpConfigurer::disable)
.authorizeHttpRequests(auth -> auth
.requestMatchers("/auth/**")
.permitAll()
.anyRequest()
.authenticated())
return httpSecurity.build();
}
При попытке добавить
@Bean
public WebSecurityCustomizer webSecurityCustomizer() {
return (web) -> web.ignoring().antMatchers("/static");
}
он кажется обесцененным.
Но когда я редактирую фильтр вот так
.authorizeHttpRequests(auth -> auth
.requestMatchers("/**")
.permitAll()
Все правильно.
Может кто знает на что заменено..??
Спасибо !!!
1 ответ
You have to give static resources access, Hope below steps can help
- Keep all your css/js/images under static => dist folder
- update securityFilterChain method with below code
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception{
httpSecurity
.csrf(AbstractHttpConfigurer::disable)
.authorizeHttpRequests(auth -> auth
.requestMatchers("/auth/**", "/dist/**")
.permitAll()
.anyRequest()
.authenticated());
return httpSecurity.build();
}
- try load css/js/images like below Thymeleaf code
<link rel="stylesheet" th:href="@{/dist/css/style.css}" />
<script type="text/javascript" th:src="@{/dist/js/jquery-3.6.0.min.js}"></script>
<img th:src="@{/dist/images/your_image.png}" alt="" />