diff --git a/nifi-commons/nifi-hashicorp-vault/pom.xml b/nifi-commons/nifi-hashicorp-vault/pom.xml
index 876ca8e7d68a..cbac36cf835f 100644
--- a/nifi-commons/nifi-hashicorp-vault/pom.xml
+++ b/nifi-commons/nifi-hashicorp-vault/pom.xml
@@ -21,7 +21,7 @@
nifi-hashicorp-vault
- 3.2.0
+ 4.0.0
@@ -55,10 +55,19 @@
nifi-utils
2.8.0-SNAPSHOT
+
+ org.slf4j
+ jcl-over-slf4j
+ provided
+
com.fasterxml.jackson.core
jackson-annotations
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
org.apache.nifi
nifi-security-utils-api
@@ -67,4 +76,3 @@
-
diff --git a/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/pom.xml b/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/pom.xml
index d159045197cb..0ca6988d41e2 100644
--- a/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/pom.xml
+++ b/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/pom.xml
@@ -25,7 +25,7 @@
nifi-email-processors
jar
- 6.5.4
+ 7.0.0
diff --git a/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/AbstractEmailProcessor.java b/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/AbstractEmailProcessor.java
index 63e55ae01a56..56de85925c4e 100644
--- a/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/AbstractEmailProcessor.java
+++ b/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/AbstractEmailProcessor.java
@@ -34,7 +34,11 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.support.StaticListableBeanFactory;
-import org.springframework.integration.mail.AbstractMailReceiver;
+import org.springframework.context.expression.BeanFactoryResolver;
+import org.springframework.expression.spel.support.StandardEvaluationContext;
+import org.springframework.integration.context.IntegrationContextUtils;
+import org.springframework.integration.mail.inbound.AbstractMailReceiver;
+import org.springframework.scheduling.concurrent.ConcurrentTaskScheduler;
import jakarta.mail.Address;
import jakarta.mail.Message;
@@ -320,8 +324,13 @@ private synchronized void initializeIfNecessary(ProcessContext context, ProcessS
this.messageReceiver.setMaxFetchSize(fetchSize);
this.messageReceiver.setJavaMailProperties(this.buildJavaMailProperties(context));
- // need to avoid spring warning messages
- this.messageReceiver.setBeanFactory(new StaticListableBeanFactory());
+ // Spring Integration 7 expects an evaluation context bean; register a lightweight one for the receiver
+ final StaticListableBeanFactory beanFactory = new StaticListableBeanFactory();
+ final StandardEvaluationContext evaluationContext = new StandardEvaluationContext();
+ evaluationContext.setBeanResolver(new BeanFactoryResolver(beanFactory));
+ beanFactory.addBean(IntegrationContextUtils.INTEGRATION_EVALUATION_CONTEXT_BEAN_NAME, evaluationContext);
+ beanFactory.addBean(IntegrationContextUtils.TASK_SCHEDULER_BEAN_NAME, new ConcurrentTaskScheduler());
+ this.messageReceiver.setBeanFactory(beanFactory);
this.messageReceiver.afterPropertiesSet();
this.messageQueue = new ArrayBlockingQueue<>(fetchSize);
diff --git a/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ConsumeIMAP.java b/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ConsumeIMAP.java
index 4ed00b95f314..0c9c23f01cce 100644
--- a/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ConsumeIMAP.java
+++ b/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ConsumeIMAP.java
@@ -26,7 +26,7 @@
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.util.StandardValidators;
-import org.springframework.integration.mail.ImapMailReceiver;
+import org.springframework.integration.mail.inbound.ImapMailReceiver;
@InputRequirement(Requirement.INPUT_FORBIDDEN)
@CapabilityDescription("Consumes messages from Email Server using IMAP protocol. "
diff --git a/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ConsumePOP3.java b/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ConsumePOP3.java
index 270c9480e94e..aca77b23040d 100644
--- a/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ConsumePOP3.java
+++ b/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ConsumePOP3.java
@@ -24,7 +24,7 @@
import org.apache.nifi.annotation.documentation.Tags;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.processor.ProcessContext;
-import org.springframework.integration.mail.Pop3MailReceiver;
+import org.springframework.integration.mail.inbound.Pop3MailReceiver;
@InputRequirement(Requirement.INPUT_FORBIDDEN)
@CapabilityDescription("Consumes messages from Email Server using POP3 protocol. "
diff --git a/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/src/test/java/org/apache/nifi/processors/email/TestConsumeEmail.java b/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/src/test/java/org/apache/nifi/processors/email/TestConsumeEmail.java
index 65f502e45e8c..2a2d7613c2b3 100644
--- a/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/src/test/java/org/apache/nifi/processors/email/TestConsumeEmail.java
+++ b/nifi-extension-bundles/nifi-email-bundle/nifi-email-processors/src/test/java/org/apache/nifi/processors/email/TestConsumeEmail.java
@@ -26,7 +26,7 @@
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.springframework.integration.mail.AbstractMailReceiver;
+import org.springframework.integration.mail.inbound.AbstractMailReceiver;
import jakarta.mail.Message;
import jakarta.mail.MessagingException;
diff --git a/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/test/java/org/apache/nifi/redis/testcontainers/RedisContainer.java b/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/test/java/org/apache/nifi/redis/testcontainers/RedisContainer.java
index 285c1059f49d..3fde902ca23d 100644
--- a/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/test/java/org/apache/nifi/redis/testcontainers/RedisContainer.java
+++ b/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/test/java/org/apache/nifi/redis/testcontainers/RedisContainer.java
@@ -16,8 +16,8 @@
*/
package org.apache.nifi.redis.testcontainers;
-import org.springframework.lang.NonNull;
-import org.springframework.lang.Nullable;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.utility.DockerImageName;
import org.testcontainers.utility.MountableFile;
diff --git a/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/test/java/org/apache/nifi/redis/testcontainers/RedisReplicaContainer.java b/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/test/java/org/apache/nifi/redis/testcontainers/RedisReplicaContainer.java
index c9c5061fdc06..70af427ca43d 100644
--- a/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/test/java/org/apache/nifi/redis/testcontainers/RedisReplicaContainer.java
+++ b/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/test/java/org/apache/nifi/redis/testcontainers/RedisReplicaContainer.java
@@ -16,7 +16,7 @@
*/
package org.apache.nifi.redis.testcontainers;
-import org.springframework.lang.NonNull;
+import org.jspecify.annotations.NonNull;
import org.testcontainers.utility.DockerImageName;
public class RedisReplicaContainer extends RedisContainer {
diff --git a/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/test/java/org/apache/nifi/redis/testcontainers/RedisSentinelContainer.java b/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/test/java/org/apache/nifi/redis/testcontainers/RedisSentinelContainer.java
index 1fe7815a2a0c..64ccaa8a4970 100644
--- a/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/test/java/org/apache/nifi/redis/testcontainers/RedisSentinelContainer.java
+++ b/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/test/java/org/apache/nifi/redis/testcontainers/RedisSentinelContainer.java
@@ -16,8 +16,8 @@
*/
package org.apache.nifi.redis.testcontainers;
-import org.springframework.lang.NonNull;
-import org.springframework.lang.Nullable;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
import org.testcontainers.utility.DockerImageName;
import java.util.ArrayList;
diff --git a/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-utils/src/main/java/org/apache/nifi/redis/util/RedisUtils.java b/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-utils/src/main/java/org/apache/nifi/redis/util/RedisUtils.java
index a66c9f2d7a69..0cf700ab8dad 100644
--- a/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-utils/src/main/java/org/apache/nifi/redis/util/RedisUtils.java
+++ b/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-utils/src/main/java/org/apache/nifi/redis/util/RedisUtils.java
@@ -43,7 +43,7 @@
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.stream.StreamMessageListenerContainer;
-import org.springframework.lang.Nullable;
+import org.jspecify.annotations.Nullable;
import redis.clients.jedis.JedisPoolConfig;
import javax.net.ssl.SSLContext;
diff --git a/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/framework/configuration/FrameworkClusterConfiguration.java b/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/framework/configuration/FrameworkClusterConfiguration.java
index ad4ded63217b..4e94484bde38 100644
--- a/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/framework/configuration/FrameworkClusterConfiguration.java
+++ b/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/framework/configuration/FrameworkClusterConfiguration.java
@@ -69,7 +69,7 @@ public void setEventReporter(final EventReporter eventReporter) {
this.eventReporter = eventReporter;
}
- @Autowired
+ @Autowired(required = false)
public void setClusterCoordinator(final ClusterCoordinator clusterCoordinator) {
this.clusterCoordinator = clusterCoordinator;
}
diff --git a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml
index 8cad4ba440c6..0723bcb2e043 100644
--- a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml
+++ b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml
@@ -265,11 +265,6 @@
io.prometheus
simpleclient_common
-
- org.springframework
- spring-jcl
- provided
-
org.glassfish.jersey.core
jersey-common
diff --git a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
index 6cb0c7dc83de..01fa75612004 100644
--- a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
+++ b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
@@ -7387,7 +7387,7 @@ public void setAccessPolicyDAO(final AccessPolicyDAO accessPolicyDAO) {
this.accessPolicyDAO = accessPolicyDAO;
}
- @Autowired
+ @Autowired(required = false)
public void setClusterCoordinator(final ClusterCoordinator coordinator) {
this.clusterCoordinator = coordinator;
}
diff --git a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/NiFiAuthenticationRequestToken.java b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/NiFiAuthenticationRequestToken.java
index d05117fa1aa5..e168e3187c63 100644
--- a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/NiFiAuthenticationRequestToken.java
+++ b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/NiFiAuthenticationRequestToken.java
@@ -16,6 +16,8 @@
*/
package org.apache.nifi.web.security;
+import java.util.Collections;
+
import org.springframework.security.authentication.AbstractAuthenticationToken;
/**
@@ -30,7 +32,7 @@ public abstract class NiFiAuthenticationRequestToken extends AbstractAuthenticat
* @param authenticationDetails The authentication details of the client making the request
*/
public NiFiAuthenticationRequestToken(final String clientAddress, final Object authenticationDetails) {
- super(null);
+ super(Collections.emptyList());
setAuthenticated(false);
setDetails(authenticationDetails);
this.clientAddress = clientAddress;
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-framework/pom.xml b/nifi-registry/nifi-registry-core/nifi-registry-framework/pom.xml
index 3c51f81341b5..6ea924fce6f4 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-framework/pom.xml
+++ b/nifi-registry/nifi-registry-core/nifi-registry-framework/pom.xml
@@ -244,7 +244,7 @@
org.springframework.ldap
spring-ldap-core
- 3.3.5
+ 4.0.0
org.springframework.security
@@ -310,6 +310,11 @@
spring-boot-starter-validation
${spring.boot.version}
+
+ org.springframework.boot
+ spring-boot-flyway
+ ${spring.boot.version}
+
org.flywaydb
flyway-core
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/CustomFlywayConfiguration.java b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/CustomFlywayConfiguration.java
index d21046f9bdc9..9b29858f0a35 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/CustomFlywayConfiguration.java
+++ b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/CustomFlywayConfiguration.java
@@ -26,7 +26,7 @@
import org.flywaydb.database.postgresql.PostgreSQLDatabaseType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.boot.autoconfigure.flyway.FlywayConfigurationCustomizer;
+import org.springframework.boot.flyway.autoconfigure.FlywayConfigurationCustomizer;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/CustomFlywayMigrationStrategy.java b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/CustomFlywayMigrationStrategy.java
index 4dc74157ec88..9cc7cf8b2450 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/CustomFlywayMigrationStrategy.java
+++ b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/CustomFlywayMigrationStrategy.java
@@ -30,7 +30,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.flyway.FlywayMigrationStrategy;
+import org.springframework.boot.flyway.autoconfigure.FlywayMigrationStrategy;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/BucketEntityRowMapper.java b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/BucketEntityRowMapper.java
index 5bda0a8252cb..acd3162ff2ce 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/BucketEntityRowMapper.java
+++ b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/BucketEntityRowMapper.java
@@ -18,7 +18,7 @@
import org.apache.nifi.registry.db.entity.BucketEntity;
import org.springframework.jdbc.core.RowMapper;
-import org.springframework.lang.Nullable;
+import org.jspecify.annotations.Nullable;
import java.sql.ResultSet;
import java.sql.SQLException;
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/BucketItemEntityRowMapper.java b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/BucketItemEntityRowMapper.java
index 449587973436..2d2fe1840f12 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/BucketItemEntityRowMapper.java
+++ b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/BucketItemEntityRowMapper.java
@@ -22,7 +22,7 @@
import org.apache.nifi.registry.db.entity.FlowEntity;
import org.apache.nifi.registry.extension.bundle.BundleType;
import org.springframework.jdbc.core.RowMapper;
-import org.springframework.lang.Nullable;
+import org.jspecify.annotations.Nullable;
import java.sql.ResultSet;
import java.sql.SQLException;
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/FlowEntityRowMapper.java b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/FlowEntityRowMapper.java
index acaf343175bb..2dfbc38fefc9 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/FlowEntityRowMapper.java
+++ b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/FlowEntityRowMapper.java
@@ -19,7 +19,7 @@
import org.apache.nifi.registry.db.entity.BucketItemEntityType;
import org.apache.nifi.registry.db.entity.FlowEntity;
import org.springframework.jdbc.core.RowMapper;
-import org.springframework.lang.Nullable;
+import org.jspecify.annotations.Nullable;
import java.sql.ResultSet;
import java.sql.SQLException;
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/FlowSnapshotEntityRowMapper.java b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/FlowSnapshotEntityRowMapper.java
index 07a59b347a08..ad5fd87b84ac 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/FlowSnapshotEntityRowMapper.java
+++ b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/FlowSnapshotEntityRowMapper.java
@@ -18,7 +18,7 @@
import org.apache.nifi.registry.db.entity.FlowSnapshotEntity;
import org.springframework.jdbc.core.RowMapper;
-import org.springframework.lang.Nullable;
+import org.jspecify.annotations.Nullable;
import java.sql.ResultSet;
import java.sql.SQLException;
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/KeyEntityRowMapper.java b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/KeyEntityRowMapper.java
index 6e190a5744ab..56421e50cf00 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/KeyEntityRowMapper.java
+++ b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/mapper/KeyEntityRowMapper.java
@@ -18,7 +18,7 @@
import org.apache.nifi.registry.db.entity.KeyEntity;
import org.springframework.jdbc.core.RowMapper;
-import org.springframework.lang.Nullable;
+import org.jspecify.annotations.Nullable;
import java.sql.ResultSet;
import java.sql.SQLException;
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-jetty/pom.xml b/nifi-registry/nifi-registry-core/nifi-registry-jetty/pom.xml
index e96296ff0288..dc5d9fd17576 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-jetty/pom.xml
+++ b/nifi-registry/nifi-registry-core/nifi-registry-jetty/pom.xml
@@ -59,32 +59,32 @@
jetty-server
- org.eclipse.jetty.ee10
- jetty-ee10-servlet
+ org.eclipse.jetty.ee11
+ jetty-ee11-servlet
- org.eclipse.jetty.ee10
- jetty-ee10-webapp
+ org.eclipse.jetty.ee11
+ jetty-ee11-webapp
- org.eclipse.jetty.ee10
- jetty-ee10-servlets
+ org.eclipse.jetty.ee11
+ jetty-ee11-servlets
- org.eclipse.jetty.ee10
- jetty-ee10-annotations
+ org.eclipse.jetty.ee11
+ jetty-ee11-annotations
- org.eclipse.jetty.ee10
- jetty-ee10-glassfish-jstl
+ org.eclipse.jetty.ee11
+ jetty-ee11-glassfish-jstl
org.apache.commons
commons-lang3
- org.eclipse.jetty.ee10
- jetty-ee10-apache-jsp
+ org.eclipse.jetty.ee11
+ jetty-ee11-apache-jsp
org.mortbay.jasper
@@ -101,11 +101,13 @@
org.mortbay.jasper
mortbay-apache-jsp
+ 11.0.10.1
compile
org.mortbay.jasper
mortbay-apache-el
+ 11.0.10.1
compile
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-jetty/src/main/java/org/apache/nifi/registry/jetty/handler/StandardHandlerProvider.java b/nifi-registry/nifi-registry-core/nifi-registry-jetty/src/main/java/org/apache/nifi/registry/jetty/handler/StandardHandlerProvider.java
index 3eeee8870e00..052e194063ea 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-jetty/src/main/java/org/apache/nifi/registry/jetty/handler/StandardHandlerProvider.java
+++ b/nifi-registry/nifi-registry-core/nifi-registry-jetty/src/main/java/org/apache/nifi/registry/jetty/handler/StandardHandlerProvider.java
@@ -18,14 +18,14 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.nifi.registry.properties.NiFiRegistryProperties;
-import org.eclipse.jetty.ee10.webapp.MetaInfConfiguration;
+import org.eclipse.jetty.ee11.webapp.MetaInfConfiguration;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
-import org.eclipse.jetty.ee10.servlet.DefaultServlet;
-import org.eclipse.jetty.ee10.servlet.ErrorPageErrorHandler;
-import org.eclipse.jetty.ee10.servlet.ServletHolder;
+import org.eclipse.jetty.ee11.servlet.DefaultServlet;
+import org.eclipse.jetty.ee11.servlet.ErrorPageErrorHandler;
+import org.eclipse.jetty.ee11.servlet.ServletHolder;
import org.eclipse.jetty.ee.webapp.WebAppClassLoader;
-import org.eclipse.jetty.ee10.webapp.WebAppContext;
+import org.eclipse.jetty.ee11.webapp.WebAppContext;
import java.io.File;
import java.io.IOException;
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-spring-jdbc/pom.xml b/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-spring-jdbc/pom.xml
index a95a23cbb26e..f1456912478f 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-spring-jdbc/pom.xml
+++ b/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-spring-jdbc/pom.xml
@@ -62,5 +62,10 @@
jackson-databind
test
+
+ org.slf4j
+ jcl-over-slf4j
+ test
+
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-test/pom.xml b/nifi-registry/nifi-registry-core/nifi-registry-test/pom.xml
index 76003eed9af9..e0c80e278ad4 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-test/pom.xml
+++ b/nifi-registry/nifi-registry-core/nifi-registry-test/pom.xml
@@ -42,6 +42,11 @@
+
+ org.springframework.boot
+ spring-boot-jdbc
+ ${spring.boot.version}
+
org.testcontainers
testcontainers
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-test/src/main/java/org/apache/nifi/registry/db/DatabaseProfileValueSource.java b/nifi-registry/nifi-registry-core/nifi-registry-test/src/main/java/org/apache/nifi/registry/db/DatabaseProfileValueSource.java
index 1a9e5d9ba9b1..74071e30b1bc 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-test/src/main/java/org/apache/nifi/registry/db/DatabaseProfileValueSource.java
+++ b/nifi-registry/nifi-registry-core/nifi-registry-test/src/main/java/org/apache/nifi/registry/db/DatabaseProfileValueSource.java
@@ -36,17 +36,11 @@ public class DatabaseProfileValueSource implements ProfileValueSource {
private String currentDatabase;
DatabaseProfileValueSource() {
- final String activeProfiles = System.getProperty("spring.profiles.active", H2);
+ currentDatabase = resolveCurrentDatabase();
+ }
- if (activeProfiles.contains(H2)) {
- currentDatabase = H2;
- } else if (activeProfiles.contains(MYSQL)) {
- currentDatabase = MYSQL;
- } else if (activeProfiles.contains(MARIADB)) {
- currentDatabase = MARIADB;
- } else if (activeProfiles.contains(POSTGRES)) {
- currentDatabase = POSTGRES;
- }
+ public static boolean isDatabase(final String database) {
+ return resolveCurrentDatabase().equalsIgnoreCase(database);
}
@Override
@@ -59,4 +53,20 @@ public String get(String key) {
}
return Boolean.toString(key.endsWith(currentDatabase)).toLowerCase();
}
+
+ private static String resolveCurrentDatabase() {
+ final String activeProfiles = System.getProperty("spring.profiles.active", H2);
+
+ if (activeProfiles.contains(H2)) {
+ return H2;
+ } else if (activeProfiles.contains(MYSQL)) {
+ return MYSQL;
+ } else if (activeProfiles.contains(MARIADB)) {
+ return MARIADB;
+ } else if (activeProfiles.contains(POSTGRES)) {
+ return POSTGRES;
+ }
+
+ return H2;
+ }
}
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-web-api/pom.xml b/nifi-registry/nifi-registry-core/nifi-registry-web-api/pom.xml
index 2db81d0e635e..9271c775e6c1 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-web-api/pom.xml
+++ b/nifi-registry/nifi-registry-core/nifi-registry-web-api/pom.xml
@@ -167,6 +167,10 @@
org.springframework.boot
spring-boot-starter-logging
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
@@ -180,8 +184,17 @@
org.springframework
spring-aop
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+ org.springframework.boot
+ spring-boot-starter-jetty
+ ${spring.boot.version}
+
org.springframework.boot
@@ -209,13 +222,6 @@
-
-
- org.springframework.boot
- spring-boot-starter-tomcat
- ${spring.boot.version}
- provided
-
org.slf4j
slf4j-api
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/NiFiRegistryApiApplication.java b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/NiFiRegistryApiApplication.java
index 14cc33b48c3b..9c31f14200c6 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/NiFiRegistryApiApplication.java
+++ b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/NiFiRegistryApiApplication.java
@@ -24,7 +24,6 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.boot.logging.LoggingSystem;
@@ -44,11 +43,7 @@
*
* WebMvcAutoConfiguration is excluded because our web app is using Jersey in place of SpringMVC
*/
-@EnableAutoConfiguration(
- exclude = {
- ElasticsearchRestClientAutoConfiguration.class
- }
-)
+@EnableAutoConfiguration
@SpringBootApplication
public class NiFiRegistryApiApplication extends SpringBootServletInitializer {
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/AccessResource.java b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/AccessResource.java
index 9f612cfe786b..cf9f015d82a6 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/AccessResource.java
+++ b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/api/AccessResource.java
@@ -78,7 +78,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.lang.Nullable;
+import jakarta.annotation.Nullable;
import org.springframework.stereotype.Component;
import javax.net.ssl.SSLContext;
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/security/NiFiRegistrySecurityConfig.java b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/security/NiFiRegistrySecurityConfig.java
index 8f52c19b7080..3dce92e596a2 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/security/NiFiRegistrySecurityConfig.java
+++ b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/security/NiFiRegistrySecurityConfig.java
@@ -109,7 +109,7 @@ public SecurityFilterChain securityFilterChain(final HttpSecurity http) throws E
.httpStrictTransportSecurity(hstsConfig -> hstsConfig.maxAgeInSeconds(31540000))
.frameOptions(HeadersConfigurer.FrameOptionsConfig::sameOrigin)
)
- .authorizeRequests((authorize) -> authorize
+ .authorizeHttpRequests(authorize -> authorize
.requestMatchers(
PathPatternRequestMatcher.withDefaults().matcher("/access/token"),
PathPatternRequestMatcher.withDefaults().matcher("/access/token/identity-provider"),
@@ -134,7 +134,7 @@ public AuthenticationManager authenticationManager() {
}
private IdentityFilter x509AuthenticationFilter() {
- return new IdentityFilter(x509IdentityProvider);
+ return new IdentityFilter(x509IdentityProvider, authenticationManager());
}
private IdentityAuthenticationProvider x509AuthenticationProvider() {
@@ -142,7 +142,7 @@ private IdentityAuthenticationProvider x509AuthenticationProvider() {
}
private IdentityFilter jwtAuthenticationFilter() {
- return new IdentityFilter(jwtIdentityProvider);
+ return new IdentityFilter(jwtIdentityProvider, authenticationManager());
}
private IdentityAuthenticationProvider jwtAuthenticationProvider() {
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/security/authentication/IdentityFilter.java b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/security/authentication/IdentityFilter.java
index 8c02a0fd7da1..a40fc3d235ac 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/security/authentication/IdentityFilter.java
+++ b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/security/authentication/IdentityFilter.java
@@ -20,7 +20,9 @@
import org.apache.nifi.registry.security.authentication.IdentityProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.core.Authentication;
+import org.springframework.security.core.AuthenticationException;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.filter.GenericFilterBean;
@@ -35,16 +37,18 @@
* A class that will extract an identity / credentials claim from an HttpServlet Request using an injected IdentityProvider.
*
* This class is designed to be used in collaboration with an {@link IdentityAuthenticationProvider}. The identity/credentials will be
- * extracted by this filter and later validated by the {@link IdentityAuthenticationProvider} in the default SecurityInterceptorFilter.
+ * extracted by this filter and validated by the {@link IdentityAuthenticationProvider} via the {@link AuthenticationManager}.
*/
public class IdentityFilter extends GenericFilterBean {
private static final Logger logger = LoggerFactory.getLogger(IdentityFilter.class);
private final IdentityProvider identityProvider;
+ private final AuthenticationManager authenticationManager;
- public IdentityFilter(IdentityProvider identityProvider) {
+ public IdentityFilter(IdentityProvider identityProvider, AuthenticationManager authenticationManager) {
this.identityProvider = identityProvider;
+ this.authenticationManager = authenticationManager;
}
@Override
@@ -65,7 +69,7 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo
if (credentialsAlreadyPresent()) {
logger.debug("Credentials already extracted for [{}], skipping credentials extraction filter using {}",
- SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString(),
+ SecurityContextHolder.getContext().getAuthentication().getPrincipal(),
identityProvider.getClass().getSimpleName());
filterChain.doFilter(servletRequest, servletResponse);
return;
@@ -76,15 +80,31 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo
try {
AuthenticationRequest authenticationRequest = identityProvider.extractCredentials((HttpServletRequest) servletRequest);
if (authenticationRequest != null) {
- Authentication authentication = new AuthenticationRequestToken(authenticationRequest, identityProvider.getClass(), servletRequest.getRemoteAddr());
- logger.debug("Adding credentials claim to SecurityContext to be authenticated. Credentials extracted by {}: {}",
+ Authentication authenticationRequestToken = new AuthenticationRequestToken(
+ authenticationRequest,
+ identityProvider.getClass(),
+ servletRequest.getRemoteAddr());
+ logger.debug("Attempting to authenticate credentials extracted by {}: {}",
identityProvider.getClass().getSimpleName(),
authenticationRequest);
- SecurityContextHolder.getContext().setAuthentication(authentication);
- // This filter's job, which is merely to search for and extract an identity claim, is done.
- // The actual authentication of the identity claim will be handled by a corresponding IdentityAuthenticationProvider
+
+ // Authenticate the request token using the AuthenticationManager,
+ // which will try all the configured AuthenticationProviders until it finds one that supports authenticating the type of extracted credentials
+ final Authentication authenticated = authenticationManager.authenticate(authenticationRequestToken);
+ if (authenticated != null && authenticated.isAuthenticated()) {
+ SecurityContextHolder.getContext().setAuthentication(authenticated);
+ logger.debug("Authentication successful for {}", authenticated.getName());
+ }
+ } else {
+ logger.debug("The {} did not find credentials it supports on the servlet request. " +
+ "Allowing this request to continue through the filter chain where another filter might authenticate it.",
+ identityProvider.getClass().getSimpleName());
}
- } catch (Exception e) {
+ } catch (final AuthenticationException e) {
+ logger.info("Authentication failed for credentials extracted by {}: {}", identityProvider.getClass().getSimpleName(), e.getMessage());
+ logger.debug("Authentication failure details", e);
+ // Allow request to continue, where it will result in a 401 error for paths that require an authenticated request
+ } catch (final Exception e) {
logger.debug("Exception occurred while extracting credentials:", e);
}
@@ -92,6 +112,7 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo
}
private boolean credentialsAlreadyPresent() {
- return SecurityContextHolder.getContext().getAuthentication() != null;
+ final Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+ return authentication != null && authentication.isAuthenticated();
}
}
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/security/authentication/kerberos/KerberosSpnegoIdentityProvider.java b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/security/authentication/kerberos/KerberosSpnegoIdentityProvider.java
index ac5d6fd14bbc..fb4bc189cea8 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/security/authentication/kerberos/KerberosSpnegoIdentityProvider.java
+++ b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/security/authentication/kerberos/KerberosSpnegoIdentityProvider.java
@@ -30,7 +30,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.lang.Nullable;
+import jakarta.annotation.Nullable;
import org.springframework.security.authentication.AuthenticationDetailsSource;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException;
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/resources/META-INF/NOTICE b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/resources/META-INF/NOTICE
index 7c972030c82c..de073e452469 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/resources/META-INF/NOTICE
+++ b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/resources/META-INF/NOTICE
@@ -137,16 +137,6 @@ The following binary components are provided under the Common Development and Di
(CDDL 1.1) (GPL2 w/ CPE) hk2-runlevel (org.glassfish.hk2:hk2-runlevel:jar:2.5.0-b42 - https://javaee.github.io/glassfish/)
(CDDL 1.1) (GPL2 w/ CPE) spring-bridge (org.glassfish.hk2:spring-bridge:jar:2.5.0-b42 - https://javaee.github.io/glassfish/)
(CDDL 1.1) (GPL2 w/ CPE) Jakarta RESTful Web Services (jakarta.ws.rs:jakarta.ws.rs-api:jar:3.1.0 - https://jakarta.ee/specifications/restful-ws/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-bean-validation (org.glassfish.jersey.ext:jersey-bean-validation:jar:2.29.1 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-client (org.glassfish.jersey.core:jersey-client:jar:2.27 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-common (org.glassfish.jersey.core:jersey-common:jar:2.29.1 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-container-servlet-core (org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.29.1 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-entity-filtering (org.glassfish.jersey.ext:jersey-entity-filtering:jar:2.29.1 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-hk2 (org.glassfish.jersey.inject:jersey-hk2:jar:2.27 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-media-jaxb (org.glassfish.jersey.media:jersey-media-jaxb:jar:2.29.1 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-media-json-jackson (org.glassfish.jersey.media:jersey-media-json-jackson:jar:2.29.1 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-server (org.glassfish.jersey.core:jersey-server:jar:2.29.1 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-spring4 (org.glassfish.jersey.ext:jersey-spring4:jar:2.27 - https://jersey.github.io/)
(CDDL 1.1) (GPL2 w/ CPE) OSGi resource locator bundle (org.glassfish.hk2:osgi-resource-locator:jar:1.0.1 - https://glassfish.org/osgi-resource-locator)
************************
@@ -159,3 +149,18 @@ The following binary components are provided under the Eclipse Public License 1.
(EPL 1.0)(LGPL 2.1) Logback Classic (ch.qos.logback:logback-classic:jar:1.2.6 - https://logback.qos.ch/)
(EPL 1.0)(LGPL 2.1) Logback Core (ch.qos.logback:logback-core:jar:1.2.6 - https://logback.qos.ch/)
(EPL 1.0) AspectJ Weaver (org.aspectj:aspectjweaver:jar:1.8.13 - https://www.eclipse.org/aspectj/)
+
+************************
+Eclipse Public License 2.0
+************************
+
+The following binary components are provided under the Eclipse Public License 2.0. See project link for details.
+ (EPL 2.0) jersey-bean-validation (org.glassfish.jersey.ext:jersey-bean-validation:jar:4.0.0 - https://jersey.github.io/)
+ (EPL 2.0) jersey-client (org.glassfish.jersey.core:jersey-client:jar:4.0.0 - https://jersey.github.io/)
+ (EPL 2.0) jersey-common (org.glassfish.jersey.core:jersey-common:jar:4.0.0 - https://jersey.github.io/)
+ (EPL 2.0) jersey-container-servlet-core (org.glassfish.jersey.containers:jersey-container-servlet-core:jar:4.0.0 - https://jersey.github.io/)
+ (EPL 2.0) jersey-entity-filtering (org.glassfish.jersey.ext:jersey-entity-filtering:jar:4.0.0 - https://jersey.github.io/)
+ (EPL 2.0) jersey-hk2 (org.glassfish.jersey.inject:jersey-hk2:jar:4.0.0 - https://jersey.github.io/)
+ (EPL 2.0) jersey-media-jaxb (org.glassfish.jersey.media:jersey-media-jaxb:jar:4.0.0 - https://jersey.github.io/)
+ (EPL 2.0) jersey-media-json-jackson (org.glassfish.jersey.media:jersey-media-json-jackson:jar:4.0.0 - https://jersey.github.io/)
+ (EPL 2.0) jersey-server (org.glassfish.jersey.core:jersey-server:jar:4.0.0 - https://jersey.github.io/)
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/java/org/apache/nifi/registry/web/api/BucketsIT.java b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/java/org/apache/nifi/registry/web/api/BucketsIT.java
index d22f0b1a9aaf..97437c272df4 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/java/org/apache/nifi/registry/web/api/BucketsIT.java
+++ b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/java/org/apache/nifi/registry/web/api/BucketsIT.java
@@ -20,7 +20,7 @@
import org.apache.nifi.registry.revision.entity.RevisionInfo;
import org.junit.jupiter.api.Test;
import org.skyscreamer.jsonassert.JSONAssert;
-import org.springframework.test.annotation.IfProfileValue;
+import org.springframework.test.context.junit.jupiter.EnabledIf;
import org.springframework.test.context.jdbc.Sql;
import jakarta.ws.rs.client.Entity;
@@ -57,7 +57,7 @@ public void testGetBucketsEmpty() throws Exception {
// NOTE: The tests that seed the DB directly from SQL end up with different results for the timestamp depending on
// which DB is used, so for now these types of tests only run against H2.
@Test
- @IfProfileValue(name = "current.database.is.h2", value = "true")
+ @EnabledIf(expression = "#{T(org.apache.nifi.registry.db.DatabaseProfileValueSource).isDatabase('h2')}")
@Sql(executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, scripts = {"classpath:db/clearDB.sql", "classpath:db/BucketsIT.sql"})
public void testGetBuckets() throws Exception {
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/java/org/apache/nifi/registry/web/api/FlowsIT.java b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/java/org/apache/nifi/registry/web/api/FlowsIT.java
index 965b1a83aeb3..697ac7ce1df3 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/java/org/apache/nifi/registry/web/api/FlowsIT.java
+++ b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/java/org/apache/nifi/registry/web/api/FlowsIT.java
@@ -24,7 +24,7 @@
import org.apache.nifi.registry.revision.entity.RevisionInfo;
import org.junit.jupiter.api.Test;
import org.skyscreamer.jsonassert.JSONAssert;
-import org.springframework.test.annotation.IfProfileValue;
+import org.springframework.test.context.junit.jupiter.EnabledIf;
import org.springframework.test.context.jdbc.Sql;
import jakarta.ws.rs.WebApplicationException;
@@ -72,7 +72,7 @@ public void testGetFlowsEmpty() throws Exception {
// NOTE: The tests that seed the DB directly from SQL end up with different results for the timestamp depending on
// which DB is used, so for now these types of tests only run against H2.
@Test
- @IfProfileValue(name = "current.database.is.h2", value = "true")
+ @EnabledIf(expression = "#{T(org.apache.nifi.registry.db.DatabaseProfileValueSource).isDatabase('h2')}")
public void testGetFlows() throws Exception {
// Given: a few buckets and flows have been populated in the DB (see FlowsIT.sql)
@@ -365,7 +365,7 @@ public void testGetFlowVersionsEmpty() throws Exception {
// NOTE: The tests that seed the DB directly from SQL end up with different results for the timestamp depending on
// which DB is used, so for now these types of tests only run against H2.
@Test
- @IfProfileValue(name = "current.database.is.h2", value = "true")
+ @EnabledIf(expression = "#{T(org.apache.nifi.registry.db.DatabaseProfileValueSource).isDatabase('h2')}")
public void testGetFlowVersions() throws Exception {
// Given: a bucket "1" with flow "1" with existing snapshots has been populated in the DB (see FlowsIT.sql)
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/java/org/apache/nifi/registry/web/api/IntegrationTestBase.java b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/java/org/apache/nifi/registry/web/api/IntegrationTestBase.java
index ad1c01054676..5e1b834299db 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/java/org/apache/nifi/registry/web/api/IntegrationTestBase.java
+++ b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/java/org/apache/nifi/registry/web/api/IntegrationTestBase.java
@@ -23,7 +23,6 @@
import com.fasterxml.jackson.databind.type.TypeFactory;
import com.fasterxml.jackson.module.jakarta.xmlbind.JakartaXmlBindAnnotationIntrospector;
import org.apache.nifi.registry.client.NiFiRegistryClientConfig;
-import org.apache.nifi.registry.db.DatabaseProfileValueSource;
import org.apache.nifi.registry.properties.NiFiRegistryProperties;
import org.glassfish.jersey.client.ClientConfig;
import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJaxbJsonProvider;
@@ -32,7 +31,7 @@
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.context.annotation.Bean;
-import org.springframework.test.annotation.ProfileValueSourceConfiguration;
+import org.springframework.test.context.TestPropertySource;
import jakarta.annotation.PostConstruct;
import javax.net.ssl.HostnameVerifier;
@@ -48,7 +47,7 @@
/**
* A base class to simplify creating integration tests against an API application running with an embedded server and volatile DB.
*/
-@ProfileValueSourceConfiguration(DatabaseProfileValueSource.class)
+@TestPropertySource(properties = "server.servlet.context-path=/nifi-registry-api")
public abstract class IntegrationTestBase {
private static final String CONTEXT_PATH = "/nifi-registry-api";
@@ -66,11 +65,6 @@ public static class TestConfigurationClass {
private final Lock readLock = lock.readLock();
private NiFiRegistryProperties testProperties;
- @Bean
- public org.springframework.boot.web.server.WebServerFactoryCustomizer webServerFactoryCustomizer() {
- return factory -> factory.setContextPath(CONTEXT_PATH);
- }
-
@Bean
public NiFiRegistryProperties getNiFiRegistryProperties() {
readLock.lock();
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureDatabase.properties b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureDatabase.properties
index b5e851e538ff..f99f7233275d 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureDatabase.properties
+++ b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureDatabase.properties
@@ -22,15 +22,16 @@
# Custom (non-standard to Spring Boot) properties
-nifi.registry.properties.file: src/test/resources/conf/secure-database/nifi-registry.properties
-nifi.registry.client.properties.file: src/test/resources/conf/secure-database/nifi-registry-client.properties
+nifi.registry.properties.file=src/test/resources/conf/secure-database/nifi-registry.properties
+nifi.registry.client.properties.file=src/test/resources/conf/secure-database/nifi-registry-client.properties
-# Embedded Server SSL Context Config
-server.ssl.client-auth: need
-server.ssl.key-store: ./target/test-classes/keys/registry-ks.jks
-server.ssl.key-store-password: password
-server.ssl.key-password: password
-server.ssl.protocol: TLS
-server.ssl.trust-store: ./target/test-classes/keys/ca-ts.jks
-server.ssl.trust-store-password: password
\ No newline at end of file
+# Embedded Server SSL Context Config (direct properties)
+server.ssl.client-auth=need
+server.ssl.key-store=classpath:keys/registry-ks.jks
+server.ssl.key-store-password=password
+server.ssl.key-password=password
+server.ssl.key-store-type=JKS
+server.ssl.trust-store=classpath:keys/ca-ts.jks
+server.ssl.trust-store-password=password
+server.ssl.trust-store-type=JKS
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureFile.properties b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureFile.properties
index cea51c6e8e0d..69ba4d981951 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureFile.properties
+++ b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureFile.properties
@@ -22,15 +22,16 @@
# Custom (non-standard to Spring Boot) properties
-nifi.registry.properties.file: src/test/resources/conf/secure-file/nifi-registry.properties
-nifi.registry.client.properties.file: src/test/resources/conf/secure-file/nifi-registry-client.properties
+nifi.registry.properties.file=src/test/resources/conf/secure-file/nifi-registry.properties
+nifi.registry.client.properties.file=src/test/resources/conf/secure-file/nifi-registry-client.properties
-# Embedded Server SSL Context Config
-server.ssl.client-auth: need
-server.ssl.key-store: ./target/test-classes/keys/registry-ks.jks
-server.ssl.key-store-password: password
-server.ssl.key-password: password
-server.ssl.protocol: TLS
-server.ssl.trust-store: ./target/test-classes/keys/ca-ts.jks
-server.ssl.trust-store-password: password
+# Embedded Server SSL Context Config (direct properties)
+server.ssl.client-auth=need
+server.ssl.key-store=classpath:keys/registry-ks.jks
+server.ssl.key-store-password=password
+server.ssl.key-password=password
+server.ssl.key-store-type=JKS
+server.ssl.trust-store=classpath:keys/ca-ts.jks
+server.ssl.trust-store-password=password
+server.ssl.trust-store-type=JKS
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureKerberos.properties b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureKerberos.properties
index fb1c928232e3..04aebc38db36 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureKerberos.properties
+++ b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureKerberos.properties
@@ -22,15 +22,16 @@
# Custom (non-standard to Spring Boot) properties
-nifi.registry.properties.file: src/test/resources/conf/secure-kerberos/nifi-registry.properties
-nifi.registry.client.properties.file: src/test/resources/conf/secure-kerberos/nifi-registry-client.properties
+nifi.registry.properties.file=src/test/resources/conf/secure-kerberos/nifi-registry.properties
+nifi.registry.client.properties.file=src/test/resources/conf/secure-kerberos/nifi-registry-client.properties
-# Embedded Server SSL Context Config
-#server.ssl.client-auth: need # server does not require two-way TLS
-server.ssl.key-store: ./target/test-classes/keys/registry-ks.jks
-server.ssl.key-store-password: password
-server.ssl.key-password: password
-server.ssl.protocol: TLS
-server.ssl.trust-store: ./target/test-classes/keys/ca-ts.jks
-server.ssl.trust-store-password: password
+# Embedded Server SSL Context Config (direct properties)
+#server.ssl.client-auth=need # server does not require two-way TLS
+server.ssl.key-store=classpath:keys/registry-ks.jks
+server.ssl.key-store-password=password
+server.ssl.key-password=password
+server.ssl.key-store-type=JKS
+server.ssl.trust-store=classpath:keys/ca-ts.jks
+server.ssl.trust-store-password=password
+server.ssl.trust-store-type=JKS
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureLdap.properties b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureLdap.properties
index 25b749d98f35..c5efba314891 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureLdap.properties
+++ b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureLdap.properties
@@ -22,18 +22,19 @@
# Custom (non-standard to Spring Boot) properties
-nifi.registry.properties.file: src/test/resources/conf/secure-ldap/nifi-registry.properties
-nifi.registry.client.properties.file: src/test/resources/conf/secure-ldap/nifi-registry-client.properties
+nifi.registry.properties.file=src/test/resources/conf/secure-ldap/nifi-registry.properties
+nifi.registry.client.properties.file=src/test/resources/conf/secure-ldap/nifi-registry-client.properties
-# Embedded Server SSL Context Config
-#server.ssl.client-auth: need # LDAP-configured server does not require two-way TLS
-server.ssl.key-store: ./target/test-classes/keys/registry-ks.jks
-server.ssl.key-store-password: password
-server.ssl.key-password: password
-server.ssl.protocol: TLS
-server.ssl.trust-store: ./target/test-classes/keys/ca-ts.jks
-server.ssl.trust-store-password: password
+# Embedded Server SSL Context Config (direct properties)
+#server.ssl.client-auth=need # LDAP-configured server does not require two-way TLS
+server.ssl.key-store=classpath:keys/registry-ks.jks
+server.ssl.key-store-password=password
+server.ssl.key-password=password
+server.ssl.key-store-type=JKS
+server.ssl.trust-store=classpath:keys/ca-ts.jks
+server.ssl.trust-store-password=password
+server.ssl.trust-store-type=JKS
# Embedded LDAP Config
spring.ldap.embedded.base-dn: dc=example,dc=com
@@ -45,4 +46,4 @@ spring.ldap.embedded.validation.enabled: false
# Additional Logging Config
logging.level.org.springframework.security.ldap: DEBUG
-logging.level.org.springframework.ldap: DEBUG
\ No newline at end of file
+logging.level.org.springframework.ldap: DEBUG
diff --git a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureProxy.properties b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureProxy.properties
index cab6d4195f50..2aa206257e87 100644
--- a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureProxy.properties
+++ b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/test/resources/application-ITSecureProxy.properties
@@ -22,15 +22,16 @@
# Custom (non-standard to Spring Boot) properties
-nifi.registry.properties.file: src/test/resources/conf/secure-proxy/nifi-registry.properties
-nifi.registry.client.properties.file: src/test/resources/conf/secure-proxy/nifi-registry-client.properties
+nifi.registry.properties.file=src/test/resources/conf/secure-proxy/nifi-registry.properties
+nifi.registry.client.properties.file=src/test/resources/conf/secure-proxy/nifi-registry-client.properties
-# Embedded Server SSL Context Config
-server.ssl.client-auth: need
-server.ssl.key-store: ./target/test-classes/keys/registry-ks.jks
-server.ssl.key-store-password: password
-server.ssl.key-password: password
-server.ssl.protocol: TLS
-server.ssl.trust-store: ./target/test-classes/keys/ca-ts.jks
-server.ssl.trust-store-password: password
+# Embedded Server SSL Context Config (direct properties)
+server.ssl.client-auth=need
+server.ssl.key-store=classpath:keys/registry-ks.jks
+server.ssl.key-store-password=password
+server.ssl.key-password=password
+server.ssl.key-store-type=JKS
+server.ssl.trust-store=classpath:keys/ca-ts.jks
+server.ssl.trust-store-password=password
+server.ssl.trust-store-type=JKS
diff --git a/nifi-registry/nifi-registry-core/pom.xml b/nifi-registry/nifi-registry-core/pom.xml
index 8702faa7c7ef..6311b483ef86 100644
--- a/nifi-registry/nifi-registry-core/pom.xml
+++ b/nifi-registry/nifi-registry-core/pom.xml
@@ -62,28 +62,28 @@
${jetty.version}
- org.eclipse.jetty.ee10
- jetty-ee10-servlet
+ org.eclipse.jetty.ee11
+ jetty-ee11-servlet
${jetty.version}
- org.eclipse.jetty.ee10
- jetty-ee10-webapp
+ org.eclipse.jetty.ee11
+ jetty-ee11-webapp
${jetty.version}
- org.eclipse.jetty.ee10
- jetty-ee10-servlets
+ org.eclipse.jetty.ee11
+ jetty-ee11-servlets
${jetty.version}
- org.eclipse.jetty.ee10
- jetty-ee10-annotations
+ org.eclipse.jetty.ee11
+ jetty-ee11-annotations
${jetty.version}
- org.eclipse.jetty.ee10
- jetty-ee10-apache-jsp
+ org.eclipse.jetty.ee11
+ jetty-ee11-apache-jsp
${jetty.version}
diff --git a/nifi-registry/nifi-registry-toolkit/nifi-registry-toolkit-assembly/NOTICE b/nifi-registry/nifi-registry-toolkit/nifi-registry-toolkit-assembly/NOTICE
index 5acbd8701b9c..3629d95c040a 100644
--- a/nifi-registry/nifi-registry-toolkit/nifi-registry-toolkit-assembly/NOTICE
+++ b/nifi-registry/nifi-registry-toolkit/nifi-registry-toolkit-assembly/NOTICE
@@ -172,29 +172,6 @@ Common Development and Distribution License 1.1
The following binary components are provided under the Common Development and Distribution License 1.1. See project link for details.
- (CDDL 1.1) (GPL2 w/ CPE) Jakarta Servlet API (jakarta.servlet:jakarta.servlet-api:jar:6.0.0 - https://jakarta.ee/specifications/servlet/)
- (CDDL 1.1) (GPL2 w/ CPE) aopalliance-repackaged (org.glassfish.hk2.external:aopalliance-repackaged:jar:2.5.0-b42 - https://javaee.github.io/glassfish/)
- (CDDL 1.1) (GPL2 w/ CPE) asm-all-repackaged (org.glassfish.hk2.external:asm-all-repackaged:jar:2.5.0-b42 - https://javaee.github.io/glassfish/)
- (CDDL 1.1) (GPL2 w/ CPE) class-model (org.glassfish.hk2:class-model:jar:2.5.0-b42 - https://javaee.github.io/glassfish/)
- (CDDL 1.1) (GPL2 w/ CPE) config-types (org.glassfish.hk2:config-types:jar:2.5.0-b42 - https://javaee.github.io/glassfish/)
- (CDDL 1.1) (GPL2 w/ CPE) hk2 (org.glassfish.hk2:hk2:jar:2.5.0-b42 - https://javaee.github.io/glassfish/)
- (CDDL 1.1) (GPL2 w/ CPE) hk2-api (org.glassfish.hk2:hk2-api:jar:2.5.0-b42 - https://javaee.github.io/glassfish/)
- (CDDL 1.1) (GPL2 w/ CPE) hk2-utils (org.glassfish.hk2:hk2-utils:jar:2.5.0-b42 - https://javaee.github.io/glassfish/)
- (CDDL 1.1) (GPL2 w/ CPE) hk2-locator (org.glassfish.hk2:hk2-locator:jar:2.5.0-b42 - https://javaee.github.io/glassfish/)
- (CDDL 1.1) (GPL2 w/ CPE) hk2-config (org.glassfish.hk2:hk2-config:jar:2.5.0-b42 - https://javaee.github.io/glassfish/)
- (CDDL 1.1) (GPL2 w/ CPE) hk2-core (org.glassfish.hk2:hk2-core:jar:2.5.0-b42 - https://javaee.github.io/glassfish/)
- (CDDL 1.1) (GPL2 w/ CPE) hk2-runlevel (org.glassfish.hk2:hk2-runlevel:jar:2.5.0-b42 - https://javaee.github.io/glassfish/)
- (CDDL 1.1) (GPL2 w/ CPE) spring-bridge (org.glassfish.hk2:spring-bridge:jar:2.5.0-b42 - https://javaee.github.io/glassfish/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-bean-validation (org.glassfish.jersey.ext:jersey-bean-validation:jar:2.26 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-client (org.glassfish.jersey.core:jersey-client:jar:2.26 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-common (org.glassfish.jersey.core:jersey-common:jar:2.26 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-container-servlet-core (org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.26 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-entity-filtering (org.glassfish.jersey.ext:jersey-entity-filtering:jar:2.26 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-hk2 (org.glassfish.jersey.inject:jersey-hk2:jar:2.26 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-media-jaxb (org.glassfish.jersey.media:jersey-media-jaxb:jar:2.26 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-media-json-jackson (org.glassfish.jersey.media:jersey-media-json-jackson:jar:2.26 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-server (org.glassfish.jersey.core:jersey-server:jar:2.26 - https://jersey.github.io/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-spring4 (org.glassfish.jersey.ext:jersey-spring4:jar:2.26 - https://jersey.github.io/)
(CDDL 1.1) (GPL2 w/ CPE) OSGi resource locator bundle (org.glassfish.hk2:osgi-resource-locator:jar:1.0.1 - https://glassfish.org/osgi-resource-locator)
@@ -215,3 +192,31 @@ The following binary components are provided under the Eclipse Public License 1.
(EPL 1.0)(LGPL 2.1) Logback Classic (ch.qos.logback:logback-classic:jar:1.2.6 - https://logback.qos.ch/)
(EPL 1.0)(LGPL 2.1) Logback Core (ch.qos.logback:logback-core:jar:1.2.6 - https://logback.qos.ch/)
(EPL 1.0) AspectJ Weaver (org.aspectj:aspectjweaver:jar:1.8.13 - https://www.eclipse.org/aspectj/)
+
+************************
+Eclipse Public License 2.0
+************************
+
+The following binary components are provided under the Eclipse Public License 2.0. See project link for details.
+ (EPL 2.0) Jakarta Servlet API (jakarta.servlet:jakarta.servlet-api:jar:6.1.0 - https://jakarta.ee/specifications/servlet/)
+ (EPL 2.0) aopalliance-repackaged (org.glassfish.hk2.external:aopalliance-repackaged:jar:4.0.0 - https://eclipse-ee4j.github.io/glassfish-hk2/)
+ (EPL 2.0) asm-all-repackaged (org.glassfish.hk2.external:asm-all-repackaged:jar:4.0.0 - https://eclipse-ee4j.github.io/glassfish-hk2/)
+ (EPL 2.0) class-model (org.glassfish.hk2:class-model:jar:4.0.0 - https://eclipse-ee4j.github.io/glassfish-hk2/)
+ (EPL 2.0) config-types (org.glassfish.hk2:config-types:jar:4.0.0 - https://eclipse-ee4j.github.io/glassfish-hk2/)
+ (EPL 2.0) hk2 (org.glassfish.hk2:hk2:jar:4.0.0 - https://eclipse-ee4j.github.io/glassfish-hk2/)
+ (EPL 2.0) hk2-api (org.glassfish.hk2:hk2-api:jar:4.0.0 - https://eclipse-ee4j.github.io/glassfish-hk2/)
+ (EPL 2.0) hk2-utils (org.glassfish.hk2:hk2-utils:jar:4.0.0 - https://eclipse-ee4j.github.io/glassfish-hk2/)
+ (EPL 2.0) hk2-locator (org.glassfish.hk2:hk2-locator:jar:4.0.0 - https://eclipse-ee4j.github.io/glassfish-hk2/)
+ (EPL 2.0) hk2-config (org.glassfish.hk2:hk2-config:jar:4.0.0 - https://eclipse-ee4j.github.io/glassfish-hk2/)
+ (EPL 2.0) hk2-core (org.glassfish.hk2:hk2-core:jar:4.0.0 - https://eclipse-ee4j.github.io/glassfish-hk2/)
+ (EPL 2.0) hk2-runlevel (org.glassfish.hk2:hk2-runlevel:jar:4.0.0 - https://eclipse-ee4j.github.io/glassfish-hk2/)
+ (EPL 2.0) spring-bridge (org.glassfish.hk2:spring-bridge:jar:4.0.0 - https://eclipse-ee4j.github.io/glassfish-hk2/)
+ (EPL 2.0) jersey-bean-validation (org.glassfish.jersey.ext:jersey-bean-validation:jar:4.0.0 - https://jersey.github.io/)
+ (EPL 2.0) jersey-client (org.glassfish.jersey.core:jersey-client:jar:4.0.0 - https://jersey.github.io/)
+ (EPL 2.0) jersey-common (org.glassfish.jersey.core:jersey-common:jar:4.0.0 - https://jersey.github.io/)
+ (EPL 2.0) jersey-container-servlet-core (org.glassfish.jersey.containers:jersey-container-servlet-core:jar:4.0.0 - https://jersey.github.io/)
+ (EPL 2.0) jersey-entity-filtering (org.glassfish.jersey.ext:jersey-entity-filtering:jar:4.0.0 - https://jersey.github.io/)
+ (EPL 2.0) jersey-hk2 (org.glassfish.jersey.inject:jersey-hk2:jar:4.0.0 - https://jersey.github.io/)
+ (EPL 2.0) jersey-media-jaxb (org.glassfish.jersey.media:jersey-media-jaxb:jar:4.0.0 - https://jersey.github.io/)
+ (EPL 2.0) jersey-media-json-jackson (org.glassfish.jersey.media:jersey-media-json-jackson:jar:4.0.0 - https://jersey.github.io/)
+ (EPL 2.0) jersey-server (org.glassfish.jersey.core:jersey-server:jar:4.0.0 - https://jersey.github.io/)
diff --git a/nifi-registry/pom.xml b/nifi-registry/pom.xml
index 6b73887207ff..9e5d833cc3bb 100644
--- a/nifi-registry/pom.xml
+++ b/nifi-registry/pom.xml
@@ -35,9 +35,7 @@
nifi-registry-docker-maven
- 3.1.0
- 3.1.11
- 3.5.8
+ 4.0.0
11.19.0
10.0.0
3.12.0
@@ -46,27 +44,6 @@
-
- org.eclipse.jetty
- jetty-bom
- ${jetty.version}
- pom
- import
-
-
- org.eclipse.jetty.ee10
- jetty-ee10-bom
- ${jetty.version}
- pom
- import
-
-
- org.glassfish.jersey
- jersey-bom
- ${jersey.bom.version}
- pom
- import
-
jakarta.servlet
jakarta.servlet-api
@@ -96,35 +73,35 @@
compile
- org.eclipse.jetty.ee10
- jetty-ee10-glassfish-jstl
+ org.eclipse.jetty.ee11
+ jetty-ee11-glassfish-jstl
${jetty.version}
compile
- org.eclipse.jetty.ee10
- jetty-ee10-annotations
+ org.eclipse.jetty.ee11
+ jetty-ee11-annotations
${jetty.version}
compile
- org.eclipse.jetty.ee10
- jetty-ee10-webapp
+ org.eclipse.jetty.ee11
+ jetty-ee11-webapp
compile
- org.eclipse.jetty.ee10
- jetty-ee10-servlet
+ org.eclipse.jetty.ee11
+ jetty-ee11-servlet
compile
- org.eclipse.jetty.ee10
- jetty-ee10-servlets
+ org.eclipse.jetty.ee11
+ jetty-ee11-servlets
compile
- org.eclipse.jetty.ee10
- jetty-ee10-apache-jsp
+ org.eclipse.jetty.ee11
+ jetty-ee11-apache-jsp
org.mortbay.jasper
@@ -141,13 +118,13 @@
org.mortbay.jasper
mortbay-apache-jsp
- 10.1.48
+ 11.0.10.1
compile
org.mortbay.jasper
mortbay-apache-el
- 10.1.48
+ 11.0.10.1
compile
diff --git a/pom.xml b/pom.xml
index 5d68c0d7c6f1..c5111f05c9fc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -196,8 +196,8 @@
4.0.0
12.1.5
6.1.0
- 6.5.7
- 6.2.15
+ 7.0.0
+ 7.0.2
2.2.41
@@ -511,6 +511,17 @@
import
pom
+
+ org.springframework
+ spring-core
+ ${spring.version}
+
+
+ commons-logging
+ commons-logging
+
+
+
org.springframework.security
spring-security-bom