(20/01/08 19:45 postscript)
javax.servlet.http.Cookie n'a pas d'API pour accorder l'attribut SameSite. C'est une réponse dans un tel cas. À propos, l'attribut SameSite est pris en charge par presque tous les navigateurs. Référence
Je vais l'essayer avec Spring Boot.
@RestController
public class DemoController {
@GetMapping(value = "/")
public String index(HttpServletResponse response) {
String name = "name";
String value = "takeshi";
String cookie = String.format("%s=%s; max-age=3600; Path=/; HttpOnly; Secure; SameSite=Lax;", name, value);
response.addHeader("Set-Cookie", cookie);
return "hello, world!";
}
Takeshi est entré sain et sauf.
Spring Boot a une classe appelée ResponseCookie qui crée une chaîne de cookie pour l'en-tête. Si vous utilisez cette classe et renvoyez la réponse définie par Set-Cookie, elle définira le cookie.
@RestController
public class DemoController {
@GetMapping(value = "/")
public String index(HttpServletRequest request, HttpServletResponse response) {
String name = "name";
String value = "takeshi";
ResponseCookie cookie = ResponseCookie.from(name, value).domain("localhost").maxAge(Duration.ofDays((long) 1))
.httpOnly(true).secure(true).sameSite("Strict").build();
response.addHeader("Set-Cookie", cookie.toString());
return "Hello, World";
}
}
Si vous écrivez fréquemment des cookies, il semble préférable de créer une classe personnalisée qui reçoit et définit les paramètres. Vous pouvez également définir des paramètres par lots côté serveur Web, tels qu'Apache ou nginx. Référence
Class Cookie https://stackoverflow.com/questions/42717210/samesite-cookie-in-java-application https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie
Recommended Posts