2010-08-08 17 views
7

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

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

Répondre

13

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

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é). Ce n'est pas un nom qui est intégré à l'infrastructure de Spring Security. Dans l'exemple donné, il est probable que ce rôle soit attribué à un utilisateur authentifié.

1

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