2012-01-02 19 views
5

Eventuali duplicati:
create-session stateless usageSpring Security in una webapp stateless?

Im appena cominciando a sperimentare sulla Primavera di sicurezza, sulla versione 3.1, e im chiedendosi come realizzare l'autenticazione con una webapp senza stato.

http-basic e digest vengono in mente, e li ho provati, ma non mi piace l'impossibilità di disconnettersi come l'autenticazione del modulo senza chiudere il browser.

Attualmente ho una webapp stateless funzionante con autenticazione basata su form utilizzando la sicurezza di primavera (che lo rende memorabile immagazzinando roba auth in sessione forse?), E mi chiedo quali sono le strategie su cui posso fare ricerche per rendere la sicurezza di primavera lavorare senza fare uso di sessioni http?

Mi rendo conto che c'è un <http create-session="stateless" ..>, ma ci deve essere qualcosa che ha bisogno di più fare perché l'app smette di funzionare correttamente dopo che ho provato, continuando ad autenticarmi quando si accede alle risorse protette.

Ecco la mia configurazione:

<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. accesso http://myhost:8080/mycontext/person/blah
  2. va alla pagina di login
  3. torna alla home page URL http://myhost:8080/mycontext dopo il login (mi aspetto che torna alla risorsa protetta)

Senzacreate-session="stateless", che per impostazione predefinita ifRequired (stateful):

  1. accesso http://myhost:8080/mycontext/person/blah
  2. va per accedere alla pagina
  3. torna all'URL protetto http://myhost:8080/mycontext/person/ bla dopo il login (questo è il comportamento corretto, ma stateful)
+1

E 'stato risposto in questo [argomento] [1] [1]: http://stackoverflow.com/questions/8800855/create-session-stateless-usage – bertie

risposta

0

È possibile utilizzare always-use-default-target="false" su <form-login> per evitare di andare alla pagina dopo il login di successo default.

+0

Ciao, ho provato il tuo suggerimento , ma va comunque alla homepage con gli apolidi. Penso che non sia il problema, poiché senza il valore di attributo senza stato, il flusso funziona correttamente. – bertie

+0

Oh mi dispiace saperlo, pensavo che sempre-use-default-target = "false" dovrebbe funzionare anche in caso di apolidi. – kunal

Problemi correlati