(20/01/08 19:45 postscript)
javax.servlet.http.Cookie verfügt nicht über eine API, um das SameSite-Attribut zu erteilen. Es ist eine Antwort in einem solchen Fall. Das SameSite-Attribut wird übrigens von fast allen Browsern unterstützt. Referenz
Ich werde es mit Spring Boot versuchen.
@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 trat sicher ein.
Spring Boot verfügt über eine Klasse namens ResponseCookie, die eine Cookie-Zeichenfolge für den Header erstellt. Wenn Sie diese Klasse verwenden und die von Set-Cookie festgelegte Antwort zurückgeben, wird das Cookie gesetzt.
@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";
}
}
Wenn Sie häufig Cookies schreiben, ist es besser, eine benutzerdefinierte Klasse zu erstellen, die Parameter empfängt und festlegt. Alternativ können Sie Batch-Einstellungen auf der Webserverseite vornehmen, z. B. Apache oder Nginx. Referenz
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