Class PathResourceManager
- java.lang.Object
-
- io.undertow.server.handlers.resource.PathResourceManager
-
- All Implemented Interfaces:
ResourceManager
,java.io.Closeable
,java.lang.AutoCloseable
- Direct Known Subclasses:
FileResourceManager
public class PathResourceManager extends java.lang.Object implements ResourceManager
Serves files from the file system.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PathResourceManager.Builder
static interface
PathResourceManager.ETagFunction
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
base
protected java.nio.file.FileSystem
fileSystem
-
Fields inherited from interface io.undertow.server.handlers.resource.ResourceManager
EMPTY_RESOURCE_MANAGER
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
PathResourceManager(long transferMinSize, boolean caseSensitive, boolean followLinks, boolean allowResourceChangeListeners, java.lang.String... safePaths)
protected
PathResourceManager(long transferMinSize, boolean caseSensitive, boolean followLinks, java.lang.String... safePaths)
PathResourceManager(java.nio.file.Path base)
PathResourceManager(java.nio.file.Path base, long transferMinSize)
PathResourceManager(java.nio.file.Path base, long transferMinSize, boolean caseSensitive)
PathResourceManager(java.nio.file.Path base, long transferMinSize, boolean caseSensitive, boolean followLinks, boolean allowResourceChangeListeners, java.lang.String... safePaths)
PathResourceManager(java.nio.file.Path base, long transferMinSize, boolean caseSensitive, boolean followLinks, java.lang.String... safePaths)
PathResourceManager(java.nio.file.Path base, long transferMinSize, boolean followLinks, java.lang.String... safePaths)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static PathResourceManager.Builder
builder()
void
close()
java.nio.file.Path
getBasePath()
protected PathResource
getFileResource(java.nio.file.Path file, java.lang.String path, java.nio.file.Path symlinkBase, java.lang.String normalizedFile)
Apply security check for case insensitive file systems.Resource
getResource(java.lang.String p)
Returns a resource for the given path.long
getTransferMinSize()
boolean
isResourceChangeListenerSupported()
void
registerResourceChangeListener(ResourceChangeListener listener)
Registers a resource change listener, if the underlying resource manager support itvoid
removeResourceChangeListener(ResourceChangeListener listener)
Removes a resource change listenerPathResourceManager
setBase(java.io.File base)
PathResourceManager
setBase(java.nio.file.Path base)
-
-
-
Constructor Detail
-
PathResourceManager
public PathResourceManager(java.nio.file.Path base)
-
PathResourceManager
public PathResourceManager(java.nio.file.Path base, long transferMinSize)
-
PathResourceManager
public PathResourceManager(java.nio.file.Path base, long transferMinSize, boolean caseSensitive)
-
PathResourceManager
public PathResourceManager(java.nio.file.Path base, long transferMinSize, boolean followLinks, java.lang.String... safePaths)
-
PathResourceManager
protected PathResourceManager(long transferMinSize, boolean caseSensitive, boolean followLinks, java.lang.String... safePaths)
-
PathResourceManager
protected PathResourceManager(long transferMinSize, boolean caseSensitive, boolean followLinks, boolean allowResourceChangeListeners, java.lang.String... safePaths)
-
PathResourceManager
public PathResourceManager(java.nio.file.Path base, long transferMinSize, boolean caseSensitive, boolean followLinks, java.lang.String... safePaths)
-
PathResourceManager
public PathResourceManager(java.nio.file.Path base, long transferMinSize, boolean caseSensitive, boolean followLinks, boolean allowResourceChangeListeners, java.lang.String... safePaths)
-
-
Method Detail
-
getBasePath
public java.nio.file.Path getBasePath()
-
setBase
public PathResourceManager setBase(java.nio.file.Path base)
-
setBase
public PathResourceManager setBase(java.io.File base)
-
getResource
public Resource getResource(java.lang.String p)
Description copied from interface:ResourceManager
Returns a resource for the given path. It is the responsibility of the called to make sure that the path in Canonicalised.- Specified by:
getResource
in interfaceResourceManager
- Parameters:
p
- The path- Returns:
- The resource representing the path, or null if no resource was found.
-
isResourceChangeListenerSupported
public boolean isResourceChangeListenerSupported()
- Specified by:
isResourceChangeListenerSupported
in interfaceResourceManager
- Returns:
true
if a resource change listener is supported
-
registerResourceChangeListener
public void registerResourceChangeListener(ResourceChangeListener listener)
Description copied from interface:ResourceManager
Registers a resource change listener, if the underlying resource manager support it- Specified by:
registerResourceChangeListener
in interfaceResourceManager
- Parameters:
listener
- The listener to register
-
removeResourceChangeListener
public void removeResourceChangeListener(ResourceChangeListener listener)
Description copied from interface:ResourceManager
Removes a resource change listener- Specified by:
removeResourceChangeListener
in interfaceResourceManager
-
getTransferMinSize
public long getTransferMinSize()
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Throws:
java.io.IOException
-
getFileResource
protected PathResource getFileResource(java.nio.file.Path file, java.lang.String path, java.nio.file.Path symlinkBase, java.lang.String normalizedFile) throws java.io.IOException
Apply security check for case insensitive file systems.- Throws:
java.io.IOException
-
builder
public static PathResourceManager.Builder builder()
-
-