helma/src/main/java/helma/framework/CookieTrans.java

149 lines
2.9 KiB
Java

/*
* Helma License Notice
*
* The contents of this file are subject to the Helma License
* Version 2.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://adele.helma.org/download/helma/license.txt
*
* Copyright 1998-2003 Helma Software. All Rights Reserved.
*
* $RCSfile$
* $Author$
* $Revision$
* $Date$
*/
package helma.framework;
import java.io.Serializable;
import jakarta.servlet.http.Cookie;
/**
* Cookie Transmitter. A simple, serializable representation
* of an HTTP cookie.
*/
public final class CookieTrans implements Serializable {
private String name;
private String value;
private String path;
private String domain;
private boolean isHttpOnly = true;
private boolean isSecure = false;
private int days = -1;
CookieTrans(String name, String value) {
this.name = name;
this.value = value;
}
void setValue(String value) {
this.value = value;
}
void setDays(int days) {
this.days = days;
}
void setPath(String path) {
this.path = path;
}
void setDomain(String domain) {
this.domain = domain;
}
void setHttpOnly(boolean isHttpOnly) {
this.isHttpOnly = isHttpOnly;
}
void setSecure(boolean isSecure) {
this.isSecure = isSecure;
}
/**
* @return ...
*/
public String getName() {
return name;
}
/**
* @return ...
*/
public String getValue() {
return value;
}
/**
* @return ...
*/
public int getDays() {
return days;
}
/**
* @return ...
*/
public String getPath() {
return path;
}
/**
* @return ...
*/
public String getDomain() {
return domain;
}
/**
* @return ...
*/
public boolean getHttpOnly() {
return isHttpOnly;
}
/**
* @return ...
*/
public boolean getSecure() {
return isSecure;
}
/**
*
*
* @param defaultPath ...
* @param defaultDomain ...
*
* @return ...
*/
public Cookie getCookie(String defaultPath, String defaultDomain) {
Cookie c = new Cookie(name, value);
// NOTE: If cookie version is set to 1, cookie values will be quoted.
// c.setVersion(1);
if (days > -1) {
// Cookie time to live, days -> seconds
c.setMaxAge(days * 60 * 60 * 24);
}
if (path != null) {
c.setPath(path);
} else if (defaultPath != null) {
c.setPath(defaultPath);
}
if (domain != null) {
c.setDomain(domain);
} else if (defaultDomain != null) {
c.setDomain(defaultDomain);
}
c.setHttpOnly(isHttpOnly);
c.setSecure(isSecure);
return c;
}
}