修复 Spring Security 中的角色管理
Spring Security 中基于角色的访问控制的问题源于请求匹配器的顺序。任何请求的匹配器都应位于基于特定角色的匹配器之后。
要解决此问题并限制管理员访问权限,请修改您的配置,如下所示:
@Override protected void configure(HttpSecurity http) throws Exception { http .csrf().disable() .httpBasic() .and() .authorizeRequests() .antMatchers("/users/all").hasRole("admin") .anyRequest().authenticated() // Moved after role-based matcher .and() .formLogin() .and() .exceptionHandling().accessDeniedPage("/403"); }
使用此配置,请求 / users/all 将需要管理员角色,而所有其他请求将需要任何经过身份验证的用户。
以上是如何在 Spring Security 中正确排序请求匹配器以实现基于角色的访问控制?的详细内容。更多信息请关注PHP中文网其他相关文章!