/* * JBoss, Home of Professional Open Source. * Copyright 2016 Red Hat, Inc., and individual contributors * as indicated by the @author tags. * * 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 org.wildfly.security.http; /** * Server side representation of a HTTP Cookie. * * @author Pedro Igor */ public interface HttpServerCookie { /** * Returns a new instance representing HttpServerCookie * * @param name the name of the cookie * @param value the current value of this cookie * @param domain the domain name of this cookie * @param maxAge specifying the maximum age of the cookie in seconds * @param path a String specifying a path on the server * @param secure true if the browser uses a secure protocol, false otherwise * @param version the version of the protocol this cookie complies with * @param httpOnly true if this cookie has been marked as HttpOnly, false otherwise * @return a new instance representing HttpServerCookie */ static HttpServerCookie getInstance(String name, String value, String domain, int maxAge, String path, boolean secure, int version, boolean httpOnly) { return new HttpServerCookie() { @Override public String getName() { return name; } @Override public String getValue() { return value; } @Override public String getDomain() { return domain; } @Override public int getMaxAge() { return maxAge; } @Override public String getPath() { return path; } @Override public boolean isSecure() { return secure; } @Override public int getVersion() { return version; } @Override public boolean isHttpOnly() { return httpOnly; } }; } /** * Returns the name of the cookie. * * @return the name of the cookie */ String getName(); /** * Returns the current value of this cookie. * * @return the current value of this cookie */ String getValue(); /** * Gets the domain name of this cookie. * * @return the domain name of this cookie */ String getDomain(); /** * Gets the maximum age in seconds of this Cookie. * * @return an integer specifying the maximum age of the cookie in seconds */ int getMaxAge(); /** * Returns the path on the server to which the browser returns this cookie. * * @return a String specifying a path on the server */ String getPath(); /** * Returns true if the browser is sending cookies only over a secure protocol, or false if the * browser can send cookies using any protocol. * * @return true if the browser uses a secure protocol, false otherwise */ boolean isSecure(); /** * Returns the version of the protocol this cookie complies with. * * @return the version of the protocol this cookie complies with. */ int getVersion(); /** * Checks whether this cookie has been marked as HttpOnly. * * @return true if this cookie has been marked as HttpOnly, false otherwise */ boolean isHttpOnly(); }