qu'est-ce qu'un Cookie.setMaxAge(Integer.MAX_VALUE)?
setMaxAge est censé contrôler l'âge maximum d'un cookie, donc si mon intention est littéralement définir l'âge maximal possible, la logique serait de faire:
cookie.setMaxAge(Integer.MAX_VALUE);
Toutefois, cela n'entraîne aucune Expires
cookie dans l'en-tête HTTP à tous, je suis un essai sur une WebSphere 7. Régler sur 1 an (mesuré en secondes) fonctionne très bien.
Pourquoi cela se produit-il?
PS
Je viens de tester sur Tomcat7 - Entier.MAX_VALUE résultats dans Max-Age=2147483647; Expires=Wed, 06-Mar-2080 21:30:32 GMT
, donc ça doit être quelque chose de mal avec WebSphere.
javaworld.com/community/node/3673
Oui, c'est mon article. Mais il n'y a rien d'Entier.MAX_VALUE.
Test rapide, a travaillé comme vous vous attendiez sur WebSphere 6.1. Je n'ai pas de WebSphere 7 environnement de test. Avez-vous testé d'autres valeurs d'expiration?
J'ai juste couru un test rapide sur A 7 et a constaté la même chose que vous avez fait. Les Cookies avec d'autres max âges sont créés comme prévu, mais pas pour des biscuits avec l'âge maximum fixé à l'Entier.MAX_VALUE ou d'autres grandes valeurs. (J'ai essayé un peu arbitraire de grandes valeurs - 1500000000 travaillé mais 2000000000 n'a pas.)
Donc, ce doit être un bug en A 7. Quelqu'un veut le rapport d'IBM? sera heureux d'accepter une réponse qui dit APAR est produite.
Oui, c'est mon article. Mais il n'y a rien d'Entier.MAX_VALUE.
Test rapide, a travaillé comme vous vous attendiez sur WebSphere 6.1. Je n'ai pas de WebSphere 7 environnement de test. Avez-vous testé d'autres valeurs d'expiration?
J'ai juste couru un test rapide sur A 7 et a constaté la même chose que vous avez fait. Les Cookies avec d'autres max âges sont créés comme prévu, mais pas pour des biscuits avec l'âge maximum fixé à l'Entier.MAX_VALUE ou d'autres grandes valeurs. (J'ai essayé un peu arbitraire de grandes valeurs - 1500000000 travaillé mais 2000000000 n'a pas.)
Donc, ce doit être un bug en A 7. Quelqu'un veut le rapport d'IBM? sera heureux d'accepter une réponse qui dit APAR est produite.
OriginalL'auteur Oleg Mikheev | 2012-02-17
Vous devez vous connecter pour publier un commentaire.
Problème est décrit dans la http://www-01.ibm.com/support/docview.wss?uid=swg1PM34869.
La Cause est une sorte de millenium problème: WAS7 écrit cookies date AA, WAS6 AAAA
OriginalL'auteur Gerrit van Brakel
au lieu de fixer l'âge maximum pour un cookie, ce setMaxAge méthode ajoute le paramètre de type int secondes pour le SERVEUR actuel date/heure et la place cette nouvelle valeur de date/heure pour un cookie que sa date d'expiration. Plus tard, quand ce cookie est envoyé au navigateur, cette date d'expiration est par rapport au CLIENT la date/l'heure et le cookie se expiré si sa date d'expiration est passée.
donc, au lieu d'utiliser setMaxAge(int) utiliser la méthode avec la date et l'heure.
OriginalL'auteur Rajkumar Singh