Was ist der Unterschied zwischen ROLE_USER und ROLE_ANONYMOUS in einer Frühlings-Intercept-URL-Konfiguration?

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

Frage

Was ist der Unterschied zwischen ROLE_USER und ROLE_ANONYMOUS in einem Frühlings-Intercept-URL-Konfiguration wie das Beispiel unten?

<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>
War es hilfreich?

Lösung

ROLE_ANONYMOUS ist die Standardrolle auf einen nicht authentifiziert (anonymen) Benutzer zugewiesen, wenn eine Konfiguration verwendet Spring Security ist "anonyme Authentifizierung" Filter . Dies ist standardmäßig aktiviert. Es ist jedoch wahrscheinlich klarer, wenn Sie den Ausdruck isAnonymous () statt, die die gleiche Bedeutung hat.

hat ROLE_USER keine Bedeutung, wenn Sie diese Rolle an die Benutzer zuweisen, wenn sie authentifiziert sind (Sie sind verantwortlich für die Rollen zu laden (Behörden) für einen authentifizierten Benutzer). Es ist nicht ein Name, der in Spring Security-Infrastruktur aufgebaut wird. In dem gegebenen Beispiel, vermutlich diese Rolle ist mit einem authentifizierten Benutzer zugeordnet.

Andere Tipps

ROLE_ANONYMOUS hat kein Benutzer-Credentials, ROLE_USER Benutzer-Credentials hat ... authentifiziert wurde.

das ist meine Interpretation basiert auf der Konfiguration zur Verfügung gestellt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top