Не подключается css к Spring MVC Security

Рейтинг: 1Ответов: 1Опубликовано: 25.03.2023

Имеется Spring MVC проект + Spring Security. И не удается никак подключить css стиль. Структура папок: введите сюда описание изображения

style.css:

h1 {
    color: rgba(255, 1, 90, 0.9);
}

jsp file:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="<c:url value="/resources/style/style.css"/>">
</head>
<body>
<h1>TEST CSS STYLE</h1>
</body>
</html>

метод в контроллере:

@RequestMapping("cssTest")
    public ModelAndView cssTest(){
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("home-views/testCSS");
        return modelAndView;
    }

При запуске, вижу что стиль не применяется:

введите сюда описание изображения

Хэндлеры в конфиг добавил:

@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}

В чем может быть проблема? Я подозреваю, что Spring Security может блокировать как-то все это дело, поэтому на всякий случай добавляю конфигурацию Security:

  @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .csrf().disable()
                .authorizeRequests()
                .antMatchers("/registration**").permitAll()
                .antMatchers("/login").permitAll()
                .antMatchers("/resources/**").permitAll()
                .antMatchers("/admin**").hasRole("ADMIN")
                .anyRequest().authenticated()
                .and()
                .formLogin()
                .loginPage("/login")
                .permitAll()
                .usernameParameter("email")
                .passwordParameter("password")
                .and()
                .logout()
                .permitAll()
                .and();
    }

Подскажите пожалуйста, где ошибка? И как подключить css? Игрался по разному, в соответствии с тем что нагуглил, но решения так и не нашел. Если что еще нужно добавить в вопрос - скажите. Спасибо всем заранее UPD. насколько видите, в папке img также есть пару картинок, а в папке audio - пару аудиозаписей. И с ними проблем нет. Они в браузере работают норм.Проблема только с css

UPD 2.

Что приходит в браузере при запросе страницы с css:

введите сюда описание изображения

что приходит в браузере при запросе страницы с картинкой:

введите сюда описание изображения

По линку с css файлом увидел такое:

введите сюда описание изображения

Проблема найдена!!!

protected Filter[] getServletFilters() {
        return new Filter[]{new HiddenHttpMethodFilter(),
                new CharacterEncodingFilter("UTF-16", true, true)};

Вот и причина, почему стиль не применяется. В моем конфиге был косяк с фильтром: поэтому и я получал пожеванный css файл, соответственно, он и не применяелся

Ответы

▲ 1Принят

@siarhei987 в комментариях решил проблему:

protected Filter[] getServletFilters() {
        return new Filter[]{new HiddenHttpMethodFilter(),
                new CharacterEncodingFilter("UTF-16", true, true)};

данный фильтр "пережевал" мой css файл. И получалась следующая ерунда после запуска приложения:

введите сюда описание изображения

Естественно тут уже нечему применяться. Проблема решается просто выбрасыванием данного фильтра. Если вдруг кто-то когда столкнется. Еще раз спасибо @siarhei987