- 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
public class ResponseCookie
extends org.refcodes.struct.PropertyImpl.PropertyBuilderImpl
implements Cookie, org.refcodes.mixin.PathAccessor.PathProperty, org.refcodes.mixin.PathAccessor.PathBuilder<ResponseCookie>, org.refcodes.mixin.DomainAccessor.DomainProperty, org.refcodes.mixin.DomainAccessor.DomainBuilder<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.
The
ResponseCookie
represents response cookies: We use URL encoding /
decoding for the cookie value (regarding fromHttpCookie(String)
and
toHttpCookie()
) 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.PropertyBuilderImpl
Nested 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.DomainProperty
Nested 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.PathProperty
Nested classes/interfaces inherited from interface org.refcodes.struct.Property
org.refcodes.struct.Property.PropertyBuilder
Nested 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
ConstructorDescriptionInstantiates a new response cookie impl.ResponseCookie
(String aHttpCookie) Constructs aResponseCookie
from the given HTTP cookie.ResponseCookie
(String aCookieName, String aValue) Constructs aResponseCookie
.ResponseCookie
(String aCookieName, String aValue, int aMaxAge, String aDomain, String aPath, boolean isSecure, boolean isHttpOnly, String aVersion) Constructs aResponseCookie
.ResponseCookie
(String aCookieName, String aValue, Date aExpiresDate, String aDomain, String aPath, boolean isSecure, boolean isHttpOnly, String aVersion) Constructs aResponseCookie
.ResponseCookie
(Cookie aCookie) Constructs aResponseCookie
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
fromHttpCookie
(String aHttpCookie) Sets the cookie according to the provided HTTP cookie text.Returns the expiration date of this cookie.int
Returns the Max-Age (seconds) for this cookie.getPath()
Returns the version this cookie.boolean
Returns true if we have an HTTP only cookie.boolean
isSecure()
Returns true if we have a secure HTTP cookie.void
void
setExpiresAfter
(org.refcodes.time.TimeUnit aTimeUnit, long aTime) Sets the expires date to the current time plus the provided time.void
setExpiresDate
(Date aExpireDate) Sets the expiration date of this cookie.void
setHttpOnly
(boolean isHttpOnly) Sets whether it be an HTTP only cookie.void
setMaxAge
(int aMaxAge) Sets the Max-Age (seconds) of this cookie.void
void
setSecure
(boolean isSecure) Sets whether it be a secure HTTP cookie.void
setVersion
(String aVersion) Sets the version of this cookie.Returns the cookie to be assigned to a cookie Header-Field.toString()
withDomain
(String aDomain) Sets the domain for this cookie.withExpiresAfter
(org.refcodes.time.TimeUnit aTimeUnit, long aTime) Builder method for the methodsetExpiresAfter(TimeUnit, long)
.withExpiresDate
(Date aExpiresDate) Sets the expiration date of this cookie and returns this instance as of the Builder-Pattern.withHttpCookie
(String aCookie) Sets the cookie according to the provided HTTP cookie text viaCookie.fromHttpCookie(String)
.withHttpOnly
(boolean isHttpOnly) Sets whether it be an HTTP only cookie.withMaxAge
(int aMaxAge) Builder method forsetMaxAge(int)
.Sets the path of the cookie.withSecure
(boolean isSecure) Sets whether it be a secure HTTP cookie.withVersion
(String aVersion) Builder method forsetVersion(String)
.Methods inherited from class org.refcodes.struct.PropertyImpl.PropertyBuilderImpl
setKey, setValue
Methods inherited from class org.refcodes.struct.RelationImpl
getKey, getValue
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.refcodes.mixin.DomainAccessor.DomainProperty
letDomain
Methods inherited from interface org.refcodes.mixin.KeyAccessor
getKey
Methods inherited from interface org.refcodes.mixin.KeyAccessor.KeyMutator
setKey
Methods inherited from interface org.refcodes.mixin.KeyAccessor.KeyProperty
letKey
Methods inherited from interface org.refcodes.mixin.PathAccessor.PathProperty
letPath
Methods inherited from interface org.refcodes.struct.Property
toProperty
Methods inherited from interface org.refcodes.struct.Property.PropertyBuilder
withKey, withValue
Methods inherited from interface org.refcodes.mixin.ValueAccessor
getValue, getValueOr
Methods inherited from interface org.refcodes.mixin.ValueAccessor.ValueMutator
setValue
Methods inherited from interface org.refcodes.mixin.ValueAccessor.ValueProperty
letValue
-
Constructor Details
-
ResponseCookie
public ResponseCookie()Instantiates a new response cookie impl. -
ResponseCookie
Constructs aResponseCookie
.- Parameters:
aCookieName
- The name of the cookie.aValue
- The value for the cookie.
-
ResponseCookie
Constructs aResponseCookie
from the given HTTP cookie.- Parameters:
aHttpCookie
- The text as being found in the according HTTP header field.
-
ResponseCookie
Constructs aResponseCookie
.- Parameters:
aCookie
- TheCookie
from which to take the data.
-
ResponseCookie
public ResponseCookie(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.
-
ResponseCookie
public ResponseCookie(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.- Returns:
- The Max-Age.
-
setMaxAge
public void setMaxAge(int aMaxAge) Sets the Max-Age (seconds) of this cookie.- Parameters:
aMaxAge
- Sets the Max-Age.
-
getVersion
Returns the version this cookie.- Returns:
- The version.
-
setVersion
Sets the version of this cookie.- Parameters:
aVersion
- Sets the version.
-
getPath
- Specified by:
getPath
in interfaceorg.refcodes.mixin.PathAccessor
-
setPath
- Specified by:
setPath
in interfaceorg.refcodes.mixin.PathAccessor.PathMutator
-
getExpiresDate
Returns the expiration date of this cookie.- Returns:
- The expiration date.
-
setExpiresDate
Sets the expiration date of this cookie.- Parameters:
aExpireDate
- The expiration date.
-
getDomain
- Specified by:
getDomain
in interfaceorg.refcodes.mixin.DomainAccessor
-
setDomain
- Specified by:
setDomain
in 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.- 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.- 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).- 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).- 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. UsegetExpiresDate()
to retrieve the resulting effectiveDate
.- Parameters:
aTimeUnit
- TheTimeUnit
of the provided timeaTime
- The provided time after which to expire
-
withExpiresDate
Sets the expiration date of this cookie and returns this instance as of the Builder-Pattern.- Parameters:
aExpiresDate
- the expires date- Returns:
- This instance as of the Builder-Pattern.
-
withPath
Sets the path of the cookie.- Specified by:
withPath
in interfaceorg.refcodes.mixin.PathAccessor.PathBuilder<ResponseCookie>
-
withDomain
Sets the domain for this cookie.- Specified by:
withDomain
in interfaceorg.refcodes.mixin.DomainAccessor.DomainBuilder<ResponseCookie>
-
withHttpOnly
Sets whether it be an HTTP only cookie. Such a cookie cannot be accessed client-side (via JavaScript). Returns this instance as of the builder pattern.- Parameters:
isHttpOnly
- True in case of being an HTTP only cookie.- Returns:
- Returns this instance as of the Builder-Pattern.
-
withExpiresAfter
Builder method for the methodsetExpiresAfter(TimeUnit, long)
.- Parameters:
aTimeUnit
- TheTimeUnit
of the provided timeaTime
- The provided time after which to expire- Returns:
- This cookie instance for further configuration.
-
withVersion
Builder method forsetVersion(String)
.- Parameters:
aVersion
- Sets the version.- Returns:
- This instance as of the Builder-Pattern.
-
withMaxAge
Builder method forsetMaxAge(int)
.- Parameters:
aMaxAge
- Sets the Max-Age.- Returns:
- This instance as of the Builder-Pattern.
-
withSecure
Sets whether it be a secure HTTP cookie. Such a cookie only be transferred via HTTPS. Returns this instance as of the Builder-Pattern.- Parameters:
isSecure
- True in case of being a secure only cookie.- Returns:
- Returns this instance as of the Builder-Pattern.
-
withHttpCookie
Sets the cookie according to the provided HTTP cookie text viaCookie.fromHttpCookie(String)
.- Specified by:
withHttpCookie
in interfaceCookie
- Parameters:
aCookie
- The HTTP cookie text.- Returns:
- A
Cookie
instance as of the Builder-Pattern.
-
fromHttpCookie
Sets the cookie according to the provided HTTP cookie text.- Specified by:
fromHttpCookie
in interfaceCookie
- Parameters:
aHttpCookie
- The HTTP cookie text.
-
toHttpCookie
Returns the cookie to be assigned to a cookie Header-Field.- Specified by:
toHttpCookie
in interfaceCookie
- Returns:
- The cookie value for a Header-Field.
-
toString
- Overrides:
toString
in classorg.refcodes.struct.PropertyImpl.PropertyBuilderImpl
-