public abstract class AbstractHandlerMapping extends org.springframework.context.support.ApplicationObjectSupport implements HandlerMapping, org.springframework.core.Ordered, org.springframework.beans.factory.BeanNameAware
HandlerMapping
implementations.BEST_MATCHING_HANDLER_ATTRIBUTE, BEST_MATCHING_PATTERN_ATTRIBUTE, MATRIX_VARIABLES_ATTRIBUTE, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTE
Constructor and Description |
---|
AbstractHandlerMapping() |
Modifier and Type | Method and Description |
---|---|
protected String |
formatMappingName() |
protected org.springframework.web.cors.CorsConfiguration |
getCorsConfiguration(Object handler,
org.springframework.web.server.ServerWebExchange exchange)
Retrieve the CORS configuration for the given handler.
|
org.springframework.web.cors.reactive.CorsProcessor |
getCorsProcessor()
Return the configured
CorsProcessor . |
reactor.core.publisher.Mono<Object> |
getHandler(org.springframework.web.server.ServerWebExchange exchange)
Return a handler for this request.
|
protected abstract reactor.core.publisher.Mono<?> |
getHandlerInternal(org.springframework.web.server.ServerWebExchange exchange)
Look up a handler for the given request, returning an empty
Mono
if no specific one is found. |
int |
getOrder() |
org.springframework.web.util.pattern.PathPatternParser |
getPathPatternParser()
Return the
PathPatternParser instance that is used for
CORS configuration checks . |
void |
setBeanName(String name) |
void |
setCorsConfigurations(Map<String,org.springframework.web.cors.CorsConfiguration> corsConfigurations)
Set the "global" CORS configurations based on URL patterns.
|
void |
setCorsConfigurationSource(org.springframework.web.cors.reactive.CorsConfigurationSource corsConfigurationSource)
Set the "global" CORS configuration source.
|
void |
setCorsProcessor(org.springframework.web.cors.reactive.CorsProcessor corsProcessor)
Configure a custom
CorsProcessor to use to apply the matched
CorsConfiguration for a request. |
void |
setOrder(int order)
Specify the order value for this HandlerMapping bean.
|
void |
setUseCaseSensitiveMatch(boolean caseSensitiveMatch)
Shortcut method for setting the same property on the underlying pattern
parser in use.
|
void |
setUseTrailingSlashMatch(boolean trailingSlashMatch)
Shortcut method for setting the same property on the underlying pattern
parser in use.
|
public void setUseCaseSensitiveMatch(boolean caseSensitiveMatch)
getPathPatternParser()
-- the underlying pattern parser
PathPatternParser.setCaseSensitive(boolean)
-- the case
sensitive slash option, including its default value.
Note: aside from
public void setUseTrailingSlashMatch(boolean trailingSlashMatch)
getPathPatternParser()
-- the underlying pattern parser
PathPatternParser.setMatchOptionalTrailingSeparator(boolean)
--
the trailing slash option, including its default value.
public org.springframework.web.util.pattern.PathPatternParser getPathPatternParser()
PathPatternParser
instance that is used for
CORS configuration checks
.
Sub-classes can also use this pattern parser for their own request
mapping purposes.public void setCorsConfigurations(Map<String,org.springframework.web.cors.CorsConfiguration> corsConfigurations)
public void setCorsConfigurationSource(org.springframework.web.cors.reactive.CorsConfigurationSource corsConfigurationSource)
setCorsConfigurations(Map)
public void setCorsProcessor(org.springframework.web.cors.reactive.CorsProcessor corsProcessor)
CorsProcessor
to use to apply the matched
CorsConfiguration
for a request.
By default an instance of DefaultCorsProcessor
is used.
public org.springframework.web.cors.reactive.CorsProcessor getCorsProcessor()
CorsProcessor
.public void setOrder(int order)
The default value is Ordered.LOWEST_PRECEDENCE
, meaning non-ordered.
Ordered.getOrder()
public int getOrder()
getOrder
in interface org.springframework.core.Ordered
public void setBeanName(String name)
setBeanName
in interface org.springframework.beans.factory.BeanNameAware
protected String formatMappingName()
public reactor.core.publisher.Mono<Object> getHandler(org.springframework.web.server.ServerWebExchange exchange)
HandlerMapping
getHandler
in interface HandlerMapping
exchange
- current server exchangeMono
that emits one value or none in case the request
cannot be resolved to a handlerprotected abstract reactor.core.publisher.Mono<?> getHandlerInternal(org.springframework.web.server.ServerWebExchange exchange)
Mono
if no specific one is found. This method is called by getHandler(org.springframework.web.server.ServerWebExchange)
.
On CORS pre-flight requests this method should return a match not for the pre-flight request but for the expected actual request based on the URL path, the HTTP methods from the "Access-Control-Request-Method" header, and the headers from the "Access-Control-Request-Headers" header.
exchange
- current exchangeMono
for the matching handler, if any@Nullable protected org.springframework.web.cors.CorsConfiguration getCorsConfiguration(Object handler, org.springframework.web.server.ServerWebExchange exchange)
handler
- the handler to check (never null
)exchange
- the current exchangenull
if none