在 spring security intercept-url 配置中,如果我为特定路径定义了特定角色,比如 ROLE_USER,则只有当用户具有该权限时,该路径才应该可以访问。这是有道理的,但是如果我将角色设置为 ROLE_ANONYMOUS,<intercept-url pattern="/resources/**" access="ROLE_ANONYMOUS"/>
即使用户经过身份验证,它是否也可以访问,比如当用户拥有 ROLE_USER 权限时?但这不会发生。
这是日志
Checking match of request : '/resources/js/test.js'; against '/resources/**'
Secure object: FilterInvocation: URL: /resources/js/test.js; Attributes: [ROLE_ANONYMOUS]
Previously Authenticated: org.springframework.security.authentication.UsernamePasswordAuthenticationToken***********************************************
Voter: org.springframework.security.access.vote.RoleVoter@1712310, returned: -1
然后我得到一个拒绝访问异常。我知道如果我添加<intercept-url pattern="/resources/**" access="ROLE_ANONYMOUS,ROLE_USER"/>
我的 Http 配置它工作正常。但在上述情况下,是这样的还是我做错了什么。