Java Spring Security - проблема с авторизацией - PullRequest
0 голосов
/ 29 марта 2020

У меня проблема с Авторизация в Spring Security . Я пишу простое приложение-органайзер, и в нем 14 ролей, но я делаю целые тесты на ROLE_ADMIN , и это не сработало. набрав / admin выведите меня на / запрещенную страницу :( Можете ли вы найти проблему здесь?

    protected void configure(HttpSecurity httpSec) throws Exception {
        httpSec.authorizeRequests().antMatchers("/").permitAll().antMatchers("/login").permitAll().antMatchers("/admin/**")
                .hasAnyRole("ROLE_ADMIN", "ROLE_PRODUCTION_MANAGER", "ROLE_FOREMAN").antMatchers("/workingpanel")
                // Another .antMatchers //
                .authenticated().and().csrf().disable().formLogin().loginPage("/login").failureUrl("/login?error=true")
                .defaultSuccessUrl("/").usernameParameter("email").passwordParameter("password").and().logout()
                .logoutRequestMatcher(new AntPathRequestMatcher("/logout")).logoutSuccessUrl("/").and()
                .exceptionHandling().accessDeniedPage("/denied");
    }

1 Ответ

1 голос
/ 29 марта 2020

Попробуйте изменить .antMatchers ("/ admin / "). HasAnyRole ("ROLE_ADMIN", ...) на .antMatchers ("/ admin / "). HasAnyRole ("ADMIN" ,. ...) поскольку Spring Security автоматически добавляет префикс ROLE к каждой роли. Например

protected void configure(final HttpSecurity http) throws Exception {
...
.antMatchers("/admin/** ").hasAnyRole("ADMIN","USER",...)
...

}

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