You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by nd...@apache.org on 2024/08/18 15:37:36 UTC
(tika) branch main updated: TIKA-4272: fix issue with ms graph fetcher config (#1905)
This is an automated email from the ASF dual-hosted git repository.
ndipiazza pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tika.git
The following commit(s) were added to refs/heads/main by this push:
new 6df3b42c4 TIKA-4272: fix issue with ms graph fetcher config (#1905)
6df3b42c4 is described below
commit 6df3b42c428a3fbcb5c216f5bc4961bd7936df1f
Author: Nicholas DiPiazza <ni...@lucidworks.com>
AuthorDate: Sun Aug 18 10:37:31 2024 -0500
TIKA-4272: fix issue with ms graph fetcher config (#1905)
* TIKA-4272: fix issue with ms graph fetcher config
* TIKA-4272: put back the shading
---------
Co-authored-by: Nicholas DiPiazza <nd...@apache.org>
---
.../tika-fetcher-microsoft-graph/pom.xml | 44 +++++++++++++---------
.../microsoftgraph/MicrosoftGraphFetcher.java | 10 ++---
.../config/AadCredentialConfigBase.java | 23 +++--------
.../config/ClientCertificateCredentialsConfig.java | 26 ++++++++++++-
.../config/ClientSecretCredentialsConfig.java | 26 ++++++++++++-
.../config/MicrosoftGraphFetcherConfig.java | 29 +++++++++-----
.../microsoftgraph/MicrosoftGraphFetcherTest.java | 7 ++--
7 files changed, 109 insertions(+), 56 deletions(-)
diff --git a/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/pom.xml b/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/pom.xml
index 8ea120051..af920202a 100644
--- a/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/pom.xml
+++ b/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/pom.xml
@@ -17,7 +17,8 @@
specific language governing permissions and limitations
under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>tika-fetchers</artifactId>
<groupId>org.apache.tika</groupId>
@@ -26,28 +27,32 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>tika-fetcher-microsoft-graph</artifactId>
- <name>Apache Tika Microsoft Graph Pipes Fetcher</name>
+ <name>Microsoft Graph Tika Pipes Fetcher</name>
<properties>
+ <maven.compiler.source>11</maven.compiler.source>
+ <maven.compiler.target>11</maven.compiler.target>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <azure-identity.version>1.13.2</azure-identity.version>
<microsoft-graph.version>6.13.0</microsoft-graph.version>
<microsoft-kiota-serialization-json.version>1.1.1</microsoft-kiota-serialization-json.version>
<wiremock.version>3.3.1</wiremock.version>
+ <mockito-junit-jupiter.version>5.12.0</mockito-junit-jupiter.version>
+ <nimbus-jose-jwt.version>9.40</nimbus-jose-jwt.version>
+ <msal4j.version>1.16.1</msal4j.version>
+ <kotlin-stdlib.version>1.9.25</kotlin-stdlib.version>
</properties>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
- <version>${azure.identity.version}</version>
+ <version>${azure-identity.version}</version>
<exclusions>
<exclusion>
<groupId>com.nimbusds</groupId>
<artifactId>nimbus-jose-jwt</artifactId>
</exclusion>
- <exclusion>
- <groupId>com.azure</groupId>
- <artifactId>azure-json</artifactId>
- </exclusion>
<exclusion>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
@@ -58,11 +63,6 @@
</exclusion>
</exclusions>
</dependency>
- <dependency>
- <groupId>com.azure</groupId>
- <artifactId>azure-json</artifactId>
- <version>${azure.json.version}</version>
- </dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>tika-core</artifactId>
@@ -87,6 +87,21 @@
</exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>com.nimbusds</groupId>
+ <artifactId>nimbus-jose-jwt</artifactId>
+ <version>${nimbus-jose-jwt.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.microsoft.azure</groupId>
+ <artifactId>msal4j</artifactId>
+ <version>${msal4j.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-stdlib</artifactId>
+ <version>${kotlin-stdlib.version}</version>
+ </dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
@@ -103,12 +118,7 @@
<version>${mockito-junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>com.nimbusds</groupId>
- <artifactId>nimbus-jose-jwt</artifactId>
- </dependency>
</dependencies>
-
<build>
<plugins>
<plugin>
diff --git a/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/MicrosoftGraphFetcher.java b/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/MicrosoftGraphFetcher.java
index 3c27795d3..6871a70b6 100644
--- a/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/MicrosoftGraphFetcher.java
+++ b/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/MicrosoftGraphFetcher.java
@@ -86,18 +86,16 @@ public class MicrosoftGraphFetcher extends AbstractFetcher implements Initializa
public void initialize(Map<String, Param> map) {
String[] scopes = microsoftGraphFetcherConfig
.getScopes().toArray(new String[0]);
- if (microsoftGraphFetcherConfig.getCredentials() instanceof ClientCertificateCredentialsConfig) {
- ClientCertificateCredentialsConfig credentials =
- (ClientCertificateCredentialsConfig) microsoftGraphFetcherConfig.getCredentials();
+ if (microsoftGraphFetcherConfig.getClientCertificateCredentialsConfig() != null) {
+ ClientCertificateCredentialsConfig credentials = microsoftGraphFetcherConfig.getClientCertificateCredentialsConfig();
graphClient = new GraphServiceClient(
new ClientCertificateCredentialBuilder().clientId(credentials.getClientId())
.tenantId(credentials.getTenantId()).pfxCertificate(
new ByteArrayInputStream(credentials.getCertificateBytes()))
.clientCertificatePassword(credentials.getCertificatePassword())
.build(), scopes);
- } else if (microsoftGraphFetcherConfig.getCredentials() instanceof ClientSecretCredentialsConfig) {
- ClientSecretCredentialsConfig credentials =
- (ClientSecretCredentialsConfig) microsoftGraphFetcherConfig.getCredentials();
+ } else if (microsoftGraphFetcherConfig.getClientSecretCredentialsConfig() != null) {
+ ClientSecretCredentialsConfig credentials = microsoftGraphFetcherConfig.getClientSecretCredentialsConfig();
graphClient = new GraphServiceClient(
new ClientSecretCredentialBuilder().tenantId(credentials.getTenantId())
.clientId(credentials.getClientId())
diff --git a/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/config/AadCredentialConfigBase.java b/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/config/AadCredentialConfigBase.java
index e4204739c..c4744c54c 100644
--- a/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/config/AadCredentialConfigBase.java
+++ b/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/config/AadCredentialConfigBase.java
@@ -16,25 +16,12 @@
*/
package org.apache.tika.pipes.fetchers.microsoftgraph.config;
-public abstract class AadCredentialConfigBase {
- private String tenantId;
- private String clientId;
+public interface AadCredentialConfigBase<T> {
+ String getTenantId();
- public String getTenantId() {
- return tenantId;
- }
+ T setTenantId(String tenantId);
- public AadCredentialConfigBase setTenantId(String tenantId) {
- this.tenantId = tenantId;
- return this;
- }
+ String getClientId();
- public String getClientId() {
- return clientId;
- }
-
- public AadCredentialConfigBase setClientId(String clientId) {
- this.clientId = clientId;
- return this;
- }
+ T setClientId(String clientId);
}
diff --git a/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/config/ClientCertificateCredentialsConfig.java b/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/config/ClientCertificateCredentialsConfig.java
index 2927519f1..0e57ca611 100644
--- a/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/config/ClientCertificateCredentialsConfig.java
+++ b/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/config/ClientCertificateCredentialsConfig.java
@@ -16,7 +16,9 @@
*/
package org.apache.tika.pipes.fetchers.microsoftgraph.config;
-public class ClientCertificateCredentialsConfig extends AadCredentialConfigBase {
+public class ClientCertificateCredentialsConfig implements AadCredentialConfigBase<ClientCertificateCredentialsConfig> {
+ private String clientId;
+ private String tenantId;
private byte[] certificateBytes;
private String certificatePassword;
@@ -37,4 +39,26 @@ public class ClientCertificateCredentialsConfig extends AadCredentialConfigBase
this.certificatePassword = certificatePassword;
return this;
}
+
+ @Override
+ public String getClientId() {
+ return clientId;
+ }
+
+ @Override
+ public ClientCertificateCredentialsConfig setClientId(String clientId) {
+ this.clientId = clientId;
+ return this;
+ }
+
+ @Override
+ public String getTenantId() {
+ return tenantId;
+ }
+
+ @Override
+ public ClientCertificateCredentialsConfig setTenantId(String tenantId) {
+ this.tenantId = tenantId;
+ return this;
+ }
}
diff --git a/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/config/ClientSecretCredentialsConfig.java b/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/config/ClientSecretCredentialsConfig.java
index 2989af941..bbe0e7638 100644
--- a/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/config/ClientSecretCredentialsConfig.java
+++ b/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/config/ClientSecretCredentialsConfig.java
@@ -16,7 +16,9 @@
*/
package org.apache.tika.pipes.fetchers.microsoftgraph.config;
-public class ClientSecretCredentialsConfig extends AadCredentialConfigBase {
+public class ClientSecretCredentialsConfig implements AadCredentialConfigBase<ClientSecretCredentialsConfig> {
+ private String clientId;
+ private String tenantId;
private String clientSecret;
public String getClientSecret() {
@@ -27,4 +29,26 @@ public class ClientSecretCredentialsConfig extends AadCredentialConfigBase {
this.clientSecret = clientSecret;
return this;
}
+
+ @Override
+ public String getClientId() {
+ return clientId;
+ }
+
+ @Override
+ public ClientSecretCredentialsConfig setClientId(String clientId) {
+ this.clientId = clientId;
+ return this;
+ }
+
+ @Override
+ public String getTenantId() {
+ return tenantId;
+ }
+
+ @Override
+ public ClientSecretCredentialsConfig setTenantId(String tenantId) {
+ this.tenantId = tenantId;
+ return this;
+ }
}
diff --git a/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/config/MicrosoftGraphFetcherConfig.java b/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/config/MicrosoftGraphFetcherConfig.java
index 04a43e000..495f83ba6 100644
--- a/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/config/MicrosoftGraphFetcherConfig.java
+++ b/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/main/java/org/apache/tika/pipes/fetchers/microsoftgraph/config/MicrosoftGraphFetcherConfig.java
@@ -24,8 +24,8 @@ import org.apache.tika.pipes.fetcher.config.AbstractConfig;
public class MicrosoftGraphFetcherConfig extends AbstractConfig {
private long[] throttleSeconds;
private boolean spoolToTemp;
- private AadCredentialConfigBase credentials;
-
+ private ClientSecretCredentialsConfig clientSecretCredentialsConfig;
+ private ClientCertificateCredentialsConfig clientCertificateCredentialsConfig;
private List<String> scopes = new ArrayList<>();
public boolean isSpoolToTemp() {
@@ -46,21 +46,30 @@ public class MicrosoftGraphFetcherConfig extends AbstractConfig {
return this;
}
- public AadCredentialConfigBase getCredentials() {
- return credentials;
+ public List<String> getScopes() {
+ return scopes;
}
- public MicrosoftGraphFetcherConfig setCredentials(AadCredentialConfigBase credentials) {
- this.credentials = credentials;
+ public MicrosoftGraphFetcherConfig setScopes(List<String> scopes) {
+ this.scopes = scopes;
return this;
}
- public List<String> getScopes() {
- return scopes;
+ public ClientSecretCredentialsConfig getClientSecretCredentialsConfig() {
+ return clientSecretCredentialsConfig;
}
- public MicrosoftGraphFetcherConfig setScopes(List<String> scopes) {
- this.scopes = scopes;
+ public MicrosoftGraphFetcherConfig setClientSecretCredentialsConfig(ClientSecretCredentialsConfig clientSecretCredentialsConfig) {
+ this.clientSecretCredentialsConfig = clientSecretCredentialsConfig;
+ return this;
+ }
+
+ public ClientCertificateCredentialsConfig getClientCertificateCredentialsConfig() {
+ return clientCertificateCredentialsConfig;
+ }
+
+ public MicrosoftGraphFetcherConfig setClientCertificateCredentialsConfig(ClientCertificateCredentialsConfig clientCertificateCredentialsConfig) {
+ this.clientCertificateCredentialsConfig = clientCertificateCredentialsConfig;
return this;
}
}
diff --git a/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/test/java/org/apache/tika/pipes/fetchers/microsoftgraph/MicrosoftGraphFetcherTest.java b/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/test/java/org/apache/tika/pipes/fetchers/microsoftgraph/MicrosoftGraphFetcherTest.java
index 3eb9ecf36..ea61f8724 100644
--- a/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/test/java/org/apache/tika/pipes/fetchers/microsoftgraph/MicrosoftGraphFetcherTest.java
+++ b/tika-pipes/tika-fetchers/tika-fetcher-microsoft-graph/src/test/java/org/apache/tika/pipes/fetchers/microsoftgraph/MicrosoftGraphFetcherTest.java
@@ -59,10 +59,11 @@ class MicrosoftGraphFetcherTest {
GraphServiceClient graphClient;
@Spy
@SuppressWarnings("unused")
- MicrosoftGraphFetcherConfig microsoftGraphFetcherConfig = new MicrosoftGraphFetcherConfig().setCredentials(
- new ClientCertificateCredentialsConfig().setCertificateBytes(certificateBytes)
+ MicrosoftGraphFetcherConfig microsoftGraphFetcherConfig = new MicrosoftGraphFetcherConfig()
+ .setClientCertificateCredentialsConfig(new ClientCertificateCredentialsConfig().setCertificateBytes(certificateBytes)
.setCertificatePassword(certificatePassword).setClientId(clientId)
- .setTenantId(tenantId)).setScopes(Collections.singletonList(".default"));
+ .setTenantId(tenantId))
+ .setScopes(Collections.singletonList(".default"));
@Mock
DrivesRequestBuilder drivesRequestBuilder;