Home / Class/ ServerCookieEncoder Class — netty Architecture

ServerCookieEncoder Class — netty Architecture

Architecture documentation for the ServerCookieEncoder class in ServerCookieEncoder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  777f44fa_8615_2d3d_259b_3c21462736d3["ServerCookieEncoder"]
  56e3d980_bd6a_5139_f1e9_c86914fa27a0["ServerCookieEncoder.java"]
  777f44fa_8615_2d3d_259b_3c21462736d3 -->|defined in| 56e3d980_bd6a_5139_f1e9_c86914fa27a0
  c118517a_6d96_6743_a912_d9403822ecfd["ServerCookieEncoder()"]
  777f44fa_8615_2d3d_259b_3c21462736d3 -->|method| c118517a_6d96_6743_a912_d9403822ecfd
  d66f4c50_3c66_08d3_8a3f_373f5b1091c6["String()"]
  777f44fa_8615_2d3d_259b_3c21462736d3 -->|method| d66f4c50_3c66_08d3_8a3f_373f5b1091c6
  30cc30c8_0e92_145c_66cc_1c3bfee9e258["dedup()"]
  777f44fa_8615_2d3d_259b_3c21462736d3 -->|method| 30cc30c8_0e92_145c_66cc_1c3bfee9e258
  804d6d90_280a_5fb6_57a6_d8095c768928["encode()"]
  777f44fa_8615_2d3d_259b_3c21462736d3 -->|method| 804d6d90_280a_5fb6_57a6_d8095c768928

Relationship Graph

Source Code

codec-http/src/main/java/io/netty/handler/codec/http/cookie/ServerCookieEncoder.java lines 53–235

public final class ServerCookieEncoder extends CookieEncoder {

    /**
     * Strict encoder that validates that name and value chars are in the valid scope
     * defined in RFC6265, and (for methods that accept multiple cookies) that only
     * one cookie is encoded with any given name. (If multiple cookies have the same
     * name, the last one is the one that is encoded.)
     */
    public static final ServerCookieEncoder STRICT = new ServerCookieEncoder(true);

    /**
     * Lax instance that doesn't validate name and value, and that allows multiple
     * cookies with the same name.
     */
    public static final ServerCookieEncoder LAX = new ServerCookieEncoder(false);

    private ServerCookieEncoder(boolean strict) {
        super(strict);
    }

    /**
     * Encodes the specified cookie name-value pair into a Set-Cookie header value.
     *
     * @param name the cookie name
     * @param value the cookie value
     * @return a single Set-Cookie header value
     */
    public String encode(String name, String value) {
        return encode(new DefaultCookie(name, value));
    }

    /**
     * Encodes the specified cookie into a Set-Cookie header value.
     *
     * @param cookie the cookie
     * @return a single Set-Cookie header value
     */
    public String encode(Cookie cookie) {
        final String name = checkNotNull(cookie, "cookie").name();
        final String value = cookie.value() != null ? cookie.value() : "";

        validateCookie(name, value);

        StringBuilder buf = stringBuilder();

        if (cookie.wrap()) {
            addQuoted(buf, name, value);
        } else {
            add(buf, name, value);
        }

        if (cookie.maxAge() != Long.MIN_VALUE) {
            add(buf, CookieHeaderNames.MAX_AGE, cookie.maxAge());
            Date expires = new Date(cookie.maxAge() * 1000 + System.currentTimeMillis());
            buf.append(CookieHeaderNames.EXPIRES);
            buf.append('=');
            DateFormatter.append(expires, buf);
            buf.append(';');
            buf.append(HttpConstants.SP_CHAR);
        }

        if (cookie.path() != null) {
            add(buf, CookieHeaderNames.PATH, cookie.path());
        }

        if (cookie.domain() != null) {
            add(buf, CookieHeaderNames.DOMAIN, cookie.domain());
        }
        if (cookie.isSecure()) {
            add(buf, CookieHeaderNames.SECURE);
        }
        if (cookie.isHttpOnly()) {
            add(buf, CookieHeaderNames.HTTPONLY);
        }
        if (cookie instanceof DefaultCookie) {
            DefaultCookie c = (DefaultCookie) cookie;
            if (c.sameSite() != null) {
                add(buf, CookieHeaderNames.SAMESITE, c.sameSite().name());
            }
            if (c.isPartitioned()) {
                add(buf, CookieHeaderNames.PARTITIONED);

Frequently Asked Questions

What is the ServerCookieEncoder class?
ServerCookieEncoder is a class in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/cookie/ServerCookieEncoder.java.
Where is ServerCookieEncoder defined?
ServerCookieEncoder is defined in codec-http/src/main/java/io/netty/handler/codec/http/cookie/ServerCookieEncoder.java at line 53.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free