- All Implemented Interfaces:
org.refcodes.mixin.DomainAccessor,org.refcodes.mixin.DomainAccessor.DomainBuilder<ResponseCookie>,org.refcodes.mixin.DomainAccessor.DomainMutator,org.refcodes.mixin.DomainAccessor.DomainProperty,org.refcodes.mixin.KeyAccessor<String>,org.refcodes.mixin.KeyAccessor.KeyBuilder<String,org.refcodes.struct.Relation.RelationBuilder<String,String>>,org.refcodes.mixin.KeyAccessor.KeyMutator<String>,org.refcodes.mixin.KeyAccessor.KeyProperty<String>,org.refcodes.mixin.PathAccessor,org.refcodes.mixin.PathAccessor.PathBuilder<ResponseCookie>,org.refcodes.mixin.PathAccessor.PathMutator,org.refcodes.mixin.PathAccessor.PathProperty,org.refcodes.mixin.ValueAccessor<String>,org.refcodes.mixin.ValueAccessor.ValueBuilder<String,org.refcodes.struct.Relation.RelationBuilder<String,String>>,org.refcodes.mixin.ValueAccessor.ValueMutator<String>,org.refcodes.mixin.ValueAccessor.ValueProperty<String>,org.refcodes.struct.Property,org.refcodes.struct.Property.PropertyBuilder,org.refcodes.struct.Relation<String,String>,org.refcodes.struct.Relation.RelationBuilder<String,String>,Cookie,ResponseCookie
public class ResponseCookieImpl extends org.refcodes.struct.PropertyImpl.PropertyBuilderImpl implements ResponseCookie
As of "HTTP cookies explained - NCZOnline": "... There is some confusion over
encoding of a cookie value. The commonly held belief is that cookie values
must be URL-encoded, but this is a fallacy even though it is the de facto
implementation. The original specification indicates that only three types of
characters must be encoded: semicolon, comma, and white space. The
specification indicates that URL encoding may be used but stops short of
requiring it. The RFC makes no mention of encoding whatsoever. Still, almost
all implementations perform some sort of URL encoding on cookie values. In
the case of name=value formats, the name and value are typically encoded
separately while the equals sign is left as is. ..." Therefore we use URL
encoding to make life easier and not fall into the trap of unescaped values.
- See Also:
- "https://www.nczonline.net/blog/2009/05/05/http-cookies-explained"
-
Nested Class Summary
Nested classes/interfaces inherited from class org.refcodes.struct.PropertyImpl
org.refcodes.struct.PropertyImpl.PropertyBuilderImplNested classes/interfaces inherited from class org.refcodes.struct.RelationImpl
org.refcodes.struct.RelationImpl.RelationBuilderImpl<K extends Object,V extends Object>Nested classes/interfaces inherited from interface org.refcodes.mixin.DomainAccessor
org.refcodes.mixin.DomainAccessor.DomainBuilder<B extends org.refcodes.mixin.DomainAccessor.DomainBuilder<?>>, org.refcodes.mixin.DomainAccessor.DomainMutator, org.refcodes.mixin.DomainAccessor.DomainPropertyNested classes/interfaces inherited from interface org.refcodes.mixin.KeyAccessor
org.refcodes.mixin.KeyAccessor.KeyBuilder<K extends Object,B extends org.refcodes.mixin.KeyAccessor.KeyBuilder<K,B>>, org.refcodes.mixin.KeyAccessor.KeyMutator<K extends Object>, org.refcodes.mixin.KeyAccessor.KeyProperty<K extends Object>Nested classes/interfaces inherited from interface org.refcodes.mixin.PathAccessor
org.refcodes.mixin.PathAccessor.PathBuilder<B extends org.refcodes.mixin.PathAccessor.PathBuilder<?>>, org.refcodes.mixin.PathAccessor.PathMutator, org.refcodes.mixin.PathAccessor.PathPropertyNested classes/interfaces inherited from interface org.refcodes.struct.Property
org.refcodes.struct.Property.PropertyBuilderNested classes/interfaces inherited from interface org.refcodes.struct.Relation
org.refcodes.struct.Relation.RelationBuilder<K extends Object,V extends Object>Nested classes/interfaces inherited from interface org.refcodes.mixin.ValueAccessor
org.refcodes.mixin.ValueAccessor.ValueBuilder<V extends Object,B extends org.refcodes.mixin.ValueAccessor.ValueBuilder<V,B>>, org.refcodes.mixin.ValueAccessor.ValueMutator<V extends Object>, org.refcodes.mixin.ValueAccessor.ValueProperty<V extends Object> -
Field Summary
Fields inherited from class org.refcodes.struct.RelationImpl
_key, _value -
Constructor Summary
Constructors Constructor Description ResponseCookieImpl()Instantiates a new response cookie impl.ResponseCookieImpl(String aHttpCookie)Constructs aResponseCookiefrom the given HTTP cookie.ResponseCookieImpl(String aCookieName, String aValue)Constructs aResponseCookie.ResponseCookieImpl(String aCookieName, String aValue, int aMaxAge, String aDomain, String aPath, boolean isSecure, boolean isHttpOnly, String aVersion)Constructs aResponseCookie.ResponseCookieImpl(String aCookieName, String aValue, Date aExpiresDate, String aDomain, String aPath, boolean isSecure, boolean isHttpOnly, String aVersion)Constructs aResponseCookie.ResponseCookieImpl(Cookie aCookie)Constructs aResponseCookie. -
Method Summary
Modifier and Type Method Description StringgetDomain()DategetExpiresDate()Returns the expiration date of this cookie.intgetMaxAge()Returns the Max-Age (seconds) for this cookie.StringgetPath()StringgetVersion()Returns the version this cookie.booleanisHttpOnly()Returns true if we have an HTTP only cookie.booleanisSecure()Returns true if we have a secure HTTP cookie.voidsetDomain(String aDomain)voidsetExpiresAfter(org.refcodes.time.TimeUnit aTimeUnit, long aTime)Sets the expires date to the current time plus the provided time.voidsetExpiresDate(Date aExpireDate)Sets the expiration date of this cookie.voidsetHttpOnly(boolean isHttpOnly)Sets whether it be an HTTP only cookie.voidsetMaxAge(int aMaxAge)Sets the Max-Age (seconds) of this cookie.voidsetPath(String aPath)voidsetSecure(boolean isSecure)Sets whether it be a secure HTTP cookie.voidsetVersion(String aVersion)Sets the version of this cookie.StringtoString()Methods inherited from class org.refcodes.struct.PropertyImpl.PropertyBuilderImpl
setKey, setValueMethods inherited from class org.refcodes.struct.RelationImpl
getKey, getValueMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.refcodes.mixin.DomainAccessor.DomainProperty
letDomainMethods inherited from interface org.refcodes.mixin.KeyAccessor
getKeyMethods inherited from interface org.refcodes.mixin.KeyAccessor.KeyMutator
setKeyMethods inherited from interface org.refcodes.mixin.KeyAccessor.KeyProperty
letKeyMethods inherited from interface org.refcodes.mixin.PathAccessor.PathProperty
letPathMethods inherited from interface org.refcodes.struct.Property
toPropertyMethods inherited from interface org.refcodes.struct.Property.PropertyBuilder
withKey, withValueMethods inherited from interface org.refcodes.web.ResponseCookie
fromHttpCookie, toHttpCookie, withDomain, withExpiresAfter, withExpiresDate, withHttpCookie, withHttpOnly, withMaxAge, withPath, withSecure, withVersionMethods inherited from interface org.refcodes.mixin.ValueAccessor
getValue, getValueOrMethods inherited from interface org.refcodes.mixin.ValueAccessor.ValueMutator
setValueMethods inherited from interface org.refcodes.mixin.ValueAccessor.ValueProperty
letValue
-
Constructor Details
-
ResponseCookieImpl
public ResponseCookieImpl()Instantiates a new response cookie impl. -
ResponseCookieImpl
Constructs aResponseCookie.- Parameters:
aCookieName- The name of the cookie.aValue- The value for the cookie.
-
ResponseCookieImpl
Constructs aResponseCookiefrom the given HTTP cookie.- Parameters:
aHttpCookie- The text as being found in the according HTTP header field.
-
ResponseCookieImpl
Constructs aResponseCookie.- Parameters:
aCookie- TheCookiefrom which to take the data.
-
ResponseCookieImpl
public ResponseCookieImpl(String aCookieName, String aValue, Date aExpiresDate, String aDomain, String aPath, boolean isSecure, boolean isHttpOnly, String aVersion)Constructs aResponseCookie.- Parameters:
aCookieName- The name for the cookieaValue- The value of the cookieaExpiresDate- The expiration date of the cookieaDomain- The domain of the cookieaPath- The path of the cookieisSecure- The secure flag of the cookieisHttpOnly- The HTTP-only flag of the cookieaVersion- The version of the cookie.
-
ResponseCookieImpl
public ResponseCookieImpl(String aCookieName, String aValue, int aMaxAge, String aDomain, String aPath, boolean isSecure, boolean isHttpOnly, String aVersion)Constructs aResponseCookie.- Parameters:
aCookieName- The name for the cookieaValue- The value of the cookieaMaxAge- Sets the Max-Age (seconds) of this cookie.aDomain- The domain of the cookieaPath- The path of the cookieisSecure- The secure flag of the cookieisHttpOnly- The HTTP-only flag of the cookieaVersion- The version of the cookie.
-
-
Method Details
-
getMaxAge
public int getMaxAge()Returns the Max-Age (seconds) for this cookie.- Specified by:
getMaxAgein interfaceResponseCookie- Returns:
- The Max-Age.
-
setMaxAge
public void setMaxAge(int aMaxAge)Sets the Max-Age (seconds) of this cookie.- Specified by:
setMaxAgein interfaceResponseCookie- Parameters:
aMaxAge- Sets the Max-Age.
-
getVersion
Returns the version this cookie.- Specified by:
getVersionin interfaceResponseCookie- Returns:
- The version.
-
setVersion
Sets the version of this cookie.- Specified by:
setVersionin interfaceResponseCookie- Parameters:
aVersion- Sets the version.
-
getPath
- Specified by:
getPathin interfaceorg.refcodes.mixin.PathAccessor
-
setPath
- Specified by:
setPathin interfaceorg.refcodes.mixin.PathAccessor.PathMutator
-
getExpiresDate
Returns the expiration date of this cookie.- Specified by:
getExpiresDatein interfaceResponseCookie- Returns:
- The expiration date.
-
setExpiresDate
Sets the expiration date of this cookie.- Specified by:
setExpiresDatein interfaceResponseCookie- Parameters:
aExpireDate- The expiration date.
-
getDomain
- Specified by:
getDomainin interfaceorg.refcodes.mixin.DomainAccessor
-
setDomain
- Specified by:
setDomainin interfaceorg.refcodes.mixin.DomainAccessor.DomainMutator
-
setSecure
public void setSecure(boolean isSecure)Sets whether it be a secure HTTP cookie. Such a cookie only be transferred via HTTPS.- Specified by:
setSecurein interfaceResponseCookie- Parameters:
isSecure- True in case of being a secure only cookie.
-
isSecure
public boolean isSecure()Returns true if we have a secure HTTP cookie. Such a cookie only be transferred via HTTPS.- Specified by:
isSecurein interfaceResponseCookie- Returns:
- True in case of being a secure only cookie.
-
isHttpOnly
public boolean isHttpOnly()Returns true if we have an HTTP only cookie. Such a cookie cannot be accessed client-side (via JavaScript).- Specified by:
isHttpOnlyin interfaceResponseCookie- Returns:
- True in case of being an HTTP only cookie.
-
setHttpOnly
public void setHttpOnly(boolean isHttpOnly)Sets whether it be an HTTP only cookie. Such a cookie cannot be accessed client-side (via JavaScript).- Specified by:
setHttpOnlyin interfaceResponseCookie- Parameters:
isHttpOnly- True in case of being an HTTP only cookie.
-
setExpiresAfter
public void setExpiresAfter(org.refcodes.time.TimeUnit aTimeUnit, long aTime)Sets the expires date to the current time plus the provided time. UseResponseCookie.getExpiresDate()to retrieve the resulting effectiveDate.- Specified by:
setExpiresAfterin interfaceResponseCookie- Parameters:
aTimeUnit- TheTimeUnitof the provided timeaTime- The provided time after which to expire
-
toString
- Overrides:
toStringin classorg.refcodes.struct.PropertyImpl.PropertyBuilderImpl
-