Die Aufgabe besteht darin, eine Webanwendung zu erstellen, auf die von verschiedenen Benutzern mit unterschiedlichen Rollen zugegriffen werden sollte. Einige Rollen sehen alle Seiten, manche nur wenige.Java Spring Security nicht erkannte Rollen
Ich habe die folgende Konfiguration für die SecurityConfig, aber es funktioniert nicht.
@Configuration
@EnableWebSecurity
@Import(value = { SecurityWebApplicationInitializer.class })
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
DataSource dataSource;
@Autowired
private AuthenticationService authenticationService;
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
Md5PasswordEncoder encoder = new Md5PasswordEncoder();
auth.userDetailsService(authenticationService).passwordEncoder(encoder);
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/assets/**");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/login", "/page1").permitAll()
.antMatchers("/**").access("hasRole('RADMIN')")
.antMatchers("/login", "/page2").access("hasRole('ADMIN')")
.antMatchers("/page2").hasAnyRole("RADMIN", "ADMIN")
.and().formLogin()
.and().exceptionHandling().accessDeniedPage("/403");
}
}
Ich habe versucht, hasAnyRole()
-hasAnyAuthority()
ändern, keine Wirkung. So ziemlich jede Änderung, die ich mache, lässt entweder ADMIN nicht einloggen (er sieht nur/403 oder/404) oder lässt irgendjemanden, autorisiert oder nicht, alles sehen.
Standard Federsicherheitsbehörden mit 'ROLE_' beginnen, so sollten diese' sein ROLE_RADMIN' und 'ROLE_ADMIN', es sei denn, Sie haben Ihren eigenen [' AccessDecisionVoter'' definiert (http://docs.spring.io/autorepo/docs/spring-security/4.1.0.RELEASE/apidocs/org/springframework/security/access/ AccessDecisionVoter.html). – Andreas
Versucht, kein Unterschied ... – mariobgr
Sie haben überprüft, dass 'ROLE_ADMIN' dem Benutzer zugewiesen wurde, richtig? – Andreas