web-dev-qa-db-fra.com

Cookie SameSite dans une application Java

Connaissez-vous une implémentation de Java Cookie permettant de définir un indicateur personnalisé pour le cookie (comme SameSite = strict )? il semble que javax.servlet.http.Cookie ait des drapeaux strictement limités qui peuvent être ajoutés.

16
Michal_Szulc

Je ne suis pas un expert JEE, mais je pense que cette propriété de cookie étant une invention relativement nouvelle, vous ne pouvez pas vous attendre à ce qu'elle soit présente dans les interfaces ou les implémentations Java EE 7. La classe Cookie manque d'un setter pour les propriétés génériques, comme il semble. Mais au lieu d’ajouter le cookie à votre HttpServletResponse via 

response.addCookie(myCookie)

vous pouvez simplement définir le champ d'en-tête HTTP correspondant via 

response.setHeader("Set-Cookie", "key=value; HttpOnly; SameSite=strict")

J'espère que c'est assez bon pour vous.

P.S .: J'ai enlevé mes derniers commentaires sous votre question, peut-être que vous souhaitez également supprimer vos 3 réponses qui ne sont plus nécessaires. Par la suite, je peux aussi supprimer ce paragraphe ici. Merci.

26
kriegaex

Si vous ne voulez pas mettre à jour tout votre code, vous pouvez également réaliser la même configuration sur une seule ligne en utilisant la configuration Apache ou Nginx (ou tout autre serveur/proxy HTTP que vous utilisez).

1 Configuration des cookies SameSite à l'aide de la configuration Apache

Vous pouvez ajouter la ligne suivante à votre configuration Apache

Header always edit Set-Cookie (.*) "$1; SameSite=Lax"

et cela mettra à jour tous vos cookies avec SameSite=Lax flag

Voir plus ici: https://blog.giantgeek.com/?p=1872

2 Configuration des cookies SameSite à l'aide de la configuration de Nginx

location / {
    # your usual config ...
    # hack, set all cookies to secure, httponly and samesite (strict or lax)
    proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict";
}

Idem ici, cela mettra également à jour tous vos cookies avec SameSite=Lax flag

Voir plus ici: https://serverfault.com/questions/849888/add-samesite-to-cookies-using-nginx-as-reverse-proxy

1
Marty Aghajanyan