Qual è la differenza tra ROLE_USER e ROLE_ANONYMOUS in Primavera intercettare url di configurazione?
-
26-09-2019 - |
Domanda
Qual è la differenza tra ROLE_USER e ROLE_ANONYMOUS in Primavera intercettare url di configurazione come l'esempio qui sotto?
<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>
Soluzione
ROLE_ANONYMOUS è il ruolo predefinito assegnato a un (anonimo) utente non autenticato quando una configurazione utilizza Spring Security "autenticazione anonima" Filtro . Questo è abilitato di default. Tuttavia, è probabilmente più chiaro se si utilizza l'espressione isAnonymous () , invece, che ha lo stesso significato.
ROLE_USER non ha senso a meno che non si assegna questo ruolo agli utenti quando vengono autenticati (si sono incaricati di caricare i ruoli (autorità) per un utente autenticato). E non è un nome che è costruito per l'infrastruttura di Primavera di sicurezza. Nell'esempio riportato, presumibilmente tale ruolo è assegnato a un utente autenticato.
Altri suggerimenti
ROLE_ANONYMOUS non ha le credenziali dell'utente, ROLE_USER ha le credenziali dell'utente...è stato autenticato.
questa è la mia interpretazione in base alla configurazione fornito