This is an automated email from the ASF dual-hosted git repository.

tballison pushed a commit to branch TIKA-4809-stage-6
in repository https://gitbox.apache.org/repos/asf/tika.git

commit 12db675137f3fa43c129a0e26e68966021b2a051
Merge: 26cbb1b346 0b84d33943
Author: tallison <[email protected]>
AuthorDate: Tue Aug 11 07:21:03 2026 -0400

    Merge remote-tracking branch 'origin/main' into TIKA-4809-stage-6

 .../ROOT/pages/using-tika/server/index.adoc        |  22 +--
 .../java/org/apache/tika/config/ServiceLoader.java |   9 +-
 .../charsoup/CharSoupMetadataFilter.java           |   8 +
 .../metadatafilter/OpenNLPMetadataFilter.java      |   8 +
 .../metadatafilter/OptimaizeMetadataFilter.java    |   8 +
 .../org/apache/tika/parser/mp3/ID3v2Frame.java     |  16 +-
 .../java/org/apache/tika/parser/mp4/MP4Parser.java |  30 +++-
 .../org/apache/tika/parser/mp4/TikaMp4Reader.java  | 149 ++++++++++++++++++
 .../tika/parser/mp4/TikaMp4SoundHandler.java       |  15 +-
 .../tika/parser/mp4/boxes/TikaUserDataBox.java     | 167 ++++++++++-----------
 .../org/apache/tika/parser/video/FLVParser.java    |  53 +++++--
 .../org/apache/tika/parser/mp3/ID3v2FrameTest.java |  13 ++
 .../org/apache/tika/parser/mp3/Mp3ParserTest.java  |  22 +++
 .../org/apache/tika/parser/mp4/MP4ParserTest.java  | 109 ++++++++++++++
 .../tika/parser/mp4/boxes/TikaUserDataBoxTest.java |  61 ++++++++
 .../apache/tika/parser/video/FLVParserTest.java    |  22 +++
 .../tika/serialization/ParseContextUtils.java      |  10 +-
 .../TestParseContextSerialization.java             |  16 ++
 .../org/apache/tika/server/core/TikaServerCli.java |   4 +-
 .../apache/tika/server/core/TikaServerConfig.java  |  64 +++-----
 .../apache/tika/server/core/TikaServerProcess.java | 115 ++++++++------
 .../main/resources/tika-server-config-default.xml  |  55 -------
 .../configs/cxf-unpack-test-template.json          |  10 +-
 23 files changed, 704 insertions(+), 282 deletions(-)

diff --cc docs/modules/ROOT/pages/using-tika/server/index.adoc
index fce09b30e5,8d054258f8..0ab7393434
--- a/docs/modules/ROOT/pages/using-tika/server/index.adoc
+++ b/docs/modules/ROOT/pages/using-tika/server/index.adoc
@@@ -311,18 -308,6 +308,10 @@@ Server behavior beyond host/port is con
  |`false`
  |Include parser stack traces in error responses. Useful in dev, dangerous in 
production (leaks internals).
  
 +|`maxRequestSizeBytes`
 +|`-1` (no limit)
 +|Maximum request body in bytes; larger requests are rejected with `413`. 
Enforced for chunked uploads too, not just those declaring a `Content-Length`. 
Uploads are spooled to disk, so leaving this unset lets a caller fill the temp 
directory.
 +
- |`digest`
- |`""` (off)
- |Compute a digest of the parsed bytes. Comma-separated algorithm names: 
`md5`, `sha1`, `sha256`, `sha384`, `sha512`.
- 
- |`digestMarkLimit`
- |`20971520` (20 MiB)
- |Max bytes buffered for digest computation.
- 
  |`logLevel`
  |_inherited_
  |`debug` or `info` to override the runtime log level.
diff --cc 
tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/TikaServerConfig.java
index b99f555d44,f17dbaa0e4..f56f5e7c3c
--- 
a/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/TikaServerConfig.java
+++ 
b/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/TikaServerConfig.java
@@@ -71,8 -69,7 +69,8 @@@ private long forkedProcessShutdownMilli
      private boolean allowPerRequestConfig = false;
      private String cors = "";
      private boolean returnStackTrace = false;
 +    private long maxRequestSizeBytes = -1;
-     private String idBase = UUID
+     private String id = UUID
              .randomUUID()
              .toString();
      private int port = DEFAULT_PORT;
@@@ -246,41 -240,6 +241,18 @@@
          this.configPath = Paths.get(path);
      }
  
-     public int getDigestMarkLimit() {
-         return digestMarkLimit;
-     }
- 
-     public void setDigestMarkLimit(int digestMarkLimit) {
-         this.digestMarkLimit = digestMarkLimit;
-     }
- 
-     /**
-      * digest configuration string, e.g. md5 or sha256, alternately w 16 or 
32 encoding,
-      * e.g. md5:32,sha256:16 would result in two digests per file
-      *
-      * @return
-      */
-     public String getDigest() {
-         return digest;
-     }
- 
-     public void setDigest(String digest) {
-         LOG.info("As of Tika 2.5.0, you can set the digester via the 
AutoDetectParserConfig in " + "tika-config.xml. We plan to remove this 
commandline option in 2.8.0");
-         this.digest = digest;
-     }
- 
 +    /**
 +     * Maximum request body in bytes. Negative (the default) means no limit; 
tika-server
 +     * spools uploads to disk, so an unbounded value lets a caller fill the 
temp directory.
 +     */
 +    public long getMaxRequestSizeBytes() {
 +        return maxRequestSizeBytes;
 +    }
 +
 +    public void setMaxRequestSizeBytes(long maxRequestSizeBytes) {
 +        this.maxRequestSizeBytes = maxRequestSizeBytes;
 +    }
 +
      public boolean isReturnStackTrace() {
          return returnStackTrace;
      }
diff --cc 
tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/TikaServerProcess.java
index ab9ff3df14,b5c39f2ad3..f8e655d28f
--- 
a/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/TikaServerProcess.java
+++ 
b/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/TikaServerProcess.java
@@@ -314,18 -345,13 +345,14 @@@ public class TikaServerProcess 
  
          // Add ConfigEndpointSecurityFilter to gate /config endpoints
          writers.add(new 
ConfigEndpointSecurityFilter(tikaServerConfig.isAllowPerRequestConfig()));
 +        writers.add(new 
MaxRequestSizeFilter(tikaServerConfig.getMaxRequestSizeBytes()));
  
+         // setRequestLogLevel rejects anything but debug/info, so no 
validation needed here.
          TikaLoggingFilter logFilter = null;
-         if (!StringUtils.isBlank(tikaServerConfig.getLogLevel())) {
-             String logLevel = tikaServerConfig.getLogLevel();
-             if (LOG_LEVELS.contains(logLevel)) {
-                 boolean isInfoLevel = "info".equals(logLevel);
-                 logFilter = new TikaLoggingFilter(isInfoLevel);
-                 writers.add(logFilter);
-             } else {
-                 LOG.warn("Unsupported request URI log level: {}", logLevel);
-             }
+         String requestLogLevel = tikaServerConfig.getRequestLogLevel();
+         if (!StringUtils.isBlank(requestLogLevel)) {
+             logFilter = new TikaLoggingFilter("info".equals(requestLogLevel));
+             writers.add(logFilter);
          }
  
          CrossOriginResourceSharingFilter corsFilter = null;

Reply via email to