Non sono sicuro di quale versione di graal veniva usato sopra, ma correvo in un problema simile in una grande applicazione. La mia applicazione è stata divisa tra interfaccia utente/gsp e altri controller che hanno fornito puro json/xml senza visualizzazione. La parte dell'interfaccia utente doveva essere l'unica parte che utilizzava le sessioni, ma i servizi restituivano anche JSessionId.
Poiché l'applicazione è grande, al fine di risolvere i problemi, ho creato nuove applicazioni con Grails 1.3.7 e 2.2.1, con un controller di base:
class FooController {
static defaultAction = "lookatme"
def lookatme = {render(view:'lookatme')}
def hallo = {render(text:"<xml>some xml</xml>",contentType:"text/xml",encoding:"UTF-8")}
def somestate = {session.foo = "bar"; render(text:"<xml>some xml</xml>",contentType:"text/xml",encoding:"UTF-8")}
}
Quando ho eseguito questo su Tomcat, né lookatme
oppure hallo
restituisce un ID sessione. L'azione somestate
fa. Dopo aver recuperato il codice, abbiamo trovato dei luoghi (alcuni filtri, ad esempio) che stavano tentando di accedere alla sessione quando non dovevano.
Se il codice sta tornando una sessione tramite cookie JSESSIONID, e non si pensa che dovrebbe, assicurarsi che ci sia alcun codice utilizzato all'interno di tale azione (o filtri) il cui accesso session
(o flash
?).
perché dovresti preoccuparti di questo? – Gregg
due motivi: 1) se si crea una sessione, verrà impostato un cookie. Se interpreto la nuova "European Cookie Law" nel modo giusto, devi chiederti ai visitatori di legare prima di impostare un cookie. 2) una sessione utilizza risorse. Se non ho bisogno della sessione, perché dovrei crearne una? E se espongo un'interfaccia REST e il client ignora i cookie, ogni richiesta creerà una nuova sessione :-( – rdmueller
Si dovrebbe fare qualche ricerca in più: consenso non necessario Qualsiasi cookie che, se non fosse per la sua presenza, il sito web sarebbe cessare di essere utilizzabile, ad esempio un cookie di sessione che mantiene il contenuto del paniere di un cliente attraverso il processo di checkout. Detto questo, se si dovesse utilizzare questo stesso cookie per tracciare il comportamento del cliente senza prima chiederlo, allora questo richiederebbe il consenso. : //www.enchiladadigital.com/services/cookie-audits/eu-cookie-law-what-you-need-to-know/ – Gregg