404 Not Found при попытке загрузить CSS файлы. Spring
Делаю сайт на Spring-е с использованием JWT токенов и столкнулся с проблемой загрузкой css файлов. Смотрел в чем проблема и в консоли разработчика (F12) обнаружил проблему у style.css - 404 Not Found, что означает что сервер не может найти статический ресурс по пути.
При переходе на /login есть форма, но без стилей и вот ошибка в F12: ㅤ
Код SecurityConfig:
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.csrf(
csrf -> csrf.disable()
).authorizeHttpRequests( (auth) -> auth
.requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
.requestMatchers("/main", "/add").authenticated()
.requestMatchers("/css/**", "/images/**").permitAll()
.anyRequest().permitAll()
)
.addFilterBefore(jwtRequestFilter, UsernamePasswordAuthenticationFilter.class)
.exceptionHandling(
exp -> exp.authenticationEntryPoint(new HttpStatusEntryPoint(HttpStatus.UNAUTHORIZED))
);
return http.build();
}
public void configure(WebSecurity web) throws Exception {
web.ignoring().requestMatchers("/css/**", "/images/**");
}
JwtRequestFiler, Фильтр который проверяет jwt токен из cookie:
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
String requestURI = request.getRequestURI();
if (ignoredUrls.contains(requestURI)|| requestURI.startsWith("/static/") || requestURI.startsWith("/css/")) {
logger.info("Пользователь попал на игнорируемую страницу");
chain.doFilter(request, response);
return;
}
// Достаём токен, далее нужно проверить, действительный ли токен
String requestTokenHeader = request.getHeader("Authorization");
String token = tokenExtractor.extractToken(request);
if (jwtTokenUtils.validateToken(token)) {
logger.info("Токен прошёл проверку");
logger.info("Действующий токен: " + token);
String username = jwtTokenUtils.getUsername(token);
if (username != null) {
logger.info("С токеном все ок!");
UserDetails user = userService.loadUserByUsername(username);
UsernamePasswordAuthenticationToken authorization = new UsernamePasswordAuthenticationToken(
user.getUsername(),
null,
user.getAuthorities()
);
SecurityContextHolder.getContext().setAuthentication(authorization);
logger.info("Успешно положили в контекст");
}
} else {
// Удаляем токен из cookie
tokenExtractor.removeTokenFromRequest(request);
response.setStatus(401);
logger.info("Ошибка: С токеном что то не так");
return;
}
chain.doFilter(request, response);
}
Структура resources:
Ссылки на css файлы указывал следующим образом:
<link rel="stylesheet" href="/css/style.css">
Так же пробовал MvcConfigurer