2012-01-02 25 views
5

Duplicar posibles:
create-session stateless usageSpring Security en una aplicación web sin estado?

Im empezando a experimentar en la primavera de Seguridad, en la versión 3.1, y estoy preguntando cómo lograr la autenticación con una aplicación web sin estado.

http-basic y digest vienen a la mente, y los he probado, pero no me gusta la imposibilidad de desconectarme como la autenticación de formulario sin cerrar el navegador.

Actualmente tengo una aplicación web sin estado con autentificación basada en formularios que usa la seguridad de primavera (lo que hace que sea estable almacenando elementos de autenticación en sesión?), Y me pregunto cuáles son las estrategias que podría investigar para crear seguridad en primavera trabajar sin hacer uso de sesiones http?

Me doy cuenta de que hay un <http create-session="stateless" ..>, pero debe haber algo que necesite más debido a que la aplicación deja de funcionar correctamente después de que intenté eso, por seguir autenticándome al acceder a los recursos protegidos.

Aquí es mi config:

<http use-expressions="true" create-session="stateless"> 
    <form-login login-page="/login" 
     login-processing-url="/static/j_spring_security_check" 
     authentication-failure-url="/login?login_error=t" /> 
    <logout logout-url="/static/j_spring_security_logout"/> 

    <intercept-url pattern="/person/test/**" 
     access="isAuthenticated() and principal.username=='albertkam'" 
    /> 
    <intercept-url pattern="/person/**" access="hasRole('ROLE_NORMAL')"/> 

    <remember-me 
     key="spitterKey" 
     token-validity-seconds="2419200"/> 
</http> 

Concreate-session="stateless":

  1. acceder a http://myhost:8080/mycontext/person/blah
  2. va a la página de acceso
  3. vuelve a URL de página principal http://myhost:8080/mycontext después de iniciar la sesión (espero que vuelve al recurso protegido)

Sincreate-session="stateless", que por defecto es ifRequired (estado):

  1. acceder a http://myhost:8080/mycontext/person/blah
  2. va para iniciar sesión página
  3. vuelve a la url protegida http://myhost:8080/mycontext/person/ bla después de iniciar la sesión (este es el comportamiento correcto, pero con estado)
+1

Se ha contestado en esta [tema] [1] [1]: http://stackoverflow.com/questions/8800855/create-session-stateless-usage – bertie

Respuesta

0

Puede utilizar always-use-default-target="false" en <form-login> para evitar ir a la página por defecto después de inicio de sesión correcto.

+0

Hola, he intentado su sugerencia , pero todavía va a la página de inicio con los apátridas. Creo que no es el problema, ya que sin el valor de atributo sin estado, el flujo funciona bien. – bertie

+0

Oh, lo siento saberlo, pensé que always-use-default-target = "false" debería funcionar también en caso de apatridia. – kunal