1 /*
2 * Copyright 2015 The Netty Project
3 *
4 * The Netty Project licenses this file to you under the Apache License,
5 * version 2.0 (the "License"); you may not use this file except in compliance
6 * with the License. You may obtain a copy of the License at:
7 *
8 * https://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations
14 * under the License.
15 */
16 package io.netty.handler.codec.http.cookie;
17
18 public final class CookieHeaderNames {
19 public static final String PATH = "Path";
20
21 public static final String EXPIRES = "Expires";
22
23 public static final String MAX_AGE = "Max-Age";
24
25 public static final String DOMAIN = "Domain";
26
27 public static final String SECURE = "Secure";
28
29 public static final String HTTPONLY = "HTTPOnly";
30
31 public static final String SAMESITE = "SameSite";
32
33 public static final String PARTITIONED = "Partitioned";
34
35 /**
36 * Possible values for the SameSite attribute.
37 * See <a href="https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-05">changes to RFC6265bis</a>
38 */
39 public enum SameSite {
40 Lax,
41 Strict,
42 None;
43
44 /**
45 * Return the enum value corresponding to the passed in same-site-flag, using a case insensitive comparison.
46 *
47 * @param name value for the SameSite Attribute
48 * @return enum value for the provided name or null
49 */
50 static SameSite of(String name) {
51 if (name != null) {
52 for (SameSite each : SameSite.class.getEnumConstants()) {
53 if (each.name().equalsIgnoreCase(name)) {
54 return each;
55 }
56 }
57 }
58 return null;
59 }
60 }
61
62 private CookieHeaderNames() {
63 // Unused.
64 }
65 }