Ошибка 403 против ошибки 404

Я хотел убедиться, что на страницу / settings попадают только администраторы.

Проблема в том, что когда к нему обращаются обычные участники, отображается ошибка 404.

Разве это не ошибка 403 ?? Страница существует, но у участника нет прав для входа на нее.

Что не так??

  @Override
protected void configure(HttpSecurity http) throws Exception {

    http.authorizeRequests().antMatchers("/settings").hasAuthority("Administrator")
            .anyRequest().authenticated()
            .and()
            .formLogin().permitAll()
                .loginPage("/login").permitAll()
                .defaultSuccessUrl("/dashboard")
                .failureUrl("/login?error")
                .successHandler(authenticationSuccessHandler)
            .and()
            .logout()
                .logoutUrl("/logout")
                .logoutSuccessUrl("/login")
                .logoutSuccessHandler(logoutSuccessHandler)
            .and()
            .exceptionHandling().accessDeniedPage("/errors/error403")
            .and()
                .csrf().disable();
}

Вы уверены, что "" / errors / error403 "существует? Это может привести к ошибке 404, если страница 403 не существует. Предоставление исправления типа /settings > <Access restrict> --> 403 page --> <Page not found> --> 404 page.

AxelH 08.05.2018 11:36

Да, существует. Я помещаю отладку в контроллер страниц ошибок, и он входит в метод error404, когда я обращаюсь к странице с участником

user9729328 08.05.2018 11:39

вы проверили stackoverflow.com/questions/33166139/…? или stackoverflow.com/questions/42797419/…

user7294900 08.05.2018 12:11

Если у вас есть точка останова на контроллере страниц ошибок, разве вы не видите условие, которое отправляет ее на 404?

Andy Brown 08.05.2018 14:21

@ user9729328 Введите URL-адрес http://localhost:<PORT>/errors/error403 вашей страницы с отказом в доступе в вашем браузере. Вы видите страницу или получаете 404?

dur 08.05.2018 21:15
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
213
0

Другие вопросы по теме