// Copyright 2012 Google Inc. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package com.google.collide.server.fe; import org.vertx.java.core.http.HttpServerRequest; /** * Super simple class for extracting and handling Cookies. Should probably replace with an existing * implementation. * */ public class Cookie { /** * Get an array of Cookies from a request. */ public static Cookie[] extractCookies(HttpServerRequest req) { String cookies = req.headers().get("Cookie"); if (cookies == null) { return new Cookie[0]; } String[] cookieStrArr = cookies.split(";"); Cookie[] cookieArr = new Cookie[cookieStrArr.length]; for (int i = 0; i < cookieStrArr.length; i++) { String cookie = cookieStrArr[i].trim(); String[] cookieTup = cookie.split("="); cookieArr[i] = new Cookie(cookieTup[0], cookieTup[1]); } return cookieArr; } /** * @return a specific Cookie by name or {@code null} if it doesn't exist. */ public static Cookie getCookie(String name, HttpServerRequest req) { Cookie[] cookies = extractCookies(req); for (Cookie cookie : cookies) { if (name.equals(cookie.name)) { return cookie; } } return null; } public final String name; public final String value; public Cookie(String name, String value) { this.name = name; this.value = value; } }