2017-10-11 12 views
0

Je vois un comportement étrange avec un cookie côté serveur, et je voudrais comprendre pourquoi.Cookie disponible dans l'en-tête du cookie mais pas dans getCookies()?

Sur le client:

document.cookie = 'test_cookie=' + '[AB]cd|ef-gh[IJ]' + '; path=/;'; 
document.cookie = 'test_cookie2=' + 'cd|ef-gh' + '; path=/;'; 

Sur le serveur:

headers = httpServletRequest.getHeaders() 
// iterate and print headers 

cookies = httpServletRequest.getCookies(); 
// iterate and print headers 

Sortie:

// Both are there on the header, so tomcat doesn't block it: 
... 
header: cookie: test_cookie=[AB]cd|ef-gh[IJ]; test_cookie2=cd|ef-gh 


// Only one shows up from getCookies() 
... 
cookie: test_cookie2=cd|ef-gh 
// no test_cookie ??? 

Pourquoi suis-je pas en mesure de voir le test_cookie2? Je pourrais uri-encoder avant de le mettre sur le client, mais je pensais que '[' et ']' ont été autorisés caractères cookie?

Y a-t-il un moyen plus correct de le régler?

Répondre

0

est ici la façon de régler correctement le cookie sur le frontend:

document.cookie = 'test_cookie="[AB]cd|ef-gh[IJ]"; path=/'; 

Pas les guillemets doubles autour de la valeur du cookie contenant les caractères spéciaux.