2010-08-08 13 views
7

Qual è la differenza tra ROLE_USER e ROLE_ANONYMOUS in una configurazione di url di intercettazione Spring come nell'esempio seguente?Qual è la differenza tra ROLE_USER e ROLE_ANONYMOUS in una configurazione di url di intercettazione di 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> 

risposta

13

ROLE_ANONYMOUS è il ruolo predefinito assegnato a un utente non autenticato (anonimo) quando una configurazione utilizza Primavera di sicurezza di "anonymous authentication" filter. Questo è abilitato di default. Tuttavia, è probabilmente più chiaro se si utilizza l'espressione isAnonymous(), che ha lo stesso significato.

ROLE_USER non ha significato se non si assegna questo ruolo ai propri utenti quando sono autenticati (si è incaricati del caricamento dei ruoli (autorizzazioni) per un utente autenticato). Non è un nome integrato nell'infrastruttura di Spring Security. Nell'esempio fornito, presumibilmente tale ruolo è assegnato a un utente autenticato.

1

ROLE_ANONYMOUS non ha le credenziali degli utenti, ROLE_USER ha credenziali utente ... è stato autenticato.

questa è la mia interpretazione in base alla configurazione prevista