经过几个小时的搜索/分析/变得偏执,我想与你分享我的错 - 我找到了解决问题的原因。
我正在使用CustomPermisionEvaluator进行安全性,例如用于保护这样的方法:
@RequestMapping(value = "/{name}", method = RequestMethod.GET)
@PreAuthorize("hasPermission(null, 'SERVICE.ASSOCIATION.FIND_BY_NAME')")
public ResponseEntity<AssociationResult> findByName(@PathVariable String name) {
//do stuff
}
为此,我必须扩展GlobalMethodSecurityConfiguration以使我的CustomPermissionEvaluator进入业务。在那里,我使用@Autowiring来访问权限评估所需的bean。猜猜是什么 - 这是TransactionInterceptor忽略的那两个@Services。
不要将bean自动装配到GlobalMethodSecurityConfiguration =&gt;之后他们不会被正确截获。