Я использую Spring security
для своего проекта, и это моя конфигурация.
protected void configure(HttpSecurity http) throws Exception {
http.
authorizeRequests()
.antMatchers("/home").hasRole("USER")
.antMatchers("/edit-information/**").hasRole("USER")
.antMatchers("/admin/**").hasAnyRole("ADMIN_STAFF","ADMIN_MANAGER")
.antMatchers("/admin/employee").hasRole("ADMIN_MANAGER")
.and()
.formLogin()
.loginPage("/home/login")
.loginProcessingUrl("/j_spring_security_check")
.usernameParameter("email")
.passwordParameter("password")
.defaultSuccessUrl("/",true)
.failureUrl("/home/login-fail")
.and()
.exceptionHandling()
.accessDeniedPage("/403");
}
Так что это моя идея. Я хочу, чтобы все ADMIN могли войти в систему на /admin/**
, но в /admin/**
у меня /admin/employee
. Я просто хочу, чтобы роль ADMIN_MANAGER могла войти только здесь. Но .antMatchers("/admin/**").hasAnyRole("ADMIN_STAFF","ADMIN_MANAGER")
уже разрешено ADMIN_STAFF войти в /admin/employee
. Я пытался добавить .antMatchers("/admin/employee").hasRole("ADMIN_MANAGER")
, но не вышло!