2010-06-01 2 views
2

Je ne vois pas ce comportement dans JBoss 4.2.3. Si je tente d'appeler addCookie() sur HttpServletResponse et ma valeur cookie a des caractères accentués dans ce (ex c.) Je reçois cette exception: java.lang.IllegalArgumentException: caractère de contrôle de la valeur des cookies, pensez Base64 votre valeurLes cookies JBoss 5.1.0 (JSF/Seam) explosent avec des caractères accentués

Est-ce que quelqu'un sait quel changement dans JBoss 5.1.0 pourrait causer ces problèmes?

Répondre

2

Apparemment, ils ont corrigé un bug afin que le nom de cookie soit maintenant conforme à la RFC2109.

Voir aussi la javax.servlet.http.Cookie API specification:

Le nom doit être conforme à la RFC 2109. Cela signifie qu'il peut contenir que des caractères alphanumériques ASCII et ne peut pas contenir des virgules, des points-virgules, ou de l'espace blanc ou commencer par un caractère $ . Le nom du cookie ne peut pas être changé après la création.

Le c avec cedille ç n'est pas un ASCII character.


Mise à jour: désolé, le problème concerne la valeur biscuit . Ceci est ensuite lié à this Tomcat bugfix (JBoss utilise Tomcat sous les hottes). Cela devrait être workaroundable en définissant la version cookie comme suit:

cookie.setVersion(1); 

Le ç est pas un caractère valide pour la valeur du cookie selon l'ancienne spécification Netscape, mais il est selon la nouvelle spécification RFC2109. Avec le Cookie#setVersion(), vous pouvez basculer entre eux.

+0

La question porte sur les valeurs de cookie et non sur le nom du cookie. – Photodeus

+0

@Photodeus: Je vois. J'ai mis à jour la réponse. Merci pour la retification. – BalusC

+0

J'ai résolu le problème en encodant base64 certaines valeurs de cookie (et décodage en lecture). J'ai essayé de mettre la version cookie à 1 mais cela n'a pas résolu le problème. Aussi, d'après ce que j'ai lu, la configuration de la version de cookie à 1 casse dans IE7. Est-ce que quelqu'un sait ce qui est différent dans JBoss 5.1.0 parce que dans 4.2.3 j'étais capable de passer des valeurs avec des accents sans aucun problème. – user283680

Questions connexes