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.netty5.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 /**
34 * Possible values for the SameSite attribute.
35 * See <a href="https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-05">changes to RFC6265bis</a>
36 */
37 public enum SameSite {
38 Lax,
39 Strict,
40 None;
41
42 /**
43 * Return the enum value corresponding to the passed in same-site-flag, using a case insensitive comparison.
44 *
45 * @param name value for the SameSite Attribute
46 * @return enum value for the provided name or null
47 */
48 static SameSite of(String name) {
49 if (name != null) {
50 for (SameSite each : SameSite.class.getEnumConstants()) {
51 if (each.name().equalsIgnoreCase(name)) {
52 return each;
53 }
54 }
55 }
56 return null;
57 }
58 }
59
60 private CookieHeaderNames() {
61 // Unused.
62 }
63 }