7

sto cercando di autenticarsi sul mio applicazione Web distribuito su una jboss si lavora in modalità cluster con 2 nodi.JBoss sessione di replica cluster non lavorativi (più cookie JSESSIONID)

Dopo un'autenticazione successo vengo reindirizzato a una pagina di amministrazione in cui un filtro controlla se sono entrato.

Sulla modalità standalone funziona bene, ma quando ho schierato in produzione, che utilizza modalità cluster, il filtro rifiuta la mia richiesta perché non può accedere ai parametri della sessione che ho stabilito sull'autenticazione.

Utilizzando gli strumenti di sviluppo Vedo che ci sono 3 i biscotti JSESSIONID fissati: uno per /, uno per /myapplication percorso e un altro chiamato JSESSIONID-34234 anche per /myapplication percorso (ho cancellato tutto prima di iniziare il processo).

Navigazione nei documenti jboss Non riesco a vedere alcuna spiegazione per questo sebbene sembri la fonte del mio problema.

Come posso ottenere l'autenticazione di lavoro (sto usando l'autenticazione basata sulla forma http di sicurezza a molla) nel mio cluster JBoss?

risposta

3

risolto da consentendo sessione sticky aggiungendo quanto segue al file di configurazione virtualhost:

Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/myapplication" env=BALANCER_ROUTE_CHANGED 
<Proxy balancer://jboss6-hc-001-8109> 
    BalancerMember ajp://jboss2.imatiasl.lan:8109 route=jboss2-hc-001-server-02 
    BalancerMember ajp://jboss3.imatiasl.lan:8109 route=jboss3-hc-001-server-02 
    ProxySet lbmethod=byrequests stickysession=ROUTEID 
</Proxy> 
2

Web sessione di clustering dovrebbe funzionare se:

  1. Si è attivata <distributed/> in web.xml.
  2. gruppo di server della tua app utilizza ha o full-ha profilo

Se si desidera la vostra applicazione cluster rendimento migliore, considerare l'implementazione di una buona politica di bilanciamento del carico. Per la maggior parte delle applicazioni web il bilanciamento del carico con sessioni adesive è OK.

In alcune webapp, è sufficiente non chiedere la ri-autenticazione in caso di failover o la sessione è molto facile da ricostruire se sono disponibili le informazioni di autenticazione. In questi casi non è nemmeno necessario il clustering delle sessioni Web. L'SSO in cluster è sufficiente, è necessario utilizzare la sicurezza a livello di contenitore per l'autenticazione (molto probabilmente supportata da Spring Security). In questo modo vengono replicate solo le informazioni di autenticazione, quindi dovrai progettare la gestione dei dati di sessione per essere resiliente alle situazioni, quando la sessione diventa improvvisamente vuota.

+0

Grazie. Non sono riuscito a farlo funzionare, ma ho trovato un'altra soluzione: la corretta configurazione della sessione appiccicosa, che era la mia intenzione iniziale. – NotGaeL