Package org.restlet.engine.application
Class CorsResponseHelper
- java.lang.Object
-
- org.restlet.engine.application.CorsResponseHelper
-
public class CorsResponseHelper extends java.lang.ObjectHelps to generate response CORS headers.
The CORS specification defines a subset of methods qualified as simple HEAD, GET and POST. Any other methods should send a preflight request with the method OPTIONS.- Author:
- Manuel Boillod
- See Also:
- W3C CORS Specification, Simple methods
-
-
Field Summary
Fields Modifier and Type Field Description booleanallowAllRequestedHeadersIf true, copies the value of 'Access-Control-Request-Headers' request header into the 'Access-Control-Allow-Headers' response header.booleanallowedCredentialsIf true, add 'Access-Control-Allow-Credentials' header.java.util.Set<java.lang.String>allowedHeadersThe value of 'Access-Control-Allow-Headers' response header.java.util.Set<java.lang.String>allowedOriginsThe value of 'Access-Control-Allow-Origin' header.java.util.Set<java.lang.String>exposedHeadersThe value of 'Access-Control-Expose-Headers' response header.intmaxAgeThe value of 'Access-Control-Max-Age' response header.
-
Constructor Summary
Constructors Constructor Description CorsResponseHelper()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddCorsResponseHeaders(org.restlet.Request request, org.restlet.Response response)Adds CORS headers to the given response.java.util.Set<java.lang.String>getAllowedHeaders()Returns the modifiable set of headers allowed by the actual request on the current resource.
Note that when used with HTTP connectors, this property maps to the "Access-Control-Allow-Headers" header.java.util.Set<java.lang.String>getAllowedOrigins()Returns the URI an origin server allows for the requested resource.java.util.Set<java.lang.String>getExposedHeaders()Returns a modifiable whitelist of headers an origin server allows for the requested resource.
Note that when used with HTTP connectors, this property maps to the "Access-Control-Expose-Headers" header.intgetMaxAge()Indicates how long (in seconds) the results of a preflight request can be cached in a preflight result cache.
In case of a negative value, the results of a preflight request is not meant to be cached.
Note that when used with HTTP connectors, this property maps to the "Access-Control-Max-Age" header.booleanisAllowAllRequestedHeaders()If true, indicates that the value of 'Access-Control-Request-Headers' request header will be copied into the 'Access-Control-Allow-Headers' response header.booleanisAllowedCredentials()If true, adds 'Access-Control-Allow-Credentials' header.booleanisCorsRequest(org.restlet.Request request)Returns true if the request is a CORS request.voidsetAllowAllRequestedHeaders(boolean allowAllRequestedHeaders)If true, copies the value of 'Access-Control-Request-Headers' request header into the 'Access-Control-Allow-Headers' response header.voidsetAllowedCredentials(boolean allowedCredentials)If true, adds 'Access-Control-Allow-Credentials' header.voidsetAllowedHeaders(java.util.Set<java.lang.String> allowedHeaders)Sets the value of the 'Access-Control-Allow-Headers' response header.voidsetAllowedOrigins(java.util.Set<java.lang.String> allowedOrigins)Sets the value of 'Access-Control-Allow-Origin' header.voidsetExposedHeaders(java.util.Set<java.lang.String> exposedHeaders)Sets the value of 'Access-Control-Expose-Headers' response header.voidsetMaxAge(int maxAge)Sets the value of 'Access-Control-Max-Age' response header.
In case of negative value, the header is not set.
-
-
-
Field Detail
-
allowAllRequestedHeaders
public boolean allowAllRequestedHeaders
If true, copies the value of 'Access-Control-Request-Headers' request header into the 'Access-Control-Allow-Headers' response header. If false, useallowedHeaders. Default is true.
-
allowedCredentials
public boolean allowedCredentials
If true, add 'Access-Control-Allow-Credentials' header. Default is false.
-
allowedHeaders
public java.util.Set<java.lang.String> allowedHeaders
The value of 'Access-Control-Allow-Headers' response header. Used only ifallowAllRequestedHeadersis false.
-
allowedOrigins
public java.util.Set<java.lang.String> allowedOrigins
The value of 'Access-Control-Allow-Origin' header. Default is '*'.
-
exposedHeaders
public java.util.Set<java.lang.String> exposedHeaders
The value of 'Access-Control-Expose-Headers' response header.
-
maxAge
public int maxAge
The value of 'Access-Control-Max-Age' response header. Default is that the header is not set.
-
-
Method Detail
-
addCorsResponseHeaders
public void addCorsResponseHeaders(org.restlet.Request request, org.restlet.Response response)Adds CORS headers to the given response.- Parameters:
request- The current request.response- The response.
-
getAllowedHeaders
public java.util.Set<java.lang.String> getAllowedHeaders()
Returns the modifiable set of headers allowed by the actual request on the current resource.
Note that when used with HTTP connectors, this property maps to the "Access-Control-Allow-Headers" header.- Returns:
- The set of headers allowed by the actual request on the current resource.
-
getAllowedOrigins
public java.util.Set<java.lang.String> getAllowedOrigins()
Returns the URI an origin server allows for the requested resource. Use "*" as a wildcard character.
Note that when used with HTTP connectors, this property maps to the "Access-Control-Allow-Origin" header.- Returns:
- The origin allowed by the requested resource.
-
getExposedHeaders
public java.util.Set<java.lang.String> getExposedHeaders()
Returns a modifiable whitelist of headers an origin server allows for the requested resource.
Note that when used with HTTP connectors, this property maps to the "Access-Control-Expose-Headers" header.- Returns:
- The set of headers an origin server allows for the requested resource.
-
getMaxAge
public int getMaxAge()
Indicates how long (in seconds) the results of a preflight request can be cached in a preflight result cache.
In case of a negative value, the results of a preflight request is not meant to be cached.
Note that when used with HTTP connectors, this property maps to the "Access-Control-Max-Age" header.- Returns:
- Indicates how long the results of a preflight request can be cached in a preflight result cache.
-
isAllowAllRequestedHeaders
public boolean isAllowAllRequestedHeaders()
If true, indicates that the value of 'Access-Control-Request-Headers' request header will be copied into the 'Access-Control-Allow-Headers' response header. If false, useallowedHeaders.
-
isAllowedCredentials
public boolean isAllowedCredentials()
If true, adds 'Access-Control-Allow-Credentials' header.- Returns:
- True, if the 'Access-Control-Allow-Credentials' header will be added.
-
isCorsRequest
public boolean isCorsRequest(org.restlet.Request request)
Returns true if the request is a CORS request.- Parameters:
request- The current request.- Returns:
- true if the request is a CORS request.
-
setAllowAllRequestedHeaders
public void setAllowAllRequestedHeaders(boolean allowAllRequestedHeaders)
If true, copies the value of 'Access-Control-Request-Headers' request header into the 'Access-Control-Allow-Headers' response header. If false, useallowedHeaders.- Parameters:
allowAllRequestedHeaders- True to copy the value of 'Access-Control-Request-Headers' request header into the 'Access-Control-Allow-Headers' response header. If false, useallowedHeaders.
-
setAllowedCredentials
public void setAllowedCredentials(boolean allowedCredentials)
If true, adds 'Access-Control-Allow-Credentials' header.- Parameters:
allowedCredentials- True to add the 'Access-Control-Allow-Credentials' header.
-
setAllowedHeaders
public void setAllowedHeaders(java.util.Set<java.lang.String> allowedHeaders)
Sets the value of the 'Access-Control-Allow-Headers' response header. Used only ifallowAllRequestedHeadersis false.- Parameters:
allowedHeaders- The value of 'Access-Control-Allow-Headers' response header.
-
setAllowedOrigins
public void setAllowedOrigins(java.util.Set<java.lang.String> allowedOrigins)
Sets the value of 'Access-Control-Allow-Origin' header.- Parameters:
allowedOrigins- The value of 'Access-Control-Allow-Origin' header.
-
setExposedHeaders
public void setExposedHeaders(java.util.Set<java.lang.String> exposedHeaders)
Sets the value of 'Access-Control-Expose-Headers' response header.- Parameters:
exposedHeaders- The value of 'Access-Control-Expose-Headers' response header.
-
setMaxAge
public void setMaxAge(int maxAge)
Sets the value of 'Access-Control-Max-Age' response header.
In case of negative value, the header is not set.- Parameters:
maxAge- The value of 'Access-Control-Max-Age' response header.
-
-