2015-05-15 12 views
6

Non riesco a capire cosa sta succedendo. Su uno degli inv. della mia webapp (scritta usando ExtJS 4.0) - Vedo che la richiesta di login è stata completata con successo ma la successiva richiesta non riesce con 401.Solo il cookie JSESSIONID impostato dalla prima richiesta di accesso non viene inviato nelle richieste successive?

Quando ho scavato un po 'di più ho trovato nel Browser (F12) che l'intestazione di risposta della 1a richiesta ha JSESSIONID, che è impostato come cookie, ma la seconda richiesta non la invia nelle intestazioni della richiesta. Ecco perché la seconda richiesta crea una nuova sessione e restituisce un nuovo JSESSIONID.

Nel codice client in cui viene inviata la richiesta,
Ext.Ajax.request({url:'', callback..}) - non esiste alcuna impostazione esplicita di JSessionId o alcun cookie.

Strana parte NON TUTTE le chiavi dei cookie mancano, solo JSESSIONID, ovvero i cookie non sono disabilitati e impostati dal browser.

Perché il browser non invia JSESSIONID? Ho provato questo in firefox/chrome entrambi.

Anche questo sta accadendo solo nel mio locale env., QA env. della webapp sta funzionando bene.

risposta

4

ho capito io .. questo era il problema http://tomcat.apache.org/migration-7.html#Session_cookie_configuration

Grazie a tutte le persone che hanno speso tempo a leggere la mia domanda.

+0

Che cosa hai fatto esattamente fatto? Mi sembra lo stesso con ExtJS 6: C –

+0

@AlfonsoNishikawa Cerca il valore sessionCookiePath nel contesto.xml globale, questo potrebbe essere impostato su un percorso personalizzato in cui il browser memorizza i cookie e quindi è necessario assicurarsi che il suo valore sia corretto, vale a dire contesto consapevole – akjain

0

La risposta fornita da akjain è corretta. Tuttavia, se qualcuno ha bisogno il frammento di codice, qui è (da aggiungere in web.xml):

<session-config> 
    <cookie-config> 
     <http-only>false</http-only> 
     <secure>false</secure> 
    </cookie-config> 
</session-config> 
Problemi correlati