В чем разница между ROOR_USER и ROLE_ANONYUS в конфигурации URL-URL-адреса пружины?
-
26-09-2019 - |
Вопрос
В чем разница между ROOR_USER и ROLE_ANONYUS в конфигурации URL-адреса пружины, такая как пример ниже?
<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_ANONYUS - это роль по умолчанию, назначенной неаутентифицированным (анонимным) пользователем, когда конфигурация использует пружинную безопасность «Анонимный аутентификация» фильтр . Отказ Это включено по умолчанию. Тем не менее, это, вероятно, более понятнее, если вы используете выражение ИЗАноним () вместо этого, который имеет то же значение.
ROLE_USER не имеет смысла, если вы не назначаете эту роль своим пользователям, когда они аутентифицированы (вы отвечаете за загрузку ролей (власти) для аутентифицированного пользователя). Это не имя, которое встроено в инфраструктуру Spring Security. В данном примере, по-видимому, эта роль назначается аутентифицированному пользователю.
Другие советы
ROLE_ANONIMOUS не имеет пользовательских учетных данных, ROLE_USER имеет учетные данные пользователя ... был аутентифицирован.
Это моя интерпретация на основе предоставленной конфигурации