Spring インターセプト URL 設定における ROLE_USER と ROLE_ANONYMOUS の違いは何ですか?

StackOverflow https://stackoverflow.com/questions/3435824

質問

以下の例のような 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>
役に立ちましたか?

解決

ROLE_ANONYMOUS は、構成で Spring Security を使用する場合に、認証されていない (匿名) ユーザーに割り当てられるデフォルトのロールです。 「匿名認証」フィルター . 。これはデフォルトで有効になっています。ただし、次の表現を使用すると、おそらくより明確になります。 isAnonymous() 代わりに、同じ意味を持ちます。

ROLE_USER は、ユーザーの認証時にこのロールをユーザーに割り当てない限り意味がありません (認証されたユーザーのロール (権限) をロードするのはあなたが担当します)。これは Spring Security のインフラストラクチャに組み込まれている名前ではありません。与えられた例では、おそらくその役割は認証されたユーザーに割り当てられています。

他のヒント

ROLE_ANONYMOUSは一切ユーザーの資格情報を持っていない、ROLE_USERは、ユーザーの資格情報を持っている...認証されています。

これは

提供された構成に基づいて、私の解釈であります
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top