
org.glassfish.soteria.servlet.CookieHandler Maven / Gradle / Ivy
/*
* Copyright (c) 2015, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
package org.glassfish.soteria.servlet;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.glassfish.soteria.Utils;
public class CookieHandler {
public static void saveCookie(HttpServletRequest request, HttpServletResponse response, String name, String value, Integer maxAge, boolean secureOnly, boolean HttpOnly) {
Cookie cookie = new Cookie(name, value);
if (maxAge != null) {
cookie.setMaxAge(maxAge);
}
cookie.setSecure(secureOnly);
cookie.setHttpOnly(HttpOnly);
cookie.setPath(Utils.isEmpty(request.getContextPath())? "/" : request.getContextPath());
response.addCookie(cookie);
}
public static Cookie getCookie(HttpServletRequest request, String name) {
if (request.getCookies() != null) {
for (Cookie cookie : request.getCookies()) {
if (name.equals(cookie.getName()) && !isEmpty(cookie)) {
return cookie;
}
}
}
return null;
}
public static void removeCookie(HttpServletRequest request, HttpServletResponse response, String name) {
Cookie cookie = new Cookie(name, null);
cookie.setMaxAge(0);
cookie.setPath(Utils.isEmpty(request.getContextPath())? "/" : request.getContextPath());
response.addCookie(cookie);
}
private static boolean isEmpty(Cookie cookie) {
return cookie.getValue() == null || cookie.getValue().trim().isEmpty();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy