Package io.micronaut.http.server.cors
Class CorsFilter
java.lang.Object
io.micronaut.http.server.cors.CorsFilter
- All Implemented Interfaces:
io.micronaut.core.order.Ordered,io.micronaut.http.filter.ConditionalFilter
@ServerFilter("/**")
public class CorsFilter
extends Object
implements io.micronaut.core.order.Ordered, io.micronaut.http.filter.ConditionalFilter
Responsible for handling CORS requests and responses.
- Since:
- 1.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intprotected final HttpServerConfiguration.CorsConfigurationFields inherited from interface io.micronaut.core.order.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
ConstructorsConstructorDescriptionCorsFilter(HttpServerConfiguration.CorsConfiguration corsConfiguration, @Nullable HttpHostResolver httpHostResolver) Deprecated, for removal: This API element is subject to removal in a future version.CorsFilter(HttpServerConfiguration.CorsConfiguration corsConfiguration, @Nullable HttpHostResolver httpHostResolver, io.micronaut.web.router.Router router) -
Method Summary
Modifier and TypeMethodDescriptionfinal @Nullable io.micronaut.http.HttpResponse<?>filterPreFlightRequest(io.micronaut.http.HttpRequest<?> request) final @Nullable io.micronaut.http.HttpResponse<?>filterRequest(io.micronaut.http.HttpRequest<?> request) final voidfilterResponse(io.micronaut.http.HttpRequest<?> request, io.micronaut.http.MutableHttpResponse<?> response) intgetOrder()booleanisEnabled(io.micronaut.http.HttpRequest<?> request) protected voidsetAllowCredentials(CorsOriginConfiguration config, io.micronaut.http.MutableHttpResponse<?> response) protected voidsetAllowHeaders(List<?> optionalAllowHeaders, io.micronaut.http.MutableHttpResponse<?> response) protected voidsetAllowMethods(io.micronaut.http.HttpMethod method, io.micronaut.http.MutableHttpResponse<?> response) protected voidsetAllowPrivateNetwork(CorsOriginConfiguration config, io.micronaut.http.MutableHttpResponse<?> response) Sets the HTTP Header "Access-Control-Allow-Private-Network" in the response totrue, if theCorsOriginConfiguration.isAllowPrivateNetwork()istrue.protected voidsetExposeHeaders(List<String> exposedHeaders, io.micronaut.http.MutableHttpResponse<?> response) protected voidsetMaxAge(long maxAge, io.micronaut.http.MutableHttpResponse<?> response) protected voidprotected voidsetVary(io.micronaut.http.MutableHttpResponse<?> response) protected booleanshouldDenyToPreventDriveByLocalhostAttack(@NonNull CorsOriginConfiguration corsOriginConfiguration, @NonNull io.micronaut.http.HttpRequest<?> request) protected booleanshouldDenyToPreventDriveByLocalhostAttack(@NonNull String origin, @NonNull io.micronaut.http.HttpRequest<?> request)
-
Field Details
-
CORS_FILTER_ORDER
public static final int CORS_FILTER_ORDER -
corsConfiguration
-
-
Constructor Details
-
CorsFilter
@Deprecated(since="4.7", forRemoval=true) public CorsFilter(HttpServerConfiguration.CorsConfiguration corsConfiguration, @Nullable @Nullable HttpHostResolver httpHostResolver) Deprecated, for removal: This API element is subject to removal in a future version.- Parameters:
corsConfiguration- TheCorsOriginConfigurationinstancehttpHostResolver- HTTP Host resolver
-
CorsFilter
@Inject public CorsFilter(HttpServerConfiguration.CorsConfiguration corsConfiguration, @Nullable @Nullable HttpHostResolver httpHostResolver, io.micronaut.web.router.Router router) - Parameters:
corsConfiguration- TheCorsOriginConfigurationinstancehttpHostResolver- HTTP Host resolver
-
-
Method Details
-
isEnabled
public boolean isEnabled(io.micronaut.http.HttpRequest<?> request) - Specified by:
isEnabledin interfaceio.micronaut.http.filter.ConditionalFilter
-
filterPreFlightRequest
@PreMatching @RequestFilter @Nullable @Internal public final @Nullable io.micronaut.http.HttpResponse<?> filterPreFlightRequest(io.micronaut.http.HttpRequest<?> request) -
filterRequest
@RequestFilter @Nullable @Internal public final @Nullable io.micronaut.http.HttpResponse<?> filterRequest(io.micronaut.http.HttpRequest<?> request) -
filterResponse
@ResponseFilter @Internal public final void filterResponse(io.micronaut.http.HttpRequest<?> request, io.micronaut.http.MutableHttpResponse<?> response) -
shouldDenyToPreventDriveByLocalhostAttack
protected boolean shouldDenyToPreventDriveByLocalhostAttack(@NonNull @NonNull CorsOriginConfiguration corsOriginConfiguration, @NonNull @NonNull io.micronaut.http.HttpRequest<?> request) - Parameters:
corsOriginConfiguration- CORS Origin configuration for request's HTTP Header origin.request- HTTP Request- Returns:
- true if the resolved host is localhost or 127.0.0.1 address and the CORS configuration has any for allowed origins.
-
shouldDenyToPreventDriveByLocalhostAttack
protected boolean shouldDenyToPreventDriveByLocalhostAttack(@NonNull @NonNull String origin, @NonNull @NonNull io.micronaut.http.HttpRequest<?> request) - Parameters:
origin- HTTP HeaderHttpHeaders.ORIGINvalue.request- HTTP Request- Returns:
- true if the resolved host is localhost or 127.0.0.1 and origin is not one of these then deny it.
-
getOrder
public int getOrder()- Specified by:
getOrderin interfaceio.micronaut.core.order.Ordered
-
setAllowCredentials
protected void setAllowCredentials(CorsOriginConfiguration config, io.micronaut.http.MutableHttpResponse<?> response) - Parameters:
config- TheCorsOriginConfigurationinstanceresponse- TheMutableHttpResponseobject
-
setAllowPrivateNetwork
protected void setAllowPrivateNetwork(CorsOriginConfiguration config, io.micronaut.http.MutableHttpResponse<?> response) Sets the HTTP Header "Access-Control-Allow-Private-Network" in the response totrue, if theCorsOriginConfiguration.isAllowPrivateNetwork()istrue.- Parameters:
config- TheCorsOriginConfigurationinstanceresponse- TheMutableHttpResponseobject
-
setExposeHeaders
protected void setExposeHeaders(List<String> exposedHeaders, io.micronaut.http.MutableHttpResponse<?> response) - Parameters:
exposedHeaders- A list of the exposed headersresponse- TheMutableHttpResponseobject
-
setVary
protected void setVary(io.micronaut.http.MutableHttpResponse<?> response) - Parameters:
response- TheMutableHttpResponseobject
-
setOrigin
protected void setOrigin(@Nullable @Nullable String origin, @NonNull @NonNull io.micronaut.http.MutableHttpResponse<?> response) - Parameters:
origin- The originresponse- TheMutableHttpResponseobject
-
setAllowMethods
protected void setAllowMethods(io.micronaut.http.HttpMethod method, io.micronaut.http.MutableHttpResponse<?> response) - Parameters:
method- TheHttpMethodobjectresponse- TheMutableHttpResponseobject
-
setAllowHeaders
protected void setAllowHeaders(List<?> optionalAllowHeaders, io.micronaut.http.MutableHttpResponse<?> response) - Parameters:
optionalAllowHeaders- A list with optional allow headersresponse- TheMutableHttpResponseobject
-
setMaxAge
protected void setMaxAge(long maxAge, io.micronaut.http.MutableHttpResponse<?> response) - Parameters:
maxAge- The max ageresponse- TheMutableHttpResponseobject
-
CorsFilter(io.micronaut.http.server.HttpServerConfiguration.CorsConfiguration,@io.micronaut.core.annotation.Nullable io.micronaut.http.server.util.HttpHostResolver,io.micronaut.web.router.Router)instead.