【发布时间】:2016-11-24 03:18:53
【问题描述】:
我正在使用 Spring 构建一个应用程序,并且我使用了 Spring Security。问题是我不能用 authorizeRequests 链做对。我有 3 个角色:
ROLE_RH 可以访问具有上下文 RH 的视图
ROLE_GP 可以访问具有上下文 GP 的视图
ROLE_SUPER 可以访问所有视图,包括上下文 RH 和 GP
我的 authorizeRequests 链如下所示:
http.authorizeRequests()
.antMatchers("/bootstrap/**", "/dist/**", "/plugins/**").permitAll()
.antMatchers("/RH/**").hasRole("RH")
.antMatchers("/GP/**").hasRole("GP")
.antMatchers("/**").hasRole("SUPER")
.and()
.formLogin()
.failureUrl("/login?error")
.loginPage("/login").usernameParameter("nombreUsuario").passwordParameter("contrasena")
.defaultSuccessUrl("/default")
.and()
.logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.logoutSuccessUrl("/login")
.permitAll()
.and().csrf()
.and().exceptionHandling().accessDeniedPage("/403");
但是当我以 ROLE_SUPER 登录时,我无法访问 RH 和 GP 视图,每次都被拒绝访问。 我尝试将 ROLE_SUPER 的 .antMatcher 更改为此
.antMatchers("/GP/**","/RH/**","/DB/**").hasRole("SUPER")
当我尝试以 ROLE_GP 或 ROLE_RH 登录时,他们的视图也被拒绝访问。 角色不能共享相同的上下文?当 ROLE_SUPER 工作时,ROLE_GP 和 ROLE_RH 不工作,反之亦然。我做错了什么?
提前感谢您的帮助。
【问题讨论】: