Utilities for reading and writing cookies with the JDK's built-in HTTP server.
Requires Java 21+
<dependency>
<groupId>dev.mccue</groupId>
<artifactId>jdk-httpserver-cookies</artifactId>
<version>2024.05.08</version>
</dependency>
dependencies {
implementation("dev.mccue:jdk-httpserver-cookies:2024.05.08")
}
var cookies = Cookies.parse(exchange);
var name = cookies.get("name").orElse("Bob");
String header = SetCookieHeader.of("name", "value");
String otherHeader = SetCookieHeader.builder("name2", "value2")
.sameSite(SameSite.STRICT)
.secure(true)
.build();
import com.sun.net.httpserver.HttpServer;
import dev.mccue.jdk.httpserver.Body;
import dev.mccue.jdk.httpserver.HttpExchangeUtils;
import dev.mccue.jdk.httpserver.cookies.Cookies;
import dev.mccue.jdk.httpserver.cookies.SetCookieHeader;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.List;
void main() throws IOException {
var server = HttpServer.create(new InetSocketAddress(8000), 0);
server.createContext("/", exchange -> {
var cookies = Cookies.parse(exchange);
var name = cookies.get("name").orElse("Bob");
exchange.getResponseHeaders().put("Set-Cookie", List.of(
SetCookieHeader.of("name", "Joe")
));
HttpExchangeUtils.sendResponse(exchange, 200, Body.of(
"Hello " + name
));
});
server.start();
}