spring - 仅允许对 Spring Security 中的特定角色访问 url 模式
问题描述
我试图只允许具有“管理员”角色的用户访问以下端点:
../adminconfig/*(那些在 url 中有 'adminconfig' 的)
这是我的配置:
@SpringBootApplication
@EnableWebSecurity
@RestController
public class BootApplication extends WebSecurityConfigurerAdapter {
public static void main(String[] args) {
SpringApplication.run(BootApplication.class, args);
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("{noop}1").roles("USER").and()
.withUser("admin").password("{noop}1").roles("ADMIN");
}
@Override
protected void configure(HttpSecurity http) throws Exception{
http
.authorizeRequests()
.anyRequest().authenticated()
.antMatchers("/adminconfig/**").hasRole("ADMIN")
.and()
.formLogin().and()
.httpBasic();
}
}
但我仍然可以使用任何其他用户访问它们,例如使用“用户”角色。我究竟做错了什么?
解决方案
找到了解决方案。我不得不将 antMatchers().. 移到 .anyRequest().authenticated() 上方:
.antMatchers("/adminconfig/**").hasRole("ADMIN")
.anyRequest().authenticated()
推荐阅读
- git - 如何更改任何提交命令的前缀?
- video - 如何通过 Linkedin API 上传视频?上传资产时出现 SignatureDoesNotMatch 错误
- python - 可视化基于 DGLGraph 的模型
- spring-boot - 如何使用spring data redis pipeline处理100万条记录?
- javascript - 如何过滤掉数组中的空值?
- java - 有没有办法将 ObservableList 绑定到 ObservableMap?
- python-sphinx - 如何在 sphinx 中为单个单词设置颜色
- wordpress - wordpress:致命错误:内存不足(已分配 56623104)
- javascript - 是否可以在浏览器中创建本地 javascript 代理?
- python - 替换包含至少一个列表元素的单词 - Python / RegEx