В чем разница между ROLE_USER и ROLE_ANONYMOUS в конфигурации URL-адреса перехвата Spring? - PullRequest
7 голосов
/ 08 августа 2010

В чем разница между ROLE_USER и ROLE_ANONYMOUS в конфигурации URL-адреса перехвата Spring, такой как приведенный ниже пример?

<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 ]

14 голосов
/ 09 августа 2010

ROLE_ANONYMOUS - это роль по умолчанию, назначаемая неаутентифицированному (анонимному) пользователю, когда в конфигурации используется фильтр анонимной аутентификации Spring Security .Это включено по умолчанию.Однако, вероятно, будет понятнее, если вместо этого вы используете выражение isAnonymous () , которое имеет то же значение.

ROLE_USER не имеет смысла, если вы не назначаете эту роль своим пользователям, когда они проходят аутентификацию(вы отвечаете за загрузку ролей (полномочий) для аутентифицированного пользователя).Это не имя, которое встроено в инфраструктуру Spring Security.В данном примере предположительно эта роль назначена аутентифицированному пользователю.

1 голос
/ 09 августа 2010

ROLE_ANONYMOUS не имеет учетных данных пользователя, ROLE_USER имеет учетные данные пользователя ... аутентифицирован.

это моя интерпретация на основе предоставленной конфигурации

...