Package org.ametys.cms.remote
Class RemoteURIResolver
- java.lang.Object
-
- org.ametys.cms.remote.RemoteURIResolver
-
- All Implemented Interfaces:
URIResolver
,Contextualizable
,Serviceable
- Direct Known Subclasses:
RemoteURIResolver
public class RemoteURIResolver extends Object implements URIResolver, Serviceable, Contextualizable
URIResolver
for type "remote".
This resolver is a proxy to another type to be called from remote url. The resolved uri are necessary absolutes.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
RemoteURIResolver.ProxiedUri
Proxied URI
-
Field Summary
Fields Modifier and Type Field Description private static Pattern
__URI_PATTERN
protected Context
_context
The contextprotected URIResolverExtensionPoint
_uriResolverEP
The ametys uri resolver
-
Constructor Summary
Constructors Constructor Description RemoteURIResolver()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ConsistencyChecker.CHECK
checkLink(String uri, boolean shortTest)
Tests if the URI is not broken.void
contextualize(Context context)
protected String
getAbsoluteRemoteUri(Request request, String resolvedUri)
Get the absolute proxied uriprotected String
getAbsoluteRemoteUriPrefix()
Get the absolute URI prefixI18nizableText
getLabel(String uri)
Get an URI label.protected RemoteURIResolver.ProxiedUri
getProxiedUri(String uri)
Get the proxied uriString
getType()
Returns the type of links handled by thisURIResolver
.protected String
getUriPrefix(Request request)
Get the URI prefix (non absolute) for resolved uriString
resolve(String uri, boolean download, boolean absolute, boolean internal)
Resolves a link URI for rendering purposes.
The output must be a properly encoded path, relative to the webapp context, accessible from a browser.String
resolveBoundedImage(String uri, int maxHeight, int maxWidth, boolean download, boolean absolute, boolean internal)
Resolves a link URI for rendering image.
The output must be a properly encoded path, relative to the webapp context, accessible from a browser.String
resolveBoundedImageAsBase64(String uri, int maxHeight, int maxWidth)
Resolve an image and return it as a base64-encoded string.String
resolveCroppedImage(String uri, int cropHeight, int cropWidth, boolean download, boolean absolute, boolean internal)
Resolves a link URI for rendering image.
The output must be a properly encoded path, relative to the webapp context, accessible from a browser.String
resolveCroppedImageAsBase64(String uri, int cropHeight, int cropWidth)
Resolve an image and return it as a base64-encoded string.String
resolveImage(String uri, int height, int width, boolean download, boolean absolute, boolean internal)
Resolves a link URI for rendering image.
The output must be a properly encoded path, relative to the webapp context, accessible from a browser.String
resolveImageAsBase64(String uri, int height, int width)
Resolve an image and return it as a base64-encoded string.void
service(ServiceManager manager)
-
-
-
Field Detail
-
__URI_PATTERN
private static final Pattern __URI_PATTERN
-
_uriResolverEP
protected URIResolverExtensionPoint _uriResolverEP
The ametys uri resolver
-
-
Constructor Detail
-
RemoteURIResolver
public RemoteURIResolver()
-
-
Method Detail
-
service
public void service(ServiceManager manager) throws ServiceException
- Specified by:
service
in interfaceServiceable
- Throws:
ServiceException
-
contextualize
public void contextualize(Context context) throws ContextException
- Specified by:
contextualize
in interfaceContextualizable
- Throws:
ContextException
-
getType
public String getType()
Description copied from interface:URIResolver
Returns the type of links handled by thisURIResolver
.- Specified by:
getType
in interfaceURIResolver
- Returns:
- the type of links handled by this
URIResolver
.
-
resolve
public String resolve(String uri, boolean download, boolean absolute, boolean internal)
Description copied from interface:URIResolver
Resolves a link URI for rendering purposes.
The output must be a properly encoded path, relative to the webapp context, accessible from a browser.- Specified by:
resolve
in interfaceURIResolver
- Parameters:
uri
- the link URI.download
- true if the pointed resource is to be downloaded.absolute
- true if the url must be absoluteinternal
- true to get an internal URI.- Returns:
- the path to the resource.
-
resolveImage
public String resolveImage(String uri, int height, int width, boolean download, boolean absolute, boolean internal)
Description copied from interface:URIResolver
Resolves a link URI for rendering image.
The output must be a properly encoded path, relative to the webapp context, accessible from a browser.- Specified by:
resolveImage
in interfaceURIResolver
- Parameters:
uri
- the link URI.height
- the height of the image.width
- the width of the imagedownload
- true if the pointed resource is to be downloaded.absolute
- true if the url must be absoluteinternal
- true to get an internal URI.- Returns:
- the path to the image.
-
resolveImageAsBase64
public String resolveImageAsBase64(String uri, int height, int width)
Description copied from interface:URIResolver
Resolve an image and return it as a base64-encoded string.- Specified by:
resolveImageAsBase64
in interfaceURIResolver
- Parameters:
uri
- the link URI.height
- the height of the image.width
- the width of the image- Returns:
- a base64-encoded string representing the image.
-
resolveBoundedImage
public String resolveBoundedImage(String uri, int maxHeight, int maxWidth, boolean download, boolean absolute, boolean internal)
Description copied from interface:URIResolver
Resolves a link URI for rendering image.
The output must be a properly encoded path, relative to the webapp context, accessible from a browser.- Specified by:
resolveBoundedImage
in interfaceURIResolver
- Parameters:
uri
- the link URI.maxHeight
- the max heightmaxWidth
- the max widthdownload
- true if the pointed resource is to be downloaded.absolute
- true if the url must be absoluteinternal
- true to get an internal URI.- Returns:
- the path to the image.
-
resolveBoundedImageAsBase64
public String resolveBoundedImageAsBase64(String uri, int maxHeight, int maxWidth)
Description copied from interface:URIResolver
Resolve an image and return it as a base64-encoded string.- Specified by:
resolveBoundedImageAsBase64
in interfaceURIResolver
- Parameters:
uri
- the link URI.maxHeight
- the max heightmaxWidth
- the max width- Returns:
- a base64-encoded string representing the image.
-
resolveCroppedImage
public String resolveCroppedImage(String uri, int cropHeight, int cropWidth, boolean download, boolean absolute, boolean internal)
Description copied from interface:URIResolver
Resolves a link URI for rendering image.
The output must be a properly encoded path, relative to the webapp context, accessible from a browser.- Specified by:
resolveCroppedImage
in interfaceURIResolver
- Parameters:
uri
- the link URI.cropHeight
- the crop heightcropWidth
- the crop widthdownload
- true if the pointed resource is to be downloaded.absolute
- true if the url must be absoluteinternal
- true to get an internal URI.- Returns:
- the path to the image.
-
resolveCroppedImageAsBase64
public String resolveCroppedImageAsBase64(String uri, int cropHeight, int cropWidth)
Description copied from interface:URIResolver
Resolve an image and return it as a base64-encoded string.- Specified by:
resolveCroppedImageAsBase64
in interfaceURIResolver
- Parameters:
uri
- the link URI.cropHeight
- the crop heightcropWidth
- the crop width- Returns:
- a base64-encoded string representing the image.
-
checkLink
public ConsistencyChecker.CHECK checkLink(String uri, boolean shortTest)
Description copied from interface:URIResolver
Tests if the URI is not broken.- Specified by:
checkLink
in interfaceURIResolver
- Parameters:
uri
- The uri to testshortTest
- If shortTest is to true, only fast check should be done. If false, complete test (even if long) should be done.- Returns:
- SUCCESS if the test was done and ok, FAILURE if the test was done and ko, UNKNOWN if the test was not done (because too long). UNKNOWN can not be returned when shortTest is set to false
-
getLabel
public I18nizableText getLabel(String uri)
Description copied from interface:URIResolver
Get an URI label.- Specified by:
getLabel
in interfaceURIResolver
- Parameters:
uri
- the uri which label to get.- Returns:
- the label.
-
getAbsoluteRemoteUri
protected String getAbsoluteRemoteUri(Request request, String resolvedUri)
Get the absolute proxied uri- Parameters:
request
- the requestresolvedUri
- the resolved uri- Returns:
- the absolute proxied url
-
getAbsoluteRemoteUriPrefix
protected String getAbsoluteRemoteUriPrefix()
Get the absolute URI prefix- Returns:
- the URI prefix
-
getUriPrefix
protected String getUriPrefix(Request request)
Get the URI prefix (non absolute) for resolved uri- Parameters:
request
- The request- Returns:
- the URI prefix
-
getProxiedUri
protected RemoteURIResolver.ProxiedUri getProxiedUri(String uri) throws IllegalArgumentException
Get the proxied uri- Parameters:
uri
- The requested uri- Returns:
- the proxied uri or null
- Throws:
IllegalArgumentException
- The uri does match the expected pattern
-
-