Spring Security, Method Security annotation (@Secured ) 不工作 (java config)
2022-09-01 13:30:28
我正在尝试使用@Secured(“ADMIN”)(没有任何XML,只有java配置,Spring Boot)设置方法安全注释。但是,通过角色进行访问不起作用。
安全配置:
@Configuration
@EnableWebSecurity
public class AppSecurityConfiguration extends WebSecurityConfigurerAdapter{
.....
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/api/**").fullyAuthenticated().and()
.addFilterBefore(tokenAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);
}
.....
}
我想限制对控制器方法的访问:
@RestController
@RequestMapping("/api/groups")
public class GroupController {
@Autowired
private GroupService groupService;
@Secured("ADMIN")
@RequestMapping
public List<Group> list() {
return groupService.findAll();
}
}
限制访问的 url 正在工作,使用:
.antMatchers("/api/**").hasAuthority("ADMIN")
也许我忘记指定我想要按角色限制?
UPD:根据规则,在控制器层或服务层中必须处于哪一层?@PreAuthorize("hasRole('ADMIN')")