package railo.runtime.thread; import java.io.Serializable; import javax.servlet.http.Cookie; import railo.runtime.type.scope.CookieImpl; public class SerializableCookie implements Serializable { private static final long serialVersionUID = -7167614871212402517L; private String comment; private String domain; private int maxAge; private String name; private String path; private boolean secure; private String value; private int version; private boolean httpOnly; public SerializableCookie(String comment, String domain, int maxAge, String name, String path, boolean secure, String value, int version, boolean httpOnly) { this.comment = comment; this.domain = domain; this.maxAge = maxAge; this.name = name; this.path = path; this.secure = secure; this.value = value; this.version = version; this.httpOnly = httpOnly; } public SerializableCookie(Cookie cookie) { this.comment = cookie.getComment(); this.domain = cookie.getDomain(); this.maxAge = cookie.getMaxAge(); this.name = cookie.getName(); this.path = cookie.getPath(); this.secure = cookie.getSecure(); this.value = cookie.getValue(); this.version = cookie.getVersion(); this.httpOnly = CookieImpl.isHTTPOnly(cookie); } public String getComment() { return comment; } public String getDomain() { return domain; } public int getMaxAge() { return maxAge; } public String getName() { return name; } public String getPath() { return path; } public boolean getSecure() { return secure; } public String getValue() { return value; } public int getVersion() { return version; } public boolean isHttpOnly(){ return httpOnly; } public void setComment(String purpose) { this.comment=purpose; } public void setDomain(String pattern) { this.domain=pattern; } public void setMaxAge(int expiry) { this.maxAge=expiry; } public void setPath(String uri) { this.path=uri; } public void setSecure(boolean secure) { this.secure=secure; } public void setValue(String value) { this.value=value; } public void setVersion(int version) { this.version=version; } public void setHttpOnly(boolean httpOnly){ this.httpOnly=httpOnly; } public Cookie toCookie() { Cookie c = new Cookie(name,value); if(comment!=null)c.setComment(comment); if(domain!=null)c.setDomain(domain); c.setMaxAge(maxAge); if(path!=null)c.setPath(path); c.setSecure(secure); c.setVersion(version); if(httpOnly)CookieImpl.setHTTPOnly(c); return c; } public static Cookie[] toCookies(SerializableCookie[] src) { if(src==null)return new Cookie[0]; Cookie[] dest=new Cookie[src.length]; for(int i=0;i<src.length;i++) { dest[i]=src[i].toCookie(); } return dest; } public static SerializableCookie[] toSerializableCookie(Cookie[] src) { if(src==null)return new SerializableCookie[0]; SerializableCookie[] dest=new SerializableCookie[src.length]; for(int i=0;i<src.length;i++) { dest[i]=new SerializableCookie(src[i]); } return dest; } }