【发布时间】:2015-03-25 22:15:59
【问题描述】:
我有spring bean,其中有两种方法
@Secured({"ROLE_ADMIN"})
public void update(Person person) {
if(person.isActive())
changeData(person);
}
@PreAuthorize("hasPermission(#person,CHANGE_PERSON_FULL)")
public void changeData(Person person) {
...
}
我添加了我的自定义MethodSecurityExpressionHandler。我已经设置@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)。当注释@PreAuthorize 高于update(Person person) 时,一切正常。我需要对 changeData 执行 PreAuthorize。它与代理有关吗?我是否需要使用方法 changeData 创建单独的 bean?是否可以强制弹簧检查嵌套方法的安全性?
【问题讨论】:
标签: java spring spring-mvc spring-security spring-boot