我有几个控制器,只想保护其中一个, 花一些时间,但没有找到适当的解决方案。
如何通过配置完成?
控制器:
width = HORIZONTAL_SCALING * (float)depth;
height = VERTICAL_SCALING * (float)depth;
配置:
@RestController
@RequestMapping("/somepath")
public class UnsecController {
// code here
}
@Secured("ROLE_CUSTOM")
@RestController
@RequestMapping("/somepath2")
public class SecController {
// code here
}
修改
我有100个想要保护的100个控制器, 但不想手动编写配置
答案 0 :(得分:0)
通过配置WebSecurityConfigurerAdapter
来保护控制器。如果您只想保护一个控制器方法,则需要以这种方式配置HttpSecurity,它只匹配此路径。所有其他方法都不包含在安全性中。如下:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/somepath").hasRole("CUSTOM")
.anyRequest().permitAll();
}
@Secured
注释通常用于服务方法,而不是控制器。