Closes #2404 - Upgrade to Spring Boot 3.1.5
This commit is contained in:
parent
d4417d1fcd
commit
d313551903
|
@ -32,7 +32,7 @@
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>uk.org.lidalia</groupId>
|
<groupId>com.github.valfirst</groupId>
|
||||||
<artifactId>slf4j-test</artifactId>
|
<artifactId>slf4j-test</artifactId>
|
||||||
<version>${version.slf4j-test}</version>
|
<version>${version.slf4j-test}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
|
@ -45,6 +45,7 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
|
<version>${version.mockito-inline}</version>
|
||||||
<artifactId>mockito-inline</artifactId>
|
<artifactId>mockito-inline</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
|
@ -2,6 +2,9 @@ package pro.taskana.common.internal.logging;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
import com.github.valfirst.slf4jtest.LoggingEvent;
|
||||||
|
import com.github.valfirst.slf4jtest.TestLogger;
|
||||||
|
import com.github.valfirst.slf4jtest.TestLoggerFactory;
|
||||||
import org.assertj.core.api.Condition;
|
import org.assertj.core.api.Condition;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
@ -9,12 +12,9 @@ import org.junit.jupiter.api.Test;
|
||||||
import org.mockito.MockedStatic;
|
import org.mockito.MockedStatic;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
import org.mockito.internal.stubbing.answers.CallsRealMethods;
|
import org.mockito.internal.stubbing.answers.CallsRealMethods;
|
||||||
|
import org.slf4j.event.Level;
|
||||||
import outside.of.pro.taskana.OutsideOfProTaskanaPackageLoggingTestClass;
|
import outside.of.pro.taskana.OutsideOfProTaskanaPackageLoggingTestClass;
|
||||||
import pro.taskana.AtProTaskanaRootPackageLoggingTestClass;
|
import pro.taskana.AtProTaskanaRootPackageLoggingTestClass;
|
||||||
import uk.org.lidalia.slf4jext.Level;
|
|
||||||
import uk.org.lidalia.slf4jtest.LoggingEvent;
|
|
||||||
import uk.org.lidalia.slf4jtest.TestLogger;
|
|
||||||
import uk.org.lidalia.slf4jtest.TestLoggerFactory;
|
|
||||||
|
|
||||||
@NoLogging
|
@NoLogging
|
||||||
class LoggingAspectTest {
|
class LoggingAspectTest {
|
||||||
|
|
|
@ -52,9 +52,9 @@
|
||||||
<artifactId>jackson-datatype-jsr310</artifactId>
|
<artifactId>jackson-datatype-jsr310</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>javax.servlet</groupId>
|
<groupId>jakarta.servlet</groupId>
|
||||||
<artifactId>javax.servlet-api</artifactId>
|
<artifactId>jakarta.servlet-api</artifactId>
|
||||||
<version>${version.javax.servlet}</version>
|
<version>${version.jakarta.servlet}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework</groupId>
|
<groupId>org.springframework</groupId>
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
|
|
||||||
<!-- test dependencies -->
|
<!-- test dependencies -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>uk.org.lidalia</groupId>
|
<groupId>com.github.valfirst</groupId>
|
||||||
<artifactId>slf4j-test</artifactId>
|
<artifactId>slf4j-test</artifactId>
|
||||||
<version>${version.slf4j-test}</version>
|
<version>${version.slf4j-test}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
|
@ -59,6 +59,7 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
|
<version>${version.mockito-inline}</version>
|
||||||
<artifactId>mockito-inline</artifactId>
|
<artifactId>mockito-inline</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
|
@ -4,6 +4,8 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||||
|
import com.github.valfirst.slf4jtest.TestLogger;
|
||||||
|
import com.github.valfirst.slf4jtest.TestLoggerFactory;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
|
@ -17,8 +19,6 @@ import pro.taskana.spi.history.api.events.task.TaskHistoryEvent;
|
||||||
import pro.taskana.spi.history.api.events.task.TaskHistoryEventType;
|
import pro.taskana.spi.history.api.events.task.TaskHistoryEventType;
|
||||||
import pro.taskana.spi.history.api.events.workbasket.WorkbasketHistoryEvent;
|
import pro.taskana.spi.history.api.events.workbasket.WorkbasketHistoryEvent;
|
||||||
import pro.taskana.spi.history.api.events.workbasket.WorkbasketHistoryEventType;
|
import pro.taskana.spi.history.api.events.workbasket.WorkbasketHistoryEventType;
|
||||||
import uk.org.lidalia.slf4jtest.TestLogger;
|
|
||||||
import uk.org.lidalia.slf4jtest.TestLoggerFactory;
|
|
||||||
|
|
||||||
class LogfileHistoryServiceImplTest {
|
class LogfileHistoryServiceImplTest {
|
||||||
|
|
||||||
|
|
|
@ -66,6 +66,7 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
|
<version>${version.mockito-inline}</version>
|
||||||
<artifactId>mockito-inline</artifactId>
|
<artifactId>mockito-inline</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
|
@ -44,13 +44,13 @@
|
||||||
<artifactId>spring-hateoas</artifactId>
|
<artifactId>spring-hateoas</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>javax.servlet</groupId>
|
<groupId>jakarta.servlet</groupId>
|
||||||
<artifactId>javax.servlet-api</artifactId>
|
<artifactId>jakarta.servlet-api</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>javax.validation</groupId>
|
<groupId>jakarta.validation</groupId>
|
||||||
<artifactId>validation-api</artifactId>
|
<artifactId>jakarta.validation-api</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.fasterxml.jackson.core</groupId>
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
package pro.taskana.simplehistory.rest;
|
package pro.taskana.simplehistory.rest;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import java.beans.ConstructorProperties;
|
import java.beans.ConstructorProperties;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.hateoas.MediaTypes;
|
import org.springframework.hateoas.MediaTypes;
|
||||||
import org.springframework.hateoas.config.EnableHypermediaSupport;
|
import org.springframework.hateoas.config.EnableHypermediaSupport;
|
||||||
|
|
|
@ -26,9 +26,9 @@
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>javax</groupId>
|
<groupId>jakarta.platform</groupId>
|
||||||
<artifactId>javaee-api</artifactId>
|
<artifactId>jakarta.jakartaee-api</artifactId>
|
||||||
<version>${version.javaee-api}</version>
|
<version>${version.jakartaee-api}</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
package pro.taskana.example;
|
package pro.taskana.example;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
import javax.ejb.EJB;
|
import jakarta.ejb.EJB;
|
||||||
import javax.enterprise.context.ApplicationScoped;
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
import javax.enterprise.context.Initialized;
|
import jakarta.enterprise.context.Initialized;
|
||||||
import javax.enterprise.event.Observes;
|
import jakarta.enterprise.event.Observes;
|
||||||
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
|
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
|
||||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||||
import pro.taskana.task.api.exceptions.AttachmentPersistenceException;
|
import pro.taskana.task.api.exceptions.AttachmentPersistenceException;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package pro.taskana.example;
|
package pro.taskana.example;
|
||||||
|
|
||||||
import javax.ejb.Stateless;
|
import jakarta.ejb.Stateless;
|
||||||
import javax.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import pro.taskana.task.api.TaskService;
|
import pro.taskana.task.api.TaskService;
|
||||||
|
|
||||||
/** example Taskana EJB. */
|
/** example Taskana EJB. */
|
||||||
|
|
|
@ -39,9 +39,24 @@
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>javax</groupId>
|
<groupId>jakarta.platform</groupId>
|
||||||
<artifactId>javaee-api</artifactId>
|
<artifactId>jakarta.jakartaee-api</artifactId>
|
||||||
<version>${version.javaee-api}</version>
|
<version>${version.jakartaee-api}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>jakarta.enterprise</groupId>
|
||||||
|
<artifactId>jakarta.enterprise.cdi-api</artifactId>
|
||||||
|
<version>${version.jakarta.enterprise.cdi-api}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>jakarta.annotation</groupId>
|
||||||
|
<artifactId>jakarta.annotation-api</artifactId>
|
||||||
|
<version>${version.jakarta.annotation-api}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>jakarta.inject</groupId>
|
||||||
|
<artifactId>jakarta.inject-api</artifactId>
|
||||||
|
<version>${version.jakarta.inject-api}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>pro.taskana</groupId>
|
<groupId>pro.taskana</groupId>
|
||||||
|
@ -77,8 +92,8 @@
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>javax.servlet</groupId>
|
<groupId>jakarta.servlet</groupId>
|
||||||
<artifactId>javax.servlet-api</artifactId>
|
<artifactId>jakarta.servlet-api</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
package pro.taskana.common.internal;
|
package pro.taskana.common.internal;
|
||||||
|
|
||||||
|
import jakarta.annotation.PostConstruct;
|
||||||
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
|
import jakarta.enterprise.inject.Produces;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DatabaseMetaData;
|
import java.sql.DatabaseMetaData;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import javax.annotation.PostConstruct;
|
|
||||||
import javax.enterprise.context.ApplicationScoped;
|
|
||||||
import javax.enterprise.inject.Produces;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import javax.naming.Context;
|
import javax.naming.Context;
|
||||||
import javax.naming.InitialContext;
|
import javax.naming.InitialContext;
|
||||||
import javax.naming.NamingException;
|
import javax.naming.NamingException;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package pro.taskana;
|
package pro.taskana;
|
||||||
|
|
||||||
import javax.ws.rs.ApplicationPath;
|
import jakarta.ws.rs.ApplicationPath;
|
||||||
import javax.ws.rs.core.Application;
|
import jakarta.ws.rs.core.Application;
|
||||||
|
|
||||||
@ApplicationPath("/rest")
|
@ApplicationPath("/rest")
|
||||||
public class RestApplication extends Application {}
|
public class RestApplication extends Application {}
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
package pro.taskana;
|
package pro.taskana;
|
||||||
|
|
||||||
import javax.ejb.EJB;
|
import jakarta.ejb.EJB;
|
||||||
import javax.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import javax.ws.rs.DELETE;
|
import jakarta.ws.rs.DELETE;
|
||||||
import javax.ws.rs.GET;
|
import jakarta.ws.rs.GET;
|
||||||
import javax.ws.rs.POST;
|
import jakarta.ws.rs.POST;
|
||||||
import javax.ws.rs.Path;
|
import jakarta.ws.rs.Path;
|
||||||
import javax.ws.rs.PathParam;
|
import jakarta.ws.rs.PathParam;
|
||||||
import javax.ws.rs.core.Response;
|
import jakarta.ws.rs.core.Response;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import pro.taskana.classification.api.ClassificationService;
|
import pro.taskana.classification.api.ClassificationService;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package pro.taskana;
|
package pro.taskana;
|
||||||
|
|
||||||
import javax.ejb.Stateless;
|
import jakarta.ejb.Stateless;
|
||||||
import javax.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import pro.taskana.classification.api.ClassificationService;
|
import pro.taskana.classification.api.ClassificationService;
|
||||||
import pro.taskana.task.api.TaskService;
|
import pro.taskana.task.api.TaskService;
|
||||||
import pro.taskana.task.api.models.Task;
|
import pro.taskana.task.api.models.Task;
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
<resource-root path="h2-2.1.214.jar"/>
|
<resource-root path="h2-2.1.214.jar"/>
|
||||||
</resources>
|
</resources>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<module name="javax.api"/>
|
<module name="jakarta.api"/>
|
||||||
<module name="javax.transaction.api"/>
|
<module name="jakarta.transaction.api"/>
|
||||||
<module name="javax.servlet.api" optional="true"/>
|
<module name="jakarta.servlet.api" optional="true"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</module>
|
</module>
|
||||||
|
|
|
@ -65,6 +65,7 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
|
<version>${version.mockito-inline}</version>
|
||||||
<artifactId>mockito-inline</artifactId>
|
<artifactId>mockito-inline</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package pro.taskana.example;
|
package pro.taskana.example;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
|
@ -40,9 +40,9 @@
|
||||||
<version>${version.spring.mybatis}</version>
|
<version>${version.spring.mybatis}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>javax.annotation</groupId>
|
<groupId>jakarta.annotation</groupId>
|
||||||
<artifactId>javax.annotation-api</artifactId>
|
<artifactId>jakarta.annotation-api</artifactId>
|
||||||
<version>${version.javax.annotation-api}</version>
|
<version>${version.jakarta.annotation-api}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- test dependencies -->
|
<!-- test dependencies -->
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
|
<version>${version.mockito-inline}</version>
|
||||||
<artifactId>mockito-inline</artifactId>
|
<artifactId>mockito-inline</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
23
pom.xml
23
pom.xml
|
@ -64,21 +64,23 @@
|
||||||
<version.sonatype>1.6.13</version.sonatype>
|
<version.sonatype>1.6.13</version.sonatype>
|
||||||
|
|
||||||
<!-- spring dependencies -->
|
<!-- spring dependencies -->
|
||||||
<version.javax.annotation-api>1.3.2</version.javax.annotation-api>
|
<version.jakarta.annotation-api>2.1.1</version.jakarta.annotation-api>
|
||||||
<version.spring.core>2.0.0.RELEASE</version.spring.core>
|
<version.spring.core>3.0.0</version.spring.core>
|
||||||
<version.spring.boot>2.7.17</version.spring.boot>
|
<version.spring.boot>3.1.5</version.spring.boot>
|
||||||
<version.spring.mybatis>2.1.1</version.spring.mybatis>
|
<version.spring.mybatis>2.1.1</version.spring.mybatis>
|
||||||
|
|
||||||
<!-- wildfly dependencies -->
|
<!-- wildfly dependencies -->
|
||||||
<version.wildfly>25.0.1.Final</version.wildfly>
|
<version.wildfly>25.0.1.Final</version.wildfly>
|
||||||
|
|
||||||
<!-- camunda dependencies -->
|
<!-- camunda dependencies -->
|
||||||
<version.camunda.dmn>7.19.0</version.camunda.dmn>
|
<version.camunda.dmn>7.20.0</version.camunda.dmn>
|
||||||
|
|
||||||
<!-- java ee dependencies -->
|
<!-- java ee dependencies -->
|
||||||
<version.thorntail>2.7.0.Final</version.thorntail>
|
<version.thorntail>2.7.0.Final</version.thorntail>
|
||||||
<version.javaee-api>8.0.1</version.javaee-api>
|
<version.jakartaee-api>10.0.0</version.jakartaee-api>
|
||||||
<version.javax.servlet>4.0.1</version.javax.servlet>
|
<version.jakarta.enterprise.cdi-api>4.0.1</version.jakarta.enterprise.cdi-api>
|
||||||
|
<version.jakarta.inject-api>2.0.1</version.jakarta.inject-api>
|
||||||
|
<version.jakarta.servlet>6.0.0</version.jakarta.servlet>
|
||||||
<version.arquillian>1.5.0.Final</version.arquillian>
|
<version.arquillian>1.5.0.Final</version.arquillian>
|
||||||
<version.arquillian.managed.wildfly>3.0.1.Final</version.arquillian.managed.wildfly>
|
<version.arquillian.managed.wildfly>3.0.1.Final</version.arquillian.managed.wildfly>
|
||||||
|
|
||||||
|
@ -88,9 +90,10 @@
|
||||||
<version.equalsverifier>3.15.2</version.equalsverifier>
|
<version.equalsverifier>3.15.2</version.equalsverifier>
|
||||||
<version.openpojo>0.9.1</version.openpojo>
|
<version.openpojo>0.9.1</version.openpojo>
|
||||||
<version.jacoco>0.8.11</version.jacoco>
|
<version.jacoco>0.8.11</version.jacoco>
|
||||||
<version.slf4j-test>1.2.0</version.slf4j-test>
|
<version.slf4j-test>3.0.1</version.slf4j-test>
|
||||||
<version.auto-restdocs>2.0.11</version.auto-restdocs>
|
<version.auto-restdocs>2.0.11</version.auto-restdocs>
|
||||||
<version.testcontainers>1.19.0</version.testcontainers>
|
<version.testcontainers>1.19.0</version.testcontainers>
|
||||||
|
<version.mockito-inline>5.2.0</version.mockito-inline>
|
||||||
|
|
||||||
<!-- AspectJ dependencies -->
|
<!-- AspectJ dependencies -->
|
||||||
<version.aspectj-maven-plugin>1.14.0</version.aspectj-maven-plugin>
|
<version.aspectj-maven-plugin>1.14.0</version.aspectj-maven-plugin>
|
||||||
|
@ -98,10 +101,10 @@
|
||||||
|
|
||||||
<!-- Excel to DMN converter dependencies -->
|
<!-- Excel to DMN converter dependencies -->
|
||||||
<version.dmn-xlsx-converter>0.3.0</version.dmn-xlsx-converter>
|
<version.dmn-xlsx-converter>0.3.0</version.dmn-xlsx-converter>
|
||||||
<version.jaxb-api>2.3.1</version.jaxb-api>
|
<version.jakarta.xml.bind-api>2.3.3</version.jakarta.xml.bind-api>
|
||||||
<version.jaxb-core>4.0.4</version.jaxb-core>
|
<version.jaxb-core>2.3.0.1</version.jaxb-core>
|
||||||
<version.jaxb-impl>2.3.8</version.jaxb-impl>
|
<version.jaxb-impl>2.3.8</version.jaxb-impl>
|
||||||
<version.javax.activation>1.1.1</version.javax.activation>
|
<version.jakarta.activation>2.1.2</version.jakarta.activation>
|
||||||
|
|
||||||
<!-- database driver versions -->
|
<!-- database driver versions -->
|
||||||
<version.db2>11.5.6.0</version.db2>
|
<version.db2>11.5.6.0</version.db2>
|
||||||
|
|
|
@ -9,7 +9,10 @@ import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.http.HttpMethod;
|
import org.springframework.http.HttpMethod;
|
||||||
import org.springframework.ldap.core.support.BaseLdapPathContextSource;
|
import org.springframework.ldap.core.support.BaseLdapPathContextSource;
|
||||||
import org.springframework.security.authentication.AuthenticationManager;
|
import org.springframework.security.authentication.AuthenticationManager;
|
||||||
|
import org.springframework.security.config.Customizer;
|
||||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||||
|
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
|
||||||
|
import org.springframework.security.config.annotation.web.configurers.HeadersConfigurer;
|
||||||
import org.springframework.security.config.ldap.LdapPasswordComparisonAuthenticationManagerFactory;
|
import org.springframework.security.config.ldap.LdapPasswordComparisonAuthenticationManagerFactory;
|
||||||
import org.springframework.security.core.GrantedAuthority;
|
import org.springframework.security.core.GrantedAuthority;
|
||||||
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
||||||
|
@ -58,33 +61,30 @@ public class BootWebSecurityConfigurer {
|
||||||
@Bean
|
@Bean
|
||||||
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
||||||
HttpSecurity httpSecurity =
|
HttpSecurity httpSecurity =
|
||||||
http.authorizeRequests()
|
http.authorizeHttpRequests(
|
||||||
.antMatchers("/css/**", "/img/**")
|
authorizeHttpRequests ->
|
||||||
.permitAll()
|
authorizeHttpRequests
|
||||||
.and()
|
.requestMatchers("/css/**", "/img/**")
|
||||||
.authorizeRequests()
|
.permitAll()
|
||||||
.antMatchers(HttpMethod.GET, "/docs/**")
|
.requestMatchers(HttpMethod.GET, "/docs/**")
|
||||||
.permitAll()
|
.permitAll())
|
||||||
.and()
|
|
||||||
.addFilter(jaasApiIntegrationFilter())
|
.addFilter(jaasApiIntegrationFilter())
|
||||||
.addFilterAfter(new SpringSecurityToJaasFilter(), JaasApiIntegrationFilter.class);
|
.addFilterAfter(new SpringSecurityToJaasFilter(), JaasApiIntegrationFilter.class);
|
||||||
|
|
||||||
if (enableCsrf) {
|
if (enableCsrf) {
|
||||||
CookieCsrfTokenRepository csrfTokenRepository = CookieCsrfTokenRepository.withHttpOnlyFalse();
|
CookieCsrfTokenRepository csrfTokenRepository = CookieCsrfTokenRepository.withHttpOnlyFalse();
|
||||||
csrfTokenRepository.setCookiePath("/");
|
csrfTokenRepository.setCookiePath("/");
|
||||||
httpSecurity.csrf().csrfTokenRepository(csrfTokenRepository);
|
httpSecurity.csrf(csrf -> csrf.csrfTokenRepository(csrfTokenRepository));
|
||||||
} else {
|
} else {
|
||||||
httpSecurity.csrf().disable().httpBasic();
|
httpSecurity.csrf(AbstractHttpConfigurer::disable).httpBasic(Customizer.withDefaults());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (devMode) {
|
if (devMode) {
|
||||||
http.headers()
|
http.headers(
|
||||||
.frameOptions()
|
headers -> headers.frameOptions(HeadersConfigurer.FrameOptionsConfig::sameOrigin))
|
||||||
.sameOrigin()
|
.authorizeHttpRequests(
|
||||||
.and()
|
authorizeHttpRequests ->
|
||||||
.authorizeRequests()
|
authorizeHttpRequests.requestMatchers("/h2-console/**").permitAll());
|
||||||
.antMatchers("/h2-console/**")
|
|
||||||
.permitAll();
|
|
||||||
} else {
|
} else {
|
||||||
addLoginPageConfiguration(http);
|
addLoginPageConfiguration(http);
|
||||||
}
|
}
|
||||||
|
@ -119,23 +119,19 @@ public class BootWebSecurityConfigurer {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void addLoginPageConfiguration(HttpSecurity http) throws Exception {
|
protected void addLoginPageConfiguration(HttpSecurity http) throws Exception {
|
||||||
http.authorizeRequests()
|
http.authorizeHttpRequests(
|
||||||
.anyRequest()
|
authorizeHttpRequests -> authorizeHttpRequests.anyRequest().fullyAuthenticated())
|
||||||
.fullyAuthenticated()
|
.formLogin(
|
||||||
.and()
|
formLogin ->
|
||||||
.formLogin()
|
formLogin.loginPage("/login").failureUrl("/login?error").defaultSuccessUrl("/"))
|
||||||
.loginPage("/login")
|
.logout(
|
||||||
.failureUrl("/login?error")
|
logout ->
|
||||||
.defaultSuccessUrl("/")
|
logout
|
||||||
.permitAll()
|
.invalidateHttpSession(true)
|
||||||
.and()
|
.clearAuthentication(true)
|
||||||
.logout()
|
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
|
||||||
.invalidateHttpSession(true)
|
.logoutSuccessUrl("/login?logout")
|
||||||
.clearAuthentication(true)
|
.deleteCookies("JSESSIONID"));
|
||||||
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
|
|
||||||
.logoutSuccessUrl("/login?logout")
|
|
||||||
.deleteCookies("JSESSIONID")
|
|
||||||
.permitAll();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected JaasApiIntegrationFilter jaasApiIntegrationFilter() {
|
protected JaasApiIntegrationFilter jaasApiIntegrationFilter() {
|
||||||
|
|
|
@ -2,8 +2,8 @@ package pro.taskana.example.rest;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||||
|
import jakarta.annotation.PostConstruct;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.annotation.PostConstruct;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.http.converter.HttpMessageConverter;
|
import org.springframework.http.converter.HttpMessageConverter;
|
||||||
|
|
|
@ -65,8 +65,8 @@
|
||||||
<version>${version.spring.core}</version>
|
<version>${version.spring.core}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>javax.servlet</groupId>
|
<groupId>jakarta.servlet</groupId>
|
||||||
<artifactId>javax.servlet-api</artifactId>
|
<artifactId>jakarta.servlet-api</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
package pro.taskana.example.wildfly.security;
|
package pro.taskana.example.wildfly.security;
|
||||||
|
|
||||||
|
import jakarta.servlet.FilterChain;
|
||||||
|
import jakarta.servlet.ServletException;
|
||||||
|
import jakarta.servlet.ServletRequest;
|
||||||
|
import jakarta.servlet.ServletResponse;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.security.auth.Subject;
|
import javax.security.auth.Subject;
|
||||||
import javax.servlet.FilterChain;
|
|
||||||
import javax.servlet.ServletException;
|
|
||||||
import javax.servlet.ServletRequest;
|
|
||||||
import javax.servlet.ServletResponse;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.filter.GenericFilterBean;
|
import org.springframework.web.filter.GenericFilterBean;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package pro.taskana.example.wildfly.security;
|
package pro.taskana.example.wildfly.security;
|
||||||
|
|
||||||
import javax.servlet.ServletException;
|
import jakarta.servlet.ServletException;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
|
|
|
@ -3,6 +3,7 @@ package pro.taskana.example.wildfly.security;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||||
|
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
|
||||||
import org.springframework.security.web.SecurityFilterChain;
|
import org.springframework.security.web.SecurityFilterChain;
|
||||||
import org.springframework.security.web.jaasapi.JaasApiIntegrationFilter;
|
import org.springframework.security.web.jaasapi.JaasApiIntegrationFilter;
|
||||||
|
|
||||||
|
@ -17,8 +18,7 @@ public class WildflyWebSecurityConfigurer {
|
||||||
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
||||||
http.addFilter(jaasApiIntegrationFilter())
|
http.addFilter(jaasApiIntegrationFilter())
|
||||||
.addFilterAfter(new ElytronToJaasFilter(), JaasApiIntegrationFilter.class)
|
.addFilterAfter(new ElytronToJaasFilter(), JaasApiIntegrationFilter.class)
|
||||||
.csrf()
|
.csrf(AbstractHttpConfigurer::disable);
|
||||||
.disable();
|
|
||||||
return http.build();
|
return http.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
<module xmlns="urn:jboss:module:1.1" name="org.postgresql.postgresql">
|
<module xmlns="urn:jboss:module:1.1" name="org.postgresql.postgresql">
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<module name="javax.api"/>
|
<module name="jakarta.api"/>
|
||||||
<module name="javax.transaction.api"/>
|
<module name="jakarta.transaction.api"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<resources>
|
<resources>
|
||||||
|
|
|
@ -32,9 +32,9 @@
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>javax.servlet</groupId>
|
<groupId>jakarta.servlet</groupId>
|
||||||
<artifactId>javax.servlet-api</artifactId>
|
<artifactId>jakarta.servlet-api</artifactId>
|
||||||
<version>${version.javax.servlet}</version>
|
<version>${version.jakarta.servlet}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework</groupId>
|
<groupId>org.springframework</groupId>
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
package pro.taskana.rest.test;
|
package pro.taskana.rest.test;
|
||||||
|
|
||||||
|
import jakarta.servlet.FilterChain;
|
||||||
|
import jakarta.servlet.ServletException;
|
||||||
|
import jakarta.servlet.ServletRequest;
|
||||||
|
import jakarta.servlet.ServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.security.AccessController;
|
import java.security.AccessController;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import javax.security.auth.Subject;
|
import javax.security.auth.Subject;
|
||||||
import javax.servlet.FilterChain;
|
|
||||||
import javax.servlet.ServletException;
|
|
||||||
import javax.servlet.ServletRequest;
|
|
||||||
import javax.servlet.ServletResponse;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.security.core.Authentication;
|
import org.springframework.security.core.Authentication;
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package pro.taskana.rest.test;
|
package pro.taskana.rest.test;
|
||||||
|
|
||||||
|
import static org.springframework.security.config.Customizer.withDefaults;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
@ -12,6 +14,7 @@ import org.springframework.context.annotation.Primary;
|
||||||
import org.springframework.ldap.core.support.BaseLdapPathContextSource;
|
import org.springframework.ldap.core.support.BaseLdapPathContextSource;
|
||||||
import org.springframework.security.authentication.AuthenticationManager;
|
import org.springframework.security.authentication.AuthenticationManager;
|
||||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||||
|
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
|
||||||
import org.springframework.security.config.ldap.LdapPasswordComparisonAuthenticationManagerFactory;
|
import org.springframework.security.config.ldap.LdapPasswordComparisonAuthenticationManagerFactory;
|
||||||
import org.springframework.security.core.GrantedAuthority;
|
import org.springframework.security.core.GrantedAuthority;
|
||||||
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
||||||
|
@ -102,17 +105,12 @@ public class TestWebSecurityConfig {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
||||||
http.authorizeRequests()
|
http.csrf(AbstractHttpConfigurer::disable)
|
||||||
.and()
|
.httpBasic(withDefaults())
|
||||||
.csrf()
|
|
||||||
.disable()
|
|
||||||
.httpBasic()
|
|
||||||
.and()
|
|
||||||
.addFilter(jaasApiIntegrationFilter())
|
.addFilter(jaasApiIntegrationFilter())
|
||||||
.addFilterAfter(new SpringSecurityToJaasFilter(), JaasApiIntegrationFilter.class)
|
.addFilterAfter(new SpringSecurityToJaasFilter(), JaasApiIntegrationFilter.class)
|
||||||
.authorizeRequests()
|
.authorizeHttpRequests(
|
||||||
.anyRequest()
|
authorizeHttpRequests -> authorizeHttpRequests.anyRequest().fullyAuthenticated());
|
||||||
.fullyAuthenticated();
|
|
||||||
return http.build();
|
return http.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,13 +50,13 @@
|
||||||
<artifactId>spring-security-ldap</artifactId>
|
<artifactId>spring-security-ldap</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>javax.servlet</groupId>
|
<groupId>jakarta.servlet</groupId>
|
||||||
<artifactId>javax.servlet-api</artifactId>
|
<artifactId>jakarta.servlet-api</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>javax.validation</groupId>
|
<groupId>jakarta.validation</groupId>
|
||||||
<artifactId>validation-api</artifactId>
|
<artifactId>jakarta.validation-api</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.fasterxml.jackson.core</groupId>
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package pro.taskana.classification.rest;
|
package pro.taskana.classification.rest;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import java.beans.ConstructorProperties;
|
import java.beans.ConstructorProperties;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.hateoas.MediaTypes;
|
import org.springframework.hateoas.MediaTypes;
|
||||||
import org.springframework.hateoas.config.EnableHypermediaSupport;
|
import org.springframework.hateoas.config.EnableHypermediaSupport;
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package pro.taskana.classification.rest.models;
|
package pro.taskana.classification.rest.models;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
import java.beans.ConstructorProperties;
|
import java.beans.ConstructorProperties;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import javax.validation.constraints.NotNull;
|
|
||||||
import pro.taskana.common.rest.models.PageMetadata;
|
import pro.taskana.common.rest.models.PageMetadata;
|
||||||
import pro.taskana.common.rest.models.PagedRepresentationModel;
|
import pro.taskana.common.rest.models.PagedRepresentationModel;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package pro.taskana.classification.rest.models;
|
package pro.taskana.classification.rest.models;
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import org.springframework.hateoas.RepresentationModel;
|
import org.springframework.hateoas.RepresentationModel;
|
||||||
import pro.taskana.classification.api.models.ClassificationSummary;
|
import pro.taskana.classification.api.models.ClassificationSummary;
|
||||||
|
|
||||||
|
|
|
@ -2,9 +2,9 @@ package pro.taskana.common.rest;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import jakarta.validation.constraints.Min;
|
||||||
import java.beans.ConstructorProperties;
|
import java.beans.ConstructorProperties;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.validation.constraints.Min;
|
|
||||||
import pro.taskana.common.api.BaseQuery;
|
import pro.taskana.common.api.BaseQuery;
|
||||||
import pro.taskana.common.rest.models.PageMetadata;
|
import pro.taskana.common.rest.models.PageMetadata;
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
package pro.taskana.common.rest;
|
package pro.taskana.common.rest;
|
||||||
|
|
||||||
|
import jakarta.servlet.FilterChain;
|
||||||
|
import jakarta.servlet.ServletException;
|
||||||
|
import jakarta.servlet.ServletRequest;
|
||||||
|
import jakarta.servlet.ServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.security.AccessController;
|
import java.security.AccessController;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import javax.security.auth.Subject;
|
import javax.security.auth.Subject;
|
||||||
import javax.servlet.FilterChain;
|
|
||||||
import javax.servlet.ServletException;
|
|
||||||
import javax.servlet.ServletRequest;
|
|
||||||
import javax.servlet.ServletResponse;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.security.core.Authentication;
|
import org.springframework.security.core.Authentication;
|
||||||
|
|
|
@ -20,10 +20,11 @@ import org.springframework.core.annotation.Order;
|
||||||
import org.springframework.core.convert.ConversionFailedException;
|
import org.springframework.core.convert.ConversionFailedException;
|
||||||
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.HttpHeaders;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.HttpStatusCode;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.lang.NonNull;
|
import org.springframework.lang.NonNull;
|
||||||
import org.springframework.validation.BindException;
|
|
||||||
import org.springframework.validation.FieldError;
|
import org.springframework.validation.FieldError;
|
||||||
|
import org.springframework.web.bind.MethodArgumentNotValidException;
|
||||||
import org.springframework.web.bind.annotation.ControllerAdvice;
|
import org.springframework.web.bind.annotation.ControllerAdvice;
|
||||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||||
import org.springframework.web.context.request.WebRequest;
|
import org.springframework.web.context.request.WebRequest;
|
||||||
|
@ -172,10 +173,10 @@ public class TaskanaRestExceptionHandler extends ResponseEntityExceptionHandler
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@NonNull
|
@NonNull
|
||||||
protected ResponseEntity<Object> handleBindException(
|
protected ResponseEntity<Object> handleMethodArgumentNotValid(
|
||||||
BindException ex,
|
MethodArgumentNotValidException ex,
|
||||||
@NonNull HttpHeaders headers,
|
@NonNull HttpHeaders headers,
|
||||||
@NonNull HttpStatus status,
|
@NonNull HttpStatusCode status,
|
||||||
@NonNull WebRequest request) {
|
@NonNull WebRequest request) {
|
||||||
|
|
||||||
MalformedQueryParameter[] wrongQueryParameters =
|
MalformedQueryParameter[] wrongQueryParameters =
|
||||||
|
|
|
@ -2,6 +2,7 @@ package pro.taskana.common.rest.ldap;
|
||||||
|
|
||||||
import static java.util.function.Predicate.not;
|
import static java.util.function.Predicate.not;
|
||||||
|
|
||||||
|
import jakarta.annotation.PostConstruct;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
@ -12,7 +13,6 @@ import java.util.Set;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
import javax.annotation.PostConstruct;
|
|
||||||
import javax.naming.directory.SearchControls;
|
import javax.naming.directory.SearchControls;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package pro.taskana.common.rest.models;
|
package pro.taskana.common.rest.models;
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import org.springframework.hateoas.RepresentationModel;
|
import org.springframework.hateoas.RepresentationModel;
|
||||||
import org.springframework.lang.NonNull;
|
import org.springframework.lang.NonNull;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package pro.taskana.common.rest.util;
|
package pro.taskana.common.rest.util;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
@ -8,7 +9,6 @@ import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||||
|
|
||||||
public class QueryParamsValidator {
|
public class QueryParamsValidator {
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package pro.taskana.task.rest;
|
package pro.taskana.task.rest;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import java.beans.ConstructorProperties;
|
import java.beans.ConstructorProperties;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.hateoas.config.EnableHypermediaSupport;
|
import org.springframework.hateoas.config.EnableHypermediaSupport;
|
||||||
import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType;
|
import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType;
|
||||||
|
|
|
@ -2,6 +2,7 @@ package pro.taskana.task.rest;
|
||||||
|
|
||||||
import static java.util.function.Predicate.not;
|
import static java.util.function.Predicate.not;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import java.beans.ConstructorProperties;
|
import java.beans.ConstructorProperties;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -10,7 +11,6 @@ import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.hateoas.config.EnableHypermediaSupport;
|
import org.springframework.hateoas.config.EnableHypermediaSupport;
|
||||||
import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType;
|
import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType;
|
||||||
|
@ -109,11 +109,12 @@ public class TaskController {
|
||||||
NotAuthorizedOnWorkbasketException {
|
NotAuthorizedOnWorkbasketException {
|
||||||
|
|
||||||
if (!taskRepresentationModel.getAttachments().stream()
|
if (!taskRepresentationModel.getAttachments().stream()
|
||||||
.filter(att -> Objects.nonNull(att.getTaskId()))
|
.filter(att -> Objects.nonNull(att.getTaskId()))
|
||||||
.filter(att -> !att.getTaskId().equals(taskRepresentationModel.getTaskId()))
|
.filter(att -> !att.getTaskId().equals(taskRepresentationModel.getTaskId()))
|
||||||
.collect(Collectors.toList()).isEmpty()) {
|
.collect(Collectors.toList())
|
||||||
|
.isEmpty()) {
|
||||||
throw new InvalidArgumentException(
|
throw new InvalidArgumentException(
|
||||||
"An attachments' taskId must be empty or equal to the id of the task it belongs to");
|
"An attachments' taskId must be empty or equal to the id of the task it belongs to");
|
||||||
}
|
}
|
||||||
|
|
||||||
Task fromResource = taskRepresentationModelAssembler.toEntityModel(taskRepresentationModel);
|
Task fromResource = taskRepresentationModelAssembler.toEntityModel(taskRepresentationModel);
|
||||||
|
@ -597,11 +598,12 @@ public class TaskController {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!taskRepresentationModel.getAttachments().stream()
|
if (!taskRepresentationModel.getAttachments().stream()
|
||||||
.filter(att -> Objects.nonNull(att.getTaskId()))
|
.filter(att -> Objects.nonNull(att.getTaskId()))
|
||||||
.filter(att -> !att.getTaskId().equals(taskRepresentationModel.getTaskId()))
|
.filter(att -> !att.getTaskId().equals(taskRepresentationModel.getTaskId()))
|
||||||
.collect(Collectors.toList()).isEmpty()) {
|
.collect(Collectors.toList())
|
||||||
|
.isEmpty()) {
|
||||||
throw new InvalidArgumentException(
|
throw new InvalidArgumentException(
|
||||||
"An attachments' taskId must be empty or equal to the id of the task it belongs to");
|
"An attachments' taskId must be empty or equal to the id of the task it belongs to");
|
||||||
}
|
}
|
||||||
|
|
||||||
Task task = taskRepresentationModelAssembler.toEntityModel(taskRepresentationModel);
|
Task task = taskRepresentationModelAssembler.toEntityModel(taskRepresentationModel);
|
||||||
|
|
|
@ -2,10 +2,10 @@ package pro.taskana.task.rest.models;
|
||||||
|
|
||||||
import static pro.taskana.task.api.models.TaskSummary.DEFAULT_MANUAL_PRIORITY;
|
import static pro.taskana.task.api.models.TaskSummary.DEFAULT_MANUAL_PRIORITY;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.validation.constraints.NotNull;
|
|
||||||
import org.springframework.hateoas.RepresentationModel;
|
import org.springframework.hateoas.RepresentationModel;
|
||||||
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
||||||
import pro.taskana.task.api.TaskState;
|
import pro.taskana.task.api.TaskState;
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package pro.taskana.user.rest;
|
package pro.taskana.user.rest;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.hateoas.config.EnableHypermediaSupport;
|
import org.springframework.hateoas.config.EnableHypermediaSupport;
|
||||||
import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType;
|
import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType;
|
||||||
|
@ -41,9 +41,10 @@ public class UserController {
|
||||||
private final CurrentUserContext currentUserContext;
|
private final CurrentUserContext currentUserContext;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
UserController(UserService userService,
|
UserController(
|
||||||
UserRepresentationModelAssembler userAssembler,
|
UserService userService,
|
||||||
CurrentUserContext currentUserContext) {
|
UserRepresentationModelAssembler userAssembler,
|
||||||
|
CurrentUserContext currentUserContext) {
|
||||||
this.userService = userService;
|
this.userService = userService;
|
||||||
this.userAssembler = userAssembler;
|
this.userAssembler = userAssembler;
|
||||||
this.currentUserContext = currentUserContext;
|
this.currentUserContext = currentUserContext;
|
||||||
|
@ -68,8 +69,8 @@ public class UserController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This endpoint retrieves multiple Users. If a userId can't be found in the database it will be
|
* This endpoint retrieves multiple Users. If a userId can't be found in the database it will be
|
||||||
* ignored. If none of the given userIds is valid, the returned list will be empty.
|
* ignored. If none of the given userIds is valid, the returned list will be empty. If currentUser
|
||||||
* If currentUser is set, the current User from the context will be retrieved as well
|
* is set, the current User from the context will be retrieved as well
|
||||||
*
|
*
|
||||||
* @title Get multiple Users
|
* @title Get multiple Users
|
||||||
* @param request the HttpServletRequest of the request itself
|
* @param request the HttpServletRequest of the request itself
|
||||||
|
@ -85,7 +86,7 @@ public class UserController {
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
@RequestParam(name = "user-id", required = false) String[] userIds,
|
@RequestParam(name = "user-id", required = false) String[] userIds,
|
||||||
@RequestParam(name = "current-user", required = false) String currentUser)
|
@RequestParam(name = "current-user", required = false) String currentUser)
|
||||||
throws InvalidArgumentException, UserNotFoundException {
|
throws InvalidArgumentException, UserNotFoundException {
|
||||||
Set<User> users = new HashSet<>();
|
Set<User> users = new HashSet<>();
|
||||||
|
|
||||||
if (userIds != null) {
|
if (userIds != null) {
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package pro.taskana.user.rest.models;
|
package pro.taskana.user.rest.models;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import javax.validation.constraints.NotNull;
|
|
||||||
import org.springframework.hateoas.RepresentationModel;
|
import org.springframework.hateoas.RepresentationModel;
|
||||||
import pro.taskana.user.api.models.User;
|
import pro.taskana.user.api.models.User;
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package pro.taskana.workbasket.rest;
|
package pro.taskana.workbasket.rest;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import java.beans.ConstructorProperties;
|
import java.beans.ConstructorProperties;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.hateoas.config.EnableHypermediaSupport;
|
import org.springframework.hateoas.config.EnableHypermediaSupport;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
package pro.taskana.workbasket.rest;
|
package pro.taskana.workbasket.rest;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import java.beans.ConstructorProperties;
|
import java.beans.ConstructorProperties;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
|
@ -32,9 +32,9 @@
|
||||||
<version>${version.dmn-xlsx-converter}</version>
|
<version>${version.dmn-xlsx-converter}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>javax.xml.bind</groupId>
|
<groupId>jakarta.xml.bind</groupId>
|
||||||
<artifactId>jaxb-api</artifactId>
|
<artifactId>jakarta.xml.bind-api</artifactId>
|
||||||
<version>${version.jaxb-api}</version>
|
<version>${version.jakarta.xml.bind-api}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.sun.xml.bind</groupId>
|
<groupId>com.sun.xml.bind</groupId>
|
||||||
|
@ -47,9 +47,9 @@
|
||||||
<version>${version.jaxb-impl}</version>
|
<version>${version.jaxb-impl}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>javax.activation</groupId>
|
<groupId>jakarta.activation</groupId>
|
||||||
<artifactId>activation</artifactId>
|
<artifactId>jakarta.activation-api</artifactId>
|
||||||
<version>${version.javax.activation}</version>
|
<version>${version.jakarta.activation}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- test dependencies -->
|
<!-- test dependencies -->
|
||||||
|
|
Loading…
Reference in New Issue