Class StaticFiles.Builder
- Enclosing class:
StaticFiles
StaticFiles instances.- Author:
- Mark Allen
-
Method Summary
Modifier and TypeMethodDescriptionaccessResolver(@Nullable StaticFiles.AccessResolver accessResolver) Sets the resolver used to decide whether resolved files are served, denied, or hidden.build()Builds the static-file helper.cacheControlResolver(@Nullable StaticFiles.CacheControlResolver cacheControlResolver) Sets the resolver used to produceCache-Controlvalues.entityTagResolver(@Nullable StaticFiles.EntityTagResolver entityTagResolver) Sets the resolver used to produceETagvalues.followSymlinks(@Nullable Boolean followSymlinks) Sets whether symbolic links are followed while resolving static-file paths.headersResolver(@Nullable StaticFiles.HeadersResolver headersResolver) Sets the resolver used to produce extra response headers.indexFileNames(@Nullable List<@NonNull String> indexFileNames) Sets the index file names to try when a request path resolves to a directory.lastModifiedResolver(@Nullable StaticFiles.LastModifiedResolver lastModifiedResolver) Sets the resolver used to produceLast-Modifiedvalues.mimeTypeResolver(@Nullable MimeTypeResolver mimeTypeResolver) Sets the resolver used to produceContent-Typevalues.rangeRequestsResolver(@Nullable StaticFiles.RangeRequestsResolver rangeRequestsResolver) Sets the resolver used to decide whether byte range requests are honored.
-
Method Details
-
indexFileNames
Sets the index file names to try when a request path resolves to a directory.Names are tried in list order. Each name must be a single file name, not a path; blank names,
.,.., path separators, control characters, Windows drive paths, and UNC-style paths are rejected when the builder is built.- Parameters:
indexFileNames- the index file names, ornullfor no index files- Returns:
- this builder
-
mimeTypeResolver
Sets the resolver used to produceContent-Typevalues.The configured resolver fully replaces the default resolver. Soklet's default resolver uses a curated deterministic set of common web-asset extensions, returns
Optional.empty()for unknown extensions, and does not callFiles.probeContentType(Path). Applications that need OS-level MIME database behavior can configure a resolver that callsFiles.probeContentType(...)directly.- Parameters:
mimeTypeResolver- the resolver to use, ornullto restore the default resolver- Returns:
- this builder
-
entityTagResolver
public @NonNull StaticFiles.Builder entityTagResolver(@Nullable StaticFiles.EntityTagResolver entityTagResolver) Sets the resolver used to produceETagvalues.Passing
nullrestores the default weak metadata-based resolver.- Parameters:
entityTagResolver- the resolver to use, ornullto restore the default resolver- Returns:
- this builder
-
accessResolver
public @NonNull StaticFiles.Builder accessResolver(@Nullable StaticFiles.AccessResolver accessResolver) Sets the resolver used to decide whether resolved files are served, denied, or hidden.The access resolver runs after path safety, index-file resolution, symlink policy, readability, regular-file checks, and attribute reads, but before MIME, validator, cache-control, extra-header, and range-request resolvers. It receives the resolved file path, not the original request path.
- Parameters:
accessResolver- the resolver to use, ornullto restore the allow-all default- Returns:
- this builder
-
lastModifiedResolver
public @NonNull StaticFiles.Builder lastModifiedResolver(@Nullable StaticFiles.LastModifiedResolver lastModifiedResolver) Sets the resolver used to produceLast-Modifiedvalues.Passing
nullrestores the default resolver, which uses the file attributes read for the response.- Parameters:
lastModifiedResolver- the resolver to use, ornullto restore the default resolver- Returns:
- this builder
-
cacheControlResolver
public @NonNull StaticFiles.Builder cacheControlResolver(@Nullable StaticFiles.CacheControlResolver cacheControlResolver) Sets the resolver used to produceCache-Controlvalues.Passing
nullrestores the disabled resolver, which omitsCache-Control.- Parameters:
cacheControlResolver- the resolver to use, ornullto omitCache-Control- Returns:
- this builder
-
headersResolver
public @NonNull StaticFiles.Builder headersResolver(@Nullable StaticFiles.HeadersResolver headersResolver) Sets the resolver used to produce extra response headers.Passing
nullrestores the disabled resolver, which emits no extra headers.- Parameters:
headersResolver- the resolver to use, ornullto omit extra headers- Returns:
- this builder
-
rangeRequestsResolver
public @NonNull StaticFiles.Builder rangeRequestsResolver(@Nullable StaticFiles.RangeRequestsResolver rangeRequestsResolver) Sets the resolver used to decide whether byte range requests are honored.Passing
nullrestores the default resolver, which enables range requests.- Parameters:
rangeRequestsResolver- the resolver to use, ornullto enable range requests- Returns:
- this builder
-
followSymlinks
Sets whether symbolic links are followed while resolving static-file paths.Passing
nullrestores the default offalse. When disabled, any symbolic-link component under the static root causes the candidate path to be hidden.- Parameters:
followSymlinks-trueto follow symlinks,falseto reject them, ornullfor the default- Returns:
- this builder
-
build
Builds the static-file helper.The configured root is resolved to a real path and validated as a directory when this method is called.
- Returns:
- the configured static-file helper
-