Class ResourceTransformerSupport
- java.lang.Object
- org.springframework.web.reactive.resource.ResourceTransformerSupport
- All Implemented Interfaces:
ResourceTransformer
- Direct Known Subclasses:
AppCacheManifestTransformer,CssLinkResourceTransformer
public abstract class ResourceTransformerSupport extends Object implements ResourceTransformer
A base class for aResourceTransformerwith an optional helper method for resolving public links within a transformed resource.- Since:
- 5.0
- Author:
- Rossen Stoyanchev, Brian Clozel
Constructor Summary
Constructors Constructor Description ResourceTransformerSupport()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ResourceUrlProvidergetResourceUrlProvider()Return the configuredResourceUrlProvider.protected reactor.core.publisher.Mono<String>resolveUrlPath(String resourcePath, ServerWebExchange exchange, Resource resource, ResourceTransformerChain transformerChain)A transformer can use this method when a resource being transformed contains links to other resources.voidsetResourceUrlProvider(ResourceUrlProvider resourceUrlProvider)Configure aResourceUrlProviderto use when resolving the public URL of links in a transformed resource (e.g.protected StringtoAbsolutePath(String path, ServerWebExchange exchange)Transform the given relative request path to an absolute path, taking the path of the given request as a point of reference.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.web.reactive.resource.ResourceTransformer
transform
Constructor Detail
ResourceTransformerSupport
public ResourceTransformerSupport()
Method Detail
setResourceUrlProvider
public void setResourceUrlProvider(@Nullable ResourceUrlProvider resourceUrlProvider)
Configure aResourceUrlProviderto use when resolving the public URL of links in a transformed resource (e.g. import links in a CSS file). This is required only for links expressed as full paths and not for relative links.- Parameters:
resourceUrlProvider- the URL provider to use
getResourceUrlProvider
@Nullable public ResourceUrlProvider getResourceUrlProvider()
Return the configuredResourceUrlProvider.
resolveUrlPath
protected reactor.core.publisher.Mono<String> resolveUrlPath(String resourcePath, ServerWebExchange exchange, Resource resource, ResourceTransformerChain transformerChain)
A transformer can use this method when a resource being transformed contains links to other resources. Such links need to be replaced with the public facing link as determined by the resource resolver chain (e.g. the public URL may have a version inserted).- Parameters:
resourcePath- the path to a resource that needs to be re-writtenexchange- the current exchangeresource- the resource being transformedtransformerChain- the transformer chain- Returns:
- the resolved URL or an empty
Mono
toAbsolutePath
protected String toAbsolutePath(String path, ServerWebExchange exchange)
Transform the given relative request path to an absolute path, taking the path of the given request as a point of reference. The resulting path is also cleaned from sequences like "path/..".- Parameters:
path- the relative path to transformexchange- the current exchange- Returns:
- the absolute request path for the given resource path