¿Cuál es la diferencia entre ROLE_USER y ROLE_ANONYMOUS en una configuración de intercepción url primavera?

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

Pregunta

¿Cuál es la diferencia entre ROLE_USER y ROLE_ANONYMOUS en una intercepción de primavera url configuración tal como el ejemplo de abajo?

<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>
¿Fue útil?

Solución

ROLE_ANONYMOUS es el rol predeterminado asignado a un usuario no autenticado (anónimo) cuando una configuración utiliza de primavera de Seguridad "autenticación anónima" filtro . Esto está habilitado por defecto. Sin embargo, es probable que sea más claro si se utiliza la expresión isAnonymous () en cambio, que tiene el mismo significado.

ROLE_USER no tiene sentido a menos que asigne esta función a sus usuarios cuando se autentican (que está a cargo de la carga de los papeles (autoridades) para un usuario autenticado). No es un nombre que se construye en la infraestructura de la primavera de Seguridad. En el ejemplo dado, presumiblemente que el papel se asigna a un usuario autenticado.

Otros consejos

ROLE_ANONYMOUS no tiene credenciales de usuario, ROLE_USER ha credenciales de usuario ... ha sido autenticada.

Esta es mi interpretación basada en la configuración proporcionada

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top