Почему при попытке открыть файл .css в моем веб-приложении Spring Boot / Spring Security появляется ошибка «405 - Метод не разрешен»? - PullRequest
0 голосов
/ 05 сентября 2018

Итак, у меня есть файл styles.css в

resources
    |-static
      |-css
        |-styles.css 

... все стандартные вещи.

Мой WebSecurityConfig выглядит следующим образом:

protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable()
                .headers().frameOptions().sameOrigin().and() // allow the h2-console to be used in a frame
                .authorizeRequests()
                .antMatchers("/").permitAll()
                .antMatchers("/h2-console/**").permitAll() // enable access to the h2-console
                .antMatchers("/js/**").permitAll() // permit JS resources
                .antMatchers("/css/**").permitAll() // permit CSS resources
                ...
                .anyRequest().authenticated()
                .and()
                .formLogin()
                .loginPage("/login")
                .permitAll()
                .and()
                .logout()
                .permitAll();
    }

Но всякий раз, когда я пытаюсь открыть файл .css на моем локальном хосте (через http://localhost:8080/css/styles.css), я получаю неожиданную ошибку 405 (метод не разрешен).
При попытке применить таблицу стилей в HTML-документах в консоли Google Chrome выводится следующая ошибка:

"отказался применять стиль из" ... ", потому что его тип MIME ('application / json') не является поддерживаемым типом MIME таблицы стилей, и строгая проверка MIME включена ".

Я довольно новичок в java Spring и до этого момента работал только со стилями начальной загрузки, поэтому я мог упустить что-то действительно очевидное - искал ответ в течение нескольких часов - пожалуйста, помогите мне!

Я использую Spring Boot Gradle,

springBootVersion = '2.0.4.RELEASE'

1 Ответ

0 голосов
/ 05 октября 2018

У меня была точно такая же проблема.

Для меня 405 была красная сельдь. Если вы отключите все в своей Spring Security и перейдете по несуществующему URL-адресу, он все равно будет 405, что не имеет смысла.

Оказывается в моем контроллере входа я случайно поставил

@PostMapping
public void postLogin(@ModelAttribute LoginForm form) {

Ничего не стоит рядом с @PostMapping, поэтому по умолчанию он был равен @PostMapping("/"). Исправление было в основном просто сделать следующее:

@PostMapping("/login")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...