Quelle est la différence entre ROLE_USER et ROLE_ANONYMOUS dans une configuration url d'interception Spring?

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

Question

Quelle est la différence entre ROLE_USER et ROLE_ANONYMOUS dans une configuration url interception Spring comme l'exemple ci-dessous?

<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>
Était-ce utile?

La solution

ROLE_ANONYMOUS est le rôle par défaut attribué à un utilisateur non authentifié (anonyme) lorsqu'une configuration utilise de Spring Security "filtre authentification anonyme" . C'est activé par défault. Cependant, il est probablement plus clair si vous utilisez l'expression isAnonymous () au lieu, qui a le même sens.

ROLE_USER n'a pas de sens à moins que vous attribuez ce rôle à vos utilisateurs quand ils sont authentifiés (vous êtes responsable du chargement des rôles (autorités) pour un utilisateur authentifié). Il est pas un nom qui est construit pour l'infrastructure de printemps de sécurité. Dans l'exemple donné, sans doute ce rôle est attribué à un utilisateur authentifié.

Autres conseils

ROLE_ANONYMOUS n'a pas informations d'identification utilisateur, ROLE_USER a des informations d'identification de l'utilisateur ... a été authentifié.

Ceci est mon interprétation basée sur la configuration fournie

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top