有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Spring拦截url配置中,ROLE_USER和ROLE_ANONYMOUS之间有什么区别?

在Spring拦截url配置(如下面的示例)中,ROLE_USER和ROLE_ANONYMOUS之间有什么区别

<http auto-config="false" access-decision-manager-ref="accessDecisionManager"
    use-expressions="true">
    <intercept-url pattern="/admin/**" access="hasRole('ROLE_ANONYMOUS')"
        requires-channel="http" />
    <intercept-url pattern="/login/**" access="hasRole('ROLE_ANONYMOUS')"
        requires-channel="${application.secureChannel}" />
    <intercept-url pattern="/error/**" access="hasRole('ROLE_ANONYMOUS')"
        requires-channel="http" />
    <intercept-url pattern="/register/**" access="hasRole('ROLE_ANONYMOUS')"
        requires-channel="${application.secureChannel}" />
    <intercept-url pattern="/" access="hasRole('ROLE_ANONYMOUS')"
        requires-channel="http" />
    <intercept-url pattern="/**" access="hasRole('ROLE_USER')"
        requires-channel="http" />
    <form-login login-page="/login" login-processing-url="/login/submit"
        authentication-failure-url="/login/error" />
    <logout logout-url="/logout" />
</http>

共 (2) 个答案

  1. # 1 楼答案

    ROLE_ANONYMOUS是配置使用Spring Security的"anonymous authentication" filter 时分配给未经身份验证(匿名)用户的默认角色。这是默认启用的。但是,如果使用具有相同含义的表达式isAnonymous(),则可能更清楚

    角色\用户没有任何意义,除非您在用户经过身份验证时将此角色分配给用户(您负责为经过身份验证的用户加载角色(权限))。它不是Spring Security基础设施中内置的名称。在给定的示例中,假定该角色已分配给经过身份验证的用户

  2. # 2 楼答案

    角色\u匿名没有用户凭据,角色\u用户有用户凭据。。。已通过身份验证

    这是我根据提供的配置进行的解释