在 的supports(Class clazz)
方法中RoleVoter
,它总是返回 true 表示
此实现支持任何类型的类,因为它不查询提供的安全对象。
这是什么“提供的安全对象”。另一方面,只有当是 的子类型时,supports(Class clazz)
方法WebExpressionVoter
才会返回 true 。这里是“提出的安全对象”吗?为什么选民必须支持它?clazz
FilterInvocation
FilterInvocation
如果我@Secured
在我的方法上使用注释并为作为投票者之一的全局方法安全性配置访问决策管理器WebExpressionVoter
,则会出现错误
AccessDecisionManager 不支持安全对象类:接口 org.aopalliance.intercept.MethodInvocation
这是因为访问决策管理器的所有投票者(当为方法安全性配置时)必须支持上述类,而 whileRoleVoter
和其他人则WebExpressionVoter
需要FilterInvocation
.
SPEL
tag中的表达式@PreAuthorize
也需要WebExpressionVoter
,并且再次需要支持MethodInvocation
类,但它不需要。但它确实有效。那么我在这里做错了什么?