summaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/jdisc/http/CookieHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-core/src/main/java/com/yahoo/jdisc/http/CookieHelper.java')
-rw-r--r--container-core/src/main/java/com/yahoo/jdisc/http/CookieHelper.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/CookieHelper.java b/container-core/src/main/java/com/yahoo/jdisc/http/CookieHelper.java
new file mode 100644
index 00000000000..897c18d1129
--- /dev/null
+++ b/container-core/src/main/java/com/yahoo/jdisc/http/CookieHelper.java
@@ -0,0 +1,38 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.jdisc.http;
+
+import com.yahoo.jdisc.HeaderFields;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * Helper for encoding/decoding cookies on request/response.
+ *
+ * @author bjorncs
+ */
+public class CookieHelper {
+
+ private CookieHelper() {}
+
+ public static List<Cookie> decodeSetCookieHeader(HeaderFields headers) {
+ List<String> cookies = headers.get(HttpHeaders.Names.SET_COOKIE);
+ if (cookies == null) {
+ return Collections.emptyList();
+ }
+ List<Cookie> ret = new LinkedList<>();
+ for (String cookie : cookies) {
+ ret.add(Cookie.fromSetCookieHeader(cookie));
+ }
+ return ret;
+ }
+
+ public static void encodeSetCookieHeader(HeaderFields headers, List<Cookie> cookies) {
+ headers.remove(HttpHeaders.Names.SET_COOKIE);
+ for (Cookie cookie : cookies) {
+ headers.add(HttpHeaders.Names.SET_COOKIE, Cookie.toSetCookieHeaders(Arrays.asList(cookie)));
+ }
+ }
+}