我在新应用程序中使用spring security,并配置了WebSecurityConfigurerAdapter。过滤器的一切工作正常,但问题在于我有两个漏洞的区别:Usuario(用户)和Administrador(管理员)。当我使用User角色登录并且访问我限制的路径(/ restricted)时出现问题 - 一切正常,过滤器应用 - 但是当我作为Admin访问时,我只能设法访问用户路径(/受限制),而不是我想要的/ admin路径。
以下是我的配置。
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/resources/**", "/includes/**", "/cadastrar", "/logout", "/login", "/", "/home").permitAll()
.antMatchers("/admin/**").hasRole("ADMINISTRADOR")
.anyRequest().authenticated().antMatchers("/restricted/**").hasRole("USUARIO")
.anyRequest().authenticated().and().formLogin()
.loginPage("/login").defaultSuccessUrl("/success-login", true)
.loginProcessingUrl("/login").failureUrl("/login?error=true").permitAll().and()
.logout().logoutUrl("/logout").logoutSuccessUrl("/");
}
这里有人知道什么是错的吗? 非常感谢
答案 0 :(得分:0)
解决。我刚刚改为权威而不是洞。现在一切都很好。
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/admin/**").hasAuthority("ADMINISTRADOR")
.antMatchers("/restricted/**").hasAnyAuthority("USUARIO", "ADMINISTRADOR")
.antMatchers("/resources/**", "/includes/**", "/cadastrar", "/logout", "/login", "/", "/home").permitAll()
.and().formLogin()
.loginPage("/login").defaultSuccessUrl("/restricted/teste", true)
.loginProcessingUrl("/login").failureUrl("/login?error=true").permitAll().and()
.logout().logoutUrl("/logout").logoutSuccessUrl("/");
}