我想为具有以下角色之一(ROLE1或ROLE2)的用户定义某些页面的访问权限
我正在尝试在我的spring security xml文件中进行如下配置:
<security:http entry-point-ref="restAuthenticationEntryPoint" access-decision-manager-ref="accessDecisionManager" xmlns="http://www.springframework.org/schema/security" use-expressions="true"> <!-- skipped configuration --> <security:intercept-url pattern="/rest/api/myUrl*" access="hasRole('ROLE1') or hasRole('ROLE2')" /> <!-- skipped configuration --> </security:http>
我尝试了各种方法,例如:
access="hasRole('ROLE1, ROLE2')" access="hasRole('ROLE1', 'ROLE2')" access="hasAnyRole('[ROLE1', 'ROLE2]')"
等等
但似乎没有任何效果。
我一直在例外
java.lang.IllegalArgumentException: Unsupported configuration attributes:
要么
java.lang.IllegalArgumentException: Failed to parse expression 'hasAnyRole(['ROLE1', 'ROLE2'])'
应该如何配置?
谢谢
问题是我配置了自定义access-decision-manager-ref="accessDecisionManager" ,但没有通过其中一名选民。
access-decision-manager-ref="accessDecisionManager"
通过添加org.springframework.security.web.access.expression.WebExpressionVoter到accessDecisionManagerbean中来解决。
org.springframework.security.web.access.expression.WebExpressionVoter
accessDecisionManager