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