This is an automated email from the ASF dual-hosted git repository. tallison pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tika.git
commit f9f73f47cab414e7071d07737588736c8d5de90d Author: tballison <[email protected]> AuthorDate: Mon Feb 1 10:41:24 2021 -0500 TIKA-3287 -- fix aes initialization --- .../tika/pipes/fetcher/http/HttpFetcher.java | 2 +- .../org/apache/tika/client/HttpClientFactory.java | 24 +++++++++++++--------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/tika-pipes/tika-fetchers/tika-fetcher-http/src/main/java/org/apache/tika/pipes/fetcher/http/HttpFetcher.java b/tika-pipes/tika-fetchers/tika-fetcher-http/src/main/java/org/apache/tika/pipes/fetcher/http/HttpFetcher.java index 75bd1a1..a6d2325 100644 --- a/tika-pipes/tika-fetchers/tika-fetcher-http/src/main/java/org/apache/tika/pipes/fetcher/http/HttpFetcher.java +++ b/tika-pipes/tika-fetchers/tika-fetcher-http/src/main/java/org/apache/tika/pipes/fetcher/http/HttpFetcher.java @@ -49,7 +49,7 @@ public class HttpFetcher extends AbstractFetcher implements Initializable { private HttpClientFactory httpClientFactory; private HttpClient httpClient; - public HttpFetcher() { + public HttpFetcher() throws TikaConfigException { httpClientFactory = new HttpClientFactory(); } @Override diff --git a/tika-pipes/tika-httpclient-commons/src/main/java/org/apache/tika/client/HttpClientFactory.java b/tika-pipes/tika-httpclient-commons/src/main/java/org/apache/tika/client/HttpClientFactory.java index eacb461..8cbc26b 100644 --- a/tika-pipes/tika-httpclient-commons/src/main/java/org/apache/tika/client/HttpClientFactory.java +++ b/tika-pipes/tika-httpclient-commons/src/main/java/org/apache/tika/client/HttpClientFactory.java @@ -86,9 +86,10 @@ import java.util.Set; */ public class HttpClientFactory { + public static final String AES_ENV_VAR = "AES_KEY"; private static final Logger LOG = LoggerFactory.getLogger(HttpClientFactory.class); - private AES aes; + private AES aes = null; private String proxyHost; private int proxyPort; @@ -105,6 +106,16 @@ public class HttpClientFactory { private String authScheme = "basic"; //ntlm or basic private boolean credentialsAESEncrypted = false; + + public HttpClientFactory() throws TikaConfigException { + if (credentialsAESEncrypted && System.getenv(AES_ENV_VAR) == null) { + throw new TikaConfigException( + "must specify aes key in the environment variable: " + AES_ENV_VAR); + } + if (credentialsAESEncrypted) { + aes = new AES(); + } + } public String getProxyHost() { return proxyHost; } @@ -305,15 +316,9 @@ public class HttpClientFactory { } private String decrypt(String encrypted) throws TikaConfigException { - if (! credentialsAESEncrypted) { + if (aes == null || encrypted == null) { return encrypted; } - if (encrypted == null) { - return encrypted; - } - if (aes == null) { - aes = new AES(); - } return aes.decrypt(encrypted); } @@ -397,8 +402,7 @@ public class HttpClientFactory { private byte[] key; private AES() throws TikaConfigException { - //TODO: clean this up -- potential race condition, etc... - secretKey = setKey(System.getenv("AES_KEY")); + secretKey = setKey(System.getenv(AES_ENV_VAR)); } private SecretKeySpec setKey(String myKey) throws TikaConfigException {
