TSK-1946: update to Spring Boot 2.7.8 (#1999)
* TSK-1946: H2 Update * TSK-1946: add new run configurations * TSK-1946: update to Spring Boot 2.7.3 Updated Spring Security Configs to new component-based configuration. See https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter Co-authored-by: Marcel Bagemihl <marcel.bagemihl@novatec-gmbh.de> * TSK-1946: wildfly now only starting postgres db * TSK-1946: drop sup 4 sys prop db.type. We only execute PSQL * TSK-1946: create new module 'taskana-rest-spring-test-lib' to simplify the Spring Security Configuration Setup for Spring Tests * TSK-1946: H2 Update * TSK-1946: add new run configurations * TSK-1946: update to Spring Boot 2.7.3 Updated Spring Security Configs to new component-based configuration. See https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter Co-authored-by: Marcel Bagemihl <marcel.bagemihl@novatec-gmbh.de> * TSK-1946: wildfly now only starting postgres db * TSK-1946: drop sup 4 sys prop db.type. We only execute PSQL * TSK-1946: create new module 'taskana-rest-spring-test-lib' to simplify the Spring Security Configuration Setup for Spring Tests * TSK-1946: update to Spring Boot 2.7.8 --------- Co-authored-by: Yakup Ensar Evli <54323073+ensarevlideveloper@users.noreply.github.com> Co-authored-by: Mustapha Zorgati <15628173+mustaphazorgati@users.noreply.github.com> Co-authored-by: Marcel Bagemihl <marcel.bagemihl@novatec-gmbh.de> Co-authored-by: arolfes <arolfes@users.noreply.github.com>
This commit is contained in:
parent
00be11caee
commit
48d85e0ee7
|
@ -254,6 +254,7 @@ jobs:
|
|||
- taskana-spi-routing-dmn-router
|
||||
- taskana-routing-rest
|
||||
- taskana-rest-spring
|
||||
- taskana-rest-spring-test-lib
|
||||
- taskana-rest-spring-example-common
|
||||
- taskana-loghistory-provider
|
||||
- taskana-simplehistory-provider
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="All in taskana-core" type="JUnit" factoryName="JUnit" folderName="lib" nameIsGenerated="true">
|
||||
<configuration default="false" name="All in taskana-core H2" type="JUnit" factoryName="JUnit" folderName="lib">
|
||||
<module name="taskana-core" />
|
||||
<option name="PACKAGE_NAME" value="" />
|
||||
<option name="MAIN_CLASS_NAME" value="" />
|
|
@ -0,0 +1,21 @@
|
|||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="All in taskana-core-test DB2" type="JUnit" factoryName="JUnit" folderName="lib">
|
||||
<module name="taskana-core-test" />
|
||||
<extension name="coverage">
|
||||
<pattern>
|
||||
<option name="PATTERN" value="pro.taskana.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</pattern>
|
||||
</extension>
|
||||
<option name="PACKAGE_NAME" value="" />
|
||||
<option name="MAIN_CLASS_NAME" value="" />
|
||||
<option name="METHOD_NAME" value="" />
|
||||
<option name="TEST_OBJECT" value="package" />
|
||||
<envs>
|
||||
<env name="DB" value="DB2" />
|
||||
</envs>
|
||||
<method v="2">
|
||||
<option name="Make" enabled="true" />
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
|
@ -0,0 +1,18 @@
|
|||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="All in taskana-core-test H2" type="JUnit" factoryName="JUnit" folderName="lib">
|
||||
<module name="taskana-core-test" />
|
||||
<extension name="coverage">
|
||||
<pattern>
|
||||
<option name="PATTERN" value="pro.taskana.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</pattern>
|
||||
</extension>
|
||||
<option name="PACKAGE_NAME" value="" />
|
||||
<option name="MAIN_CLASS_NAME" value="" />
|
||||
<option name="METHOD_NAME" value="" />
|
||||
<option name="TEST_OBJECT" value="package" />
|
||||
<method v="2">
|
||||
<option name="Make" enabled="true" />
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
|
@ -0,0 +1,21 @@
|
|||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="All in taskana-core-test POSTGRES" type="JUnit" factoryName="JUnit" folderName="lib">
|
||||
<module name="taskana-core-test" />
|
||||
<extension name="coverage">
|
||||
<pattern>
|
||||
<option name="PATTERN" value="pro.taskana.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</pattern>
|
||||
</extension>
|
||||
<option name="PACKAGE_NAME" value="" />
|
||||
<option name="MAIN_CLASS_NAME" value="" />
|
||||
<option name="METHOD_NAME" value="" />
|
||||
<option name="TEST_OBJECT" value="package" />
|
||||
<envs>
|
||||
<env name="DB" value="POSTGRES" />
|
||||
</envs>
|
||||
<method v="2">
|
||||
<option name="Make" enabled="true" />
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
|
@ -1,5 +1,5 @@
|
|||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="All in taskana-simplehistory-provider" type="JUnit" factoryName="JUnit" folderName="history" nameIsGenerated="true">
|
||||
<configuration default="false" name="All in taskana-simplehistory-provider H2" type="JUnit" factoryName="JUnit" folderName="history">
|
||||
<module name="taskana-simplehistory-provider" />
|
||||
<option name="PACKAGE_NAME" value="" />
|
||||
<option name="MAIN_CLASS_NAME" value="" />
|
|
@ -76,6 +76,11 @@
|
|||
<artifactId>taskana-rest-spring</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>pro.taskana</groupId>
|
||||
<artifactId>taskana-rest-spring-test-lib</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>pro.taskana</groupId>
|
||||
<artifactId>taskana-routing-rest</artifactId>
|
||||
|
|
|
@ -11,7 +11,8 @@ import pro.taskana.common.internal.configuration.DbSchemaCreator;
|
|||
class SampleDataGeneratorTest {
|
||||
|
||||
private static final String JDBC_URL =
|
||||
"jdbc:h2:mem:taskana;IGNORECASE=TRUE;LOCK_MODE=0;INIT=CREATE SCHEMA IF NOT EXISTS TASKANA";
|
||||
"jdbc:h2:mem:taskana;NON_KEYWORDS=KEY,VALUE;"
|
||||
+ "IGNORECASE=TRUE;LOCK_MODE=0;INIT=CREATE SCHEMA IF NOT EXISTS TASKANA";
|
||||
|
||||
@Test
|
||||
void getScriptsValidSql() {
|
||||
|
|
|
@ -63,7 +63,7 @@ public final class DataSourceGenerator {
|
|||
private static DataSource createDataSourceForH2() {
|
||||
String jdbcDriver = "org.h2.Driver";
|
||||
String jdbcUrl =
|
||||
"jdbc:h2:mem:taskana;LOCK_MODE=0;"
|
||||
"jdbc:h2:mem:taskana;NON_KEYWORDS=KEY,VALUE;LOCK_MODE=0;"
|
||||
+ "INIT=CREATE SCHEMA IF NOT EXISTS TASKANA\\;"
|
||||
+ "SET COLLATION DEFAULT_de_DE ";
|
||||
String dbUserName = "sa";
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
<!-- test dependencies -->
|
||||
<dependency>
|
||||
<groupId>pro.taskana</groupId>
|
||||
<artifactId>taskana-common-test</artifactId>
|
||||
<artifactId>taskana-rest-spring-test-lib</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
|
|
@ -1,79 +0,0 @@
|
|||
package pro.taskana.simplehistory.rest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||
import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper;
|
||||
import org.springframework.security.ldap.userdetails.LdapAuthoritiesPopulator;
|
||||
import org.springframework.security.web.jaasapi.JaasApiIntegrationFilter;
|
||||
|
||||
import pro.taskana.common.rest.SpringSecurityToJaasFilter;
|
||||
|
||||
@EnableWebSecurity
|
||||
// this class is copied from taskana-rest-spring.
|
||||
// We can't move it to taskana-common-test because we use the SpringSecurityToJaasFilter
|
||||
// which is declared in taskana-rest-spring
|
||||
public class HistoryWebSecurityConfigurer extends WebSecurityConfigurerAdapter {
|
||||
|
||||
private final LdapAuthoritiesPopulator ldapAuthoritiesPopulator;
|
||||
private final GrantedAuthoritiesMapper grantedAuthoritiesMapper;
|
||||
|
||||
private final String ldapServerUrl;
|
||||
private final String ldapBaseDn;
|
||||
private final String ldapGroupSearchBase;
|
||||
private final String ldapUserDnPatterns;
|
||||
|
||||
@Autowired
|
||||
public HistoryWebSecurityConfigurer(
|
||||
@Value("${taskana.ldap.serverUrl:ldap://localhost:10389}") String ldapServerUrl,
|
||||
@Value("${taskana.ldap.baseDn:OU=Test,O=TASKANA}") String ldapBaseDn,
|
||||
@Value("${taskana.ldap.groupSearchBase:cn=groups}") String ldapGroupSearchBase,
|
||||
@Value("${taskana.ldap.userDnPatterns:uid={0},cn=users}") String ldapUserDnPatterns,
|
||||
LdapAuthoritiesPopulator ldapAuthoritiesPopulator,
|
||||
GrantedAuthoritiesMapper grantedAuthoritiesMapper) {
|
||||
this.ldapServerUrl = ldapServerUrl;
|
||||
this.ldapBaseDn = ldapBaseDn;
|
||||
this.ldapGroupSearchBase = ldapGroupSearchBase;
|
||||
this.ldapUserDnPatterns = ldapUserDnPatterns;
|
||||
this.ldapAuthoritiesPopulator = ldapAuthoritiesPopulator;
|
||||
this.grantedAuthoritiesMapper = grantedAuthoritiesMapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
|
||||
auth.ldapAuthentication()
|
||||
.userDnPatterns(ldapUserDnPatterns)
|
||||
.groupSearchBase(ldapGroupSearchBase)
|
||||
.ldapAuthoritiesPopulator(ldapAuthoritiesPopulator)
|
||||
.authoritiesMapper(grantedAuthoritiesMapper)
|
||||
.contextSource()
|
||||
.url(ldapServerUrl + "/" + ldapBaseDn)
|
||||
.and()
|
||||
.passwordCompare()
|
||||
.passwordAttribute("userPassword");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configure(HttpSecurity http) throws Exception {
|
||||
http.authorizeRequests()
|
||||
.and()
|
||||
.csrf()
|
||||
.disable()
|
||||
.httpBasic()
|
||||
.and()
|
||||
.addFilter(jaasApiIntegrationFilter())
|
||||
.addFilterAfter(new SpringSecurityToJaasFilter(), JaasApiIntegrationFilter.class)
|
||||
.authorizeRequests()
|
||||
.anyRequest()
|
||||
.fullyAuthenticated();
|
||||
}
|
||||
|
||||
private JaasApiIntegrationFilter jaasApiIntegrationFilter() {
|
||||
JaasApiIntegrationFilter filter = new JaasApiIntegrationFilter();
|
||||
filter.setCreateEmptySubject(true);
|
||||
return filter;
|
||||
}
|
||||
}
|
|
@ -3,7 +3,7 @@ package pro.taskana.simplehistory.rest;
|
|||
import static java.lang.String.CASE_INSENSITIVE_ORDER;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
import static pro.taskana.common.test.rest.RestHelper.TEMPLATE;
|
||||
import static pro.taskana.rest.test.RestHelper.TEMPLATE;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLEncoder;
|
||||
|
@ -25,8 +25,8 @@ import org.springframework.web.client.HttpStatusCodeException;
|
|||
import org.springframework.web.util.UriComponentsBuilder;
|
||||
|
||||
import pro.taskana.common.rest.models.PageMetadata;
|
||||
import pro.taskana.common.test.rest.RestHelper;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.RestHelper;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
import pro.taskana.simplehistory.rest.models.TaskHistoryEventPagedRepresentationModel;
|
||||
import pro.taskana.simplehistory.rest.models.TaskHistoryEventRepresentationModel;
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuild
|
|||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
||||
|
||||
import pro.taskana.common.test.BaseRestDocTest;
|
||||
import pro.taskana.rest.test.BaseRestDocTest;
|
||||
|
||||
class TaskHistoryEventControllerRestDocTest extends BaseRestDocTest {
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ import java.time.Instant;
|
|||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
import pro.taskana.simplehistory.rest.models.TaskHistoryEventRepresentationModel;
|
||||
import pro.taskana.spi.history.api.events.task.TaskHistoryCustomField;
|
||||
import pro.taskana.spi.history.api.events.task.TaskHistoryEvent;
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
logging.level.pro.taskana=INFO
|
||||
taskana.schemaName=TASKANA
|
||||
spring.main.allow-bean-definition-overriding=true
|
||||
|
||||
######## Taskana DB #######
|
||||
spring.datasource.url=jdbc:h2:mem:taskana;NON_KEYWORDS=KEY,VALUE;IGNORECASE=TRUE;LOCK_MODE=0
|
||||
spring.datasource.driverClassName=org.h2.Driver
|
||||
spring.datasource.username=sa
|
||||
spring.datasource.password=sa
|
||||
taskana.schemaName=TASKANA
|
||||
####### Properties for AccessIdController to connect to LDAP
|
||||
taskana.ldap.serverUrl=ldap://localhost:10389
|
||||
taskana.ldap.bindDn=uid=admin
|
||||
|
@ -29,11 +33,10 @@ taskana.ldap.groupNameAttribute=cn
|
|||
taskana.ldap.minSearchForLength=3
|
||||
taskana.ldap.maxNumberOfReturnedAccessIds=50
|
||||
taskana.ldap.groupsOfUser=memberUid
|
||||
|
||||
# Embedded Spring LDAP server
|
||||
spring.ldap.embedded.base-dn= OU=Test,O=TASKANA
|
||||
spring.ldap.embedded.credential.username= uid=admin
|
||||
spring.ldap.embedded.credential.password= secret
|
||||
spring.ldap.embedded.base-dn=OU=Test,O=TASKANA
|
||||
spring.ldap.embedded.credential.username=uid=admin
|
||||
spring.ldap.embedded.credential.password=secret
|
||||
spring.ldap.embedded.ldif=classpath:taskana-test.ldif
|
||||
spring.ldap.embedded.port= 10389
|
||||
spring.ldap.embedded.port=10389
|
||||
spring.ldap.embedded.validation.enabled=false
|
||||
|
|
|
@ -75,7 +75,8 @@ public class TaskanaProducersTest {
|
|||
|
||||
private Connection getConnection() throws Exception {
|
||||
return DriverManager.getConnection(
|
||||
"jdbc:h2:~/taskana-h2-data/testdb;AUTO_SERVER=TRUE;IGNORECASE=TRUE;LOCK_MODE=0",
|
||||
"jdbc:h2:~/taskana-h2-data/testdb;NON_KEYWORDS=KEY,VALUE;AUTO_SERVER=TRUE;"
|
||||
+ "IGNORECASE=TRUE;LOCK_MODE=0",
|
||||
"SA",
|
||||
"SA");
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ swarm:
|
|||
data-sources:
|
||||
TestDS:
|
||||
driver-name: myh2
|
||||
connection-url: jdbc:h2:~/taskana-h2-data/testdb;AUTO_SERVER=TRUE;IGNORECASE=TRUE;LOCK_MODE=0
|
||||
connection-url: jdbc:h2:~/taskana-h2-data/testdb;NON_KEYWORDS=KEY,VALUE;AUTO_SERVER=TRUE;IGNORECASE=TRUE;LOCK_MODE=0
|
||||
user-name: SA
|
||||
password: SA
|
||||
jdbc-drivers:
|
||||
|
@ -13,3 +13,4 @@ swarm:
|
|||
driver-class-name: org.h2.Driver
|
||||
xa-datasource-name: org.h2.jdbcx.JdbcDataSource
|
||||
driver-module-name: com.h2database.h2
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -5832,15 +5832,15 @@ Cycle detected: Slice classification.internal -> \
|
|||
- Method <pro.taskana.user.internal.UserServiceImpl.getUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (UserServiceImpl.java:62)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.getUsers(java.util.Set)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (UserServiceImpl.java:84)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.createUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:95)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:111)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:116)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:112)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:117)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:120)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:134)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:138)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.determineDomains(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:157)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (UserServiceImpl.java:173)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (UserServiceImpl.java:181)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:118)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:121)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:137)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:141)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.determineDomains(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:160)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (UserServiceImpl.java:176)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (UserServiceImpl.java:184)\
|
||||
5. Dependencies of Slice common.internal\
|
||||
- Method <pro.taskana.common.internal.TaskanaEngineImpl.getClassificationService()> calls constructor <pro.taskana.classification.internal.ClassificationServiceImpl.<init>(pro.taskana.common.internal.InternalTaskanaEngine, pro.taskana.spi.priority.internal.PriorityServiceManager, pro.taskana.classification.internal.ClassificationMapper, pro.taskana.task.internal.TaskMapper)> in (TaskanaEngineImpl.java:185)\
|
||||
- Method <pro.taskana.common.internal.TaskanaEngineImpl.getClassificationService()> references class object <pro.taskana.classification.internal.ClassificationMapper> in (TaskanaEngineImpl.java:188)\
|
||||
|
@ -5892,7 +5892,7 @@ Cycle detected: Slice classification.internal -> \
|
|||
- Method <pro.taskana.workbasket.internal.WorkbasketAccessItemQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketAccessItemQueryImpl.java:163)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketAccessItemQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketAccessItemQueryImpl.java:166)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.createWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:168)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.accessIdsHavePermissions(java.util.List, [Ljava.lang.String;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:171)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.accessIdsHavePermissions(java.util.List, [Ljava.lang.String;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:172)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.createWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:176)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:185)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:190)\
|
||||
|
@ -5905,27 +5905,27 @@ Cycle detected: Slice classification.internal -> \
|
|||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:324)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:327)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:351)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (WorkbasketQueryImpl.java:358)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.lambda$1()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:359)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (WorkbasketQueryImpl.java:359)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.lambda$1()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:360)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:361)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:366)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:367)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:367)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:369)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:369)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:381)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:389)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:370)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:382)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:389)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:393)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:396)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:390)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:394)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:397)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:399)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:404)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:406)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:405)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:407)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:407)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:409)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:417)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:419)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:410)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:418)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:420)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:421)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:422)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:423)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:427)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:432)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:441)\
|
||||
|
@ -5949,9 +5949,9 @@ Cycle detected: Slice classification.internal -> \
|
|||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.getDistributionTargets(java.lang.String, java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:599)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:607)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:609)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:620)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:624)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:634)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:621)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:625)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:635)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:648)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:654)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.addDistributionTarget(java.lang.String, java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:668)\
|
||||
|
@ -6279,15 +6279,15 @@ Cycle detected: Slice classification.internal -> \
|
|||
- Method <pro.taskana.user.internal.UserServiceImpl.getUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (UserServiceImpl.java:62)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.getUsers(java.util.Set)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (UserServiceImpl.java:84)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.createUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:95)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:111)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:116)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:112)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:117)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:120)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:134)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:138)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.determineDomains(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:157)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (UserServiceImpl.java:173)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (UserServiceImpl.java:181)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:118)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:121)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:137)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:141)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.determineDomains(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:160)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (UserServiceImpl.java:176)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (UserServiceImpl.java:184)\
|
||||
6. Dependencies of Slice common.internal\
|
||||
- Method <pro.taskana.common.internal.TaskanaEngineImpl.getClassificationService()> calls constructor <pro.taskana.classification.internal.ClassificationServiceImpl.<init>(pro.taskana.common.internal.InternalTaskanaEngine, pro.taskana.spi.priority.internal.PriorityServiceManager, pro.taskana.classification.internal.ClassificationMapper, pro.taskana.task.internal.TaskMapper)> in (TaskanaEngineImpl.java:185)\
|
||||
- Method <pro.taskana.common.internal.TaskanaEngineImpl.getClassificationService()> references class object <pro.taskana.classification.internal.ClassificationMapper> in (TaskanaEngineImpl.java:188)\
|
||||
|
@ -6342,7 +6342,7 @@ Cycle detected: Slice classification.internal -> \
|
|||
- Method <pro.taskana.workbasket.internal.WorkbasketAccessItemQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketAccessItemQueryImpl.java:163)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketAccessItemQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketAccessItemQueryImpl.java:166)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.createWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:168)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.accessIdsHavePermissions(java.util.List, [Ljava.lang.String;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:171)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.accessIdsHavePermissions(java.util.List, [Ljava.lang.String;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:172)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.createWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:176)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:185)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:190)\
|
||||
|
@ -6355,27 +6355,27 @@ Cycle detected: Slice classification.internal -> \
|
|||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:324)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:327)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:351)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (WorkbasketQueryImpl.java:358)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.lambda$1()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:359)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (WorkbasketQueryImpl.java:359)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.lambda$1()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:360)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:361)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:366)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:367)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:367)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:369)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:369)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:381)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:389)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:370)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:382)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:389)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:393)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:396)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:390)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:394)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:397)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:399)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:404)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:406)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:405)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:407)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:407)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:409)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:417)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:419)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:410)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:418)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:420)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:421)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:422)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:423)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:427)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:432)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:441)\
|
||||
|
@ -6399,9 +6399,9 @@ Cycle detected: Slice classification.internal -> \
|
|||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.getDistributionTargets(java.lang.String, java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:599)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:607)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:609)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:620)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:624)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:634)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:621)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:625)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:635)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:648)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:654)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.addDistributionTarget(java.lang.String, java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:668)\
|
||||
|
@ -6742,15 +6742,15 @@ Cycle detected: Slice classification.internal -> \
|
|||
- Method <pro.taskana.user.internal.UserServiceImpl.getUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (UserServiceImpl.java:62)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.getUsers(java.util.Set)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (UserServiceImpl.java:84)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.createUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:95)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:111)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:116)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:112)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:117)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:120)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:134)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:138)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.determineDomains(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:157)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (UserServiceImpl.java:173)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (UserServiceImpl.java:181)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:118)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:121)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:137)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:141)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.determineDomains(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:160)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (UserServiceImpl.java:176)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (UserServiceImpl.java:184)\
|
||||
4. Dependencies of Slice common.internal\
|
||||
- Method <pro.taskana.common.internal.TaskanaEngineImpl.getClassificationService()> calls constructor <pro.taskana.classification.internal.ClassificationServiceImpl.<init>(pro.taskana.common.internal.InternalTaskanaEngine, pro.taskana.spi.priority.internal.PriorityServiceManager, pro.taskana.classification.internal.ClassificationMapper, pro.taskana.task.internal.TaskMapper)> in (TaskanaEngineImpl.java:185)\
|
||||
- Method <pro.taskana.common.internal.TaskanaEngineImpl.getClassificationService()> references class object <pro.taskana.classification.internal.ClassificationMapper> in (TaskanaEngineImpl.java:188)\
|
||||
|
@ -6801,7 +6801,7 @@ Cycle detected: Slice classification.internal -> \
|
|||
- Method <pro.taskana.workbasket.internal.WorkbasketAccessItemQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketAccessItemQueryImpl.java:163)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketAccessItemQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketAccessItemQueryImpl.java:166)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.createWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:168)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.accessIdsHavePermissions(java.util.List, [Ljava.lang.String;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:171)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.accessIdsHavePermissions(java.util.List, [Ljava.lang.String;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:172)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.createWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:176)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:185)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:190)\
|
||||
|
@ -6814,27 +6814,27 @@ Cycle detected: Slice classification.internal -> \
|
|||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:324)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:327)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:351)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (WorkbasketQueryImpl.java:358)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.lambda$1()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:359)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (WorkbasketQueryImpl.java:359)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.lambda$1()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:360)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:361)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:366)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:367)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:367)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:369)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:369)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:381)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:389)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:370)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:382)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:389)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:393)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:396)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:390)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:394)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:397)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:399)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:404)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:406)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:405)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:407)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:407)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:409)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:417)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:419)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:410)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:418)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:420)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:421)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:422)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:423)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:427)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:432)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:441)\
|
||||
|
@ -6858,9 +6858,9 @@ Cycle detected: Slice classification.internal -> \
|
|||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.getDistributionTargets(java.lang.String, java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:599)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:607)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:609)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:620)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:624)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:634)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:621)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:625)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:635)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:648)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:654)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.addDistributionTarget(java.lang.String, java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:668)\
|
||||
|
@ -17582,15 +17582,15 @@ Cycle detected: Slice common.internal -> \
|
|||
- Method <pro.taskana.user.internal.UserServiceImpl.getUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (UserServiceImpl.java:62)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.getUsers(java.util.Set)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (UserServiceImpl.java:84)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.createUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:95)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:111)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:116)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:112)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:117)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:120)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:134)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:138)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.determineDomains(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:157)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (UserServiceImpl.java:173)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (UserServiceImpl.java:181)
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:118)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:121)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:137)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:141)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.determineDomains(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:160)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (UserServiceImpl.java:176)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (UserServiceImpl.java:184)
|
||||
Cycle detected: Slice common.internal -> \
|
||||
Slice task.internal -> \
|
||||
Slice workbasket.internal -> \
|
||||
|
@ -17644,7 +17644,7 @@ Cycle detected: Slice common.internal -> \
|
|||
- Method <pro.taskana.workbasket.internal.WorkbasketAccessItemQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketAccessItemQueryImpl.java:163)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketAccessItemQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketAccessItemQueryImpl.java:166)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.createWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:168)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.accessIdsHavePermissions(java.util.List, [Ljava.lang.String;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:171)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.accessIdsHavePermissions(java.util.List, [Ljava.lang.String;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:172)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.createWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:176)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:185)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:190)\
|
||||
|
@ -17657,27 +17657,27 @@ Cycle detected: Slice common.internal -> \
|
|||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:324)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:327)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:351)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (WorkbasketQueryImpl.java:358)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.lambda$1()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:359)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (WorkbasketQueryImpl.java:359)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.lambda$1()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:360)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:361)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:366)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:367)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:367)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:369)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:369)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:381)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:389)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:370)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:382)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:389)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:393)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:396)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:390)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:394)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:397)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:399)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:404)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:406)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:405)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:407)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:407)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:409)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:417)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:419)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:410)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:418)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:420)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:421)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:422)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:423)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:427)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:432)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:441)\
|
||||
|
@ -17701,9 +17701,9 @@ Cycle detected: Slice common.internal -> \
|
|||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.getDistributionTargets(java.lang.String, java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:599)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:607)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:609)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:620)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:624)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:634)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:621)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:625)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:635)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:648)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:654)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.addDistributionTarget(java.lang.String, java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:668)\
|
||||
|
@ -17759,15 +17759,15 @@ Cycle detected: Slice common.internal -> \
|
|||
- Method <pro.taskana.user.internal.UserServiceImpl.getUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (UserServiceImpl.java:62)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.getUsers(java.util.Set)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (UserServiceImpl.java:84)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.createUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:95)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:111)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:116)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:112)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:117)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:120)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:134)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:138)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.determineDomains(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:157)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (UserServiceImpl.java:173)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (UserServiceImpl.java:181)
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:118)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.updateUser(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:121)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:137)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:141)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.determineDomains(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:160)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (UserServiceImpl.java:176)\
|
||||
- Method <pro.taskana.user.internal.UserServiceImpl.insertIntoDatabase(pro.taskana.user.api.models.User)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (UserServiceImpl.java:184)
|
||||
Cycle detected: Slice common.internal -> \
|
||||
Slice workbasket.internal -> \
|
||||
Slice common.internal\
|
||||
|
@ -17809,7 +17809,7 @@ Cycle detected: Slice common.internal -> \
|
|||
- Method <pro.taskana.workbasket.internal.WorkbasketAccessItemQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketAccessItemQueryImpl.java:163)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketAccessItemQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketAccessItemQueryImpl.java:166)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.createWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:168)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.accessIdsHavePermissions(java.util.List, [Ljava.lang.String;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:171)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.accessIdsHavePermissions(java.util.List, [Ljava.lang.String;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:172)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.createWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:176)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:185)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasket(pro.taskana.workbasket.api.models.Workbasket)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:190)\
|
||||
|
@ -17822,27 +17822,27 @@ Cycle detected: Slice common.internal -> \
|
|||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:324)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:327)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:351)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (WorkbasketQueryImpl.java:358)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.lambda$1()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:359)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.executeInDatabaseConnection(java.util.function.Supplier)> in (WorkbasketQueryImpl.java:359)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.lambda$1()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:360)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.updateWorkbasketAccessItem(pro.taskana.workbasket.api.models.WorkbasketAccessItem)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:361)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:366)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:367)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:367)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:369)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:369)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:381)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:389)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:370)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:382)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:389)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:393)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:396)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:390)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:394)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.listValues(pro.taskana.workbasket.api.WorkbasketQueryColumnName, pro.taskana.common.api.BaseQuery$SortDirection)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:397)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.deleteWorkbasketAccessItem(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:399)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:404)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:406)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:405)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:407)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:407)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:409)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:417)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:419)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.single()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:410)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketQueryImpl.java:418)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:420)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:421)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:422)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.count()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketQueryImpl.java:423)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:427)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:432)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.checkAuthorization(java.lang.String, java.lang.String, [Lpro.taskana.workbasket.api.WorkbasketPermission;)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:441)\
|
||||
|
@ -17866,9 +17866,9 @@ Cycle detected: Slice common.internal -> \
|
|||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.getDistributionTargets(java.lang.String, java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:599)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:607)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.openConnection()> in (WorkbasketServiceImpl.java:609)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:620)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:624)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:634)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:621)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:625)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketQueryImpl.handleCallerRolesAndAccessIds()> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketQueryImpl.java:635)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:648)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.setDistributionTargets(java.lang.String, java.util.List)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.returnConnection()> in (WorkbasketServiceImpl.java:654)\
|
||||
- Method <pro.taskana.workbasket.internal.WorkbasketServiceImpl.addDistributionTarget(java.lang.String, java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (WorkbasketServiceImpl.java:668)\
|
|
@ -0,0 +1,24 @@
|
|||
Method <acceptance.PojoTest.equalsContract()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (PojoTest.java:39)
|
||||
Method <acceptance.PojoTest.testsThatPojoClassesAreFound()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (PojoTest.java:34)
|
||||
Method <acceptance.PojoTest.validateGetAndSet()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (PojoTest.java:70)
|
||||
Method <acceptance.PojoTest.validateGetters()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (PojoTest.java:49)
|
||||
Method <acceptance.PojoTest.validateNoPublicFields()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (PojoTest.java:90)
|
||||
Method <acceptance.PojoTest.validateNoStaticExceptFinalFields()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (PojoTest.java:80)
|
||||
Method <acceptance.PojoTest.validateSetters()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (PojoTest.java:59)
|
||||
Method <acceptance.classification.create.CreateClassificationAccTest.should_ThrowException_TryingToCreateClassificationWithExplicitId()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (CreateClassificationAccTest.java:250)
|
||||
Method <acceptance.classification.create.CreateClassificationAccTest.should_ThrowException_TryingToCreateClassificationWithInvalidCategory()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (CreateClassificationAccTest.java:211)
|
||||
Method <acceptance.classification.create.CreateClassificationAccTest.should_ThrowException_TryingToCreateClassificationWithInvalidParentId()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (CreateClassificationAccTest.java:238)
|
||||
Method <acceptance.classification.create.CreateClassificationAccTest.should_ThrowException_TryingToCreateClassificationWithInvalidParentKey()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (CreateClassificationAccTest.java:226)
|
||||
Method <acceptance.classification.create.CreateClassificationAccTest.should_ThrowException_TryingToCreateClassificationWithInvalidType()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (CreateClassificationAccTest.java:197)
|
||||
Method <acceptance.jobs.helper.TaskUpdatePriorityWorkerAccTest$WithSpi.should_executeBatch()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (TaskUpdatePriorityWorkerAccTest.java:145)
|
||||
Method <acceptance.jobs.helper.TaskUpdatePriorityWorkerAccTest.should_loadAnyRelevantTaskIds()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (TaskUpdatePriorityWorkerAccTest.java:87)
|
||||
Method <acceptance.jobs.helper.TaskUpdatePriorityWorkerAccTest.should_loadExistingTaskIds()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (TaskUpdatePriorityWorkerAccTest.java:97)
|
||||
Method <acceptance.jobs.helper.TaskUpdatePriorityWorkerAccTest.should_notLoadAnyIrrelevantTaskIds()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (TaskUpdatePriorityWorkerAccTest.java:108)
|
||||
Method <acceptance.jobs.helper.TaskUpdatePriorityWorkerAccTest.should_noticeDifferentPriority_When_PriorityHasChanged()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (TaskUpdatePriorityWorkerAccTest.java:117)
|
||||
Method <acceptance.task.create.CreateTaskWithSorAccTest.should_copyObjectReferences_When_DuplicatingTask()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (CreateTaskWithSorAccTest.java:136)
|
||||
Method <acceptance.task.create.CreateTaskWithSorAccTest.should_createObjectReferences_When_CreatingTask()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (CreateTaskWithSorAccTest.java:68)
|
||||
Method <acceptance.task.update.UpdateManualPriorityAccTest.should_setPriorityAccordingToClassification_When_NegativeManualPriority()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (UpdateManualPriorityAccTest.java:77)
|
||||
Method <acceptance.task.update.UpdateManualPriorityAccTest.should_setPriorityToManualPriority_When_PositiveManualPriority()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (UpdateManualPriorityAccTest.java:65)
|
||||
Method <acceptance.task.update.UpdateManualPriorityWithSpiAccTest$UpdateManualPriorityTest.should_setPriorityToManualAndNotUpdateAccordingToSpi_When_ManualPriorityPositive()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (UpdateManualPriorityWithSpiAccTest.java:87)
|
||||
Method <acceptance.task.update.UpdateManualPriorityWithSpiAccTest$UpdateManualPriorityTest.should_setPriorityUsingSpi_When_ManualPriorityNegative()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (UpdateManualPriorityWithSpiAccTest.java:101)
|
||||
Method <acceptance.taskpreprocessing.CreateTaskPreprocessingAccTest.should_processTaskBeforeCreation_When_CreateTaskPreprocessorEnabled()> does not have name matching '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$' in (CreateTaskPreprocessingAccTest.java:61)
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
#Tue Oct 25 17:18:51 CEST 2022
|
||||
slices\ matching\ 'pro.taskana.(**)'\ should\ be\ free\ of\ cycles=9652a208-0dfc-428f-9436-b7d5b718e2c1
|
||||
methods\ that\ are\ annotated\ with\ @Test\ or\ annotated\ with\ @TestFactory\ or\ annotated\ with\ @TestTemplate\ and\ are\ not\ declared\ in\ acceptance.ArchitectureTest\ should\ be\ package\ private\ and\ should\ have\ name\ matching\ '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$'=974cd44c-bceb-4997-a1c3-18cb011ca438
|
||||
slices\ assigned\ from\ every\ single\ class\ should\ be\ free\ of\ cycles=a54262d1-6fd5-453c-bef4-7481fef02511
|
||||
no\ classes\ should\ use\ field\ injection,\ because\ field\ injection\ is\ considered\ harmful;\ use\ constructor\ injection\ or\ setter\ injection\ instead;\ see\ https\://stackoverflow.com/q/39890849\ for\ detailed\ explanations=e480c7e3-4001-4306-9859-39636786785d
|
||||
#Sat Jan 28 10:53:15 CET 2023
|
||||
slices\ matching\ 'pro.taskana.(**)'\ should\ be\ free\ of\ cycles=9e212b8e-ebae-4b84-83eb-0b18b9f8a8f3
|
||||
methods\ that\ are\ annotated\ with\ @Test\ or\ annotated\ with\ @TestFactory\ or\ annotated\ with\ @TestTemplate\ and\ are\ not\ declared\ in\ acceptance.ArchitectureTest\ should\ be\ package\ private\ and\ should\ have\ name\ matching\ '^should_[A-Z][^_]+(_(For|When)_[A-Z][^_]+)?$'=74deb6a1-c507-47a1-b135-9308e42f4e71
|
||||
slices\ assigned\ from\ every\ single\ class\ should\ be\ free\ of\ cycles=978ec381-cf0f-43f8-81ae-72f353d6ada3
|
||||
no\ classes\ should\ use\ field\ injection,\ because\ field\ injection\ is\ considered\ harmful;\ use\ constructor\ injection\ or\ setter\ injection\ instead;\ see\ https\://stackoverflow.com/q/39890849\ for\ detailed\ explanations=382817ff-573d-4d20-9597-c425d2698970
|
||||
|
|
|
@ -226,7 +226,8 @@ public class TaskanaEngineConfiguration {
|
|||
public static DataSource createDefaultDataSource() {
|
||||
String driverClass = "org.h2.Driver";
|
||||
String jdbcUrl =
|
||||
"jdbc:h2:mem:taskana;IGNORECASE=TRUE;LOCK_MODE=0;"
|
||||
"jdbc:h2:mem:taskana;NON_KEYWORDS=KEY,VALUE;"
|
||||
+ "IGNORECASE=TRUE;LOCK_MODE=0;"
|
||||
+ "INIT=CREATE SCHEMA IF NOT EXISTS TASKANA\\;"
|
||||
+ "SET COLLATION DEFAULT_de_DE";
|
||||
String username = "sa";
|
||||
|
|
|
@ -30,9 +30,6 @@ public class WorkbasketQueryImpl implements WorkbasketQuery {
|
|||
"pro.taskana.workbasket.internal.WorkbasketQueryMapper.countQueryWorkbaskets";
|
||||
private static final String LINK_TO_VALUEMAPPER =
|
||||
"pro.taskana.workbasket.internal.WorkbasketQueryMapper.queryWorkbasketColumnValues";
|
||||
private final InternalTaskanaEngine taskanaEngine;
|
||||
private final List<String> orderBy;
|
||||
private final List<String> orderColumns;
|
||||
private WorkbasketQueryColumnName columnName;
|
||||
private String[] accessIds;
|
||||
private String[] idIn;
|
||||
|
@ -66,7 +63,11 @@ public class WorkbasketQueryImpl implements WorkbasketQuery {
|
|||
private String[] orgLevel3Like;
|
||||
private String[] orgLevel4In;
|
||||
private String[] orgLevel4Like;
|
||||
private boolean markedForDeletion;
|
||||
private Boolean markedForDeletion;
|
||||
|
||||
private InternalTaskanaEngine taskanaEngine;
|
||||
private List<String> orderBy;
|
||||
private List<String> orderColumns;
|
||||
private boolean joinWithAccessList;
|
||||
private boolean checkReadPermission;
|
||||
private boolean usedToAugmentTasks;
|
||||
|
@ -543,7 +544,7 @@ public class WorkbasketQueryImpl implements WorkbasketQuery {
|
|||
return orgLevel4Like;
|
||||
}
|
||||
|
||||
public boolean isMarkedForDeletion() {
|
||||
public Boolean isMarkedForDeletion() {
|
||||
return markedForDeletion;
|
||||
}
|
||||
|
||||
|
|
|
@ -7,8 +7,8 @@ spring.h2.console.enabled=true
|
|||
security.basic.enabled=false
|
||||
|
||||
######## customdb / Taskana DB #######
|
||||
customdb.datasource.url=jdbc:h2:mem:testdb;IGNORECASE=TRUE;LOCK_MODE=0
|
||||
#customdb.datasource.url=jdbc:h2:mem:testdb;TRACE_LEVEL_FIle=4
|
||||
customdb.datasource.url=jdbc:h2:mem:testdb;NON_KEYWORDS=KEY,VALUE;IGNORECASE=TRUE;LOCK_MODE=0
|
||||
#customdb.datasource.url=jdbc:h2:mem:testdb;NON_KEYWORDS=KEY,VALUE;TRACE_LEVEL_FIle=4
|
||||
customdb.datasource.schema=classpath:schema.sql
|
||||
customdb.datasource.driverClassName=org.h2.Driver
|
||||
customdb.datasource.hibernate.dialect=org.hibernate.dialect.H2
|
||||
|
|
|
@ -16,7 +16,7 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
|||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
|
||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
||||
import org.springframework.boot.web.server.LocalServerPort;
|
||||
import org.springframework.boot.test.web.server.LocalServerPort;
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.annotation.DirtiesContext.ClassMode;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
|
@ -86,6 +86,8 @@ class TransactionTest {
|
|||
|
||||
private Connection getConnection() throws Exception {
|
||||
return DriverManager.getConnection(
|
||||
"jdbc:h2:mem:task-engine;IGNORECASE=TRUE;LOCK_MODE=0", "SA", UUID.randomUUID().toString());
|
||||
"jdbc:h2:mem:task-engine;NON_KEYWORDS=KEY,VALUE;IGNORECASE=TRUE;LOCK_MODE=0",
|
||||
"SA",
|
||||
UUID.randomUUID().toString());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<bean class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
|
||||
<property name="driverClass" value="org.h2.Driver" />
|
||||
<property name="url"
|
||||
value="jdbc:h2:mem:task-engine;DB_CLOSE_DELAY=1000;IGNORECASE=TRUE;LOCK_MODE=0" />
|
||||
value="jdbc:h2:mem:task-engine;NON_KEYWORDS=KEY,VALUE;DB_CLOSE_DELAY=1000;IGNORECASE=TRUE;LOCK_MODE=0" />
|
||||
<property name="username" value="SA" />
|
||||
<property name="password" value="SA" />
|
||||
</bean>
|
||||
|
|
|
@ -92,7 +92,11 @@ public class TestContainerExtension implements InvocationInterceptor {
|
|||
new PooledDataSource(
|
||||
Thread.currentThread().getContextClassLoader(),
|
||||
"org.h2.Driver",
|
||||
"jdbc:h2:mem:taskana;LOCK_MODE=0;INIT=SET COLLATION DEFAULT_de_DE",
|
||||
"jdbc:h2:mem:"
|
||||
+ "taskana"
|
||||
+ ";NON_KEYWORDS=KEY,VALUE;LOCK_MODE=0;"
|
||||
+ "INIT=CREATE SCHEMA IF NOT EXISTS TASKANA\\;"
|
||||
+ "SET COLLATION DEFAULT_de_DE ",
|
||||
"sa",
|
||||
"sa");
|
||||
ds.setPoolTimeToWait(50);
|
||||
|
|
4
pom.xml
4
pom.xml
|
@ -65,8 +65,8 @@
|
|||
<!-- spring dependencies -->
|
||||
<version.javax.annotation-api>1.3.2</version.javax.annotation-api>
|
||||
<version.spring.core>2.0.0.RELEASE</version.spring.core>
|
||||
<version.spring.boot>2.6.6</version.spring.boot>
|
||||
<version.spring.mybatis>2.0.7</version.spring.mybatis>
|
||||
<version.spring.boot>2.7.8</version.spring.boot>
|
||||
<version.spring.mybatis>2.1.0</version.spring.mybatis>
|
||||
|
||||
<!-- wildfly dependencies -->
|
||||
<version.wildfly>15.0.1.Final</version.wildfly>
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
<module>taskana-rest-spring-example-common</module>
|
||||
<module>taskana-rest-spring-example-boot</module>
|
||||
<module>taskana-rest-spring-example-wildfly</module>
|
||||
<module>taskana-rest-spring-test-lib</module>
|
||||
</modules>
|
||||
|
||||
</project>
|
||||
|
|
|
@ -1,13 +1,25 @@
|
|||
package pro.taskana.example.boot.security;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
|
||||
import org.springframework.ldap.core.support.BaseLdapPathContextSource;
|
||||
import org.springframework.security.authentication.AuthenticationManager;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||
import org.springframework.security.config.ldap.LdapPasswordComparisonAuthenticationManagerFactory;
|
||||
import org.springframework.security.core.GrantedAuthority;
|
||||
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
||||
import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper;
|
||||
import org.springframework.security.core.authority.mapping.SimpleAuthorityMapper;
|
||||
import org.springframework.security.crypto.password.NoOpPasswordEncoder;
|
||||
import org.springframework.security.ldap.DefaultSpringSecurityContextSource;
|
||||
import org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator;
|
||||
import org.springframework.security.ldap.userdetails.LdapAuthoritiesPopulator;
|
||||
import org.springframework.security.web.SecurityFilterChain;
|
||||
import org.springframework.security.web.csrf.CookieCsrfTokenRepository;
|
||||
import org.springframework.security.web.jaasapi.JaasApiIntegrationFilter;
|
||||
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
|
||||
|
@ -15,16 +27,14 @@ import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
|
|||
import pro.taskana.common.rest.SpringSecurityToJaasFilter;
|
||||
|
||||
/** Default basic configuration for taskana web example. */
|
||||
@EnableWebSecurity
|
||||
public class BootWebSecurityConfigurer extends WebSecurityConfigurerAdapter {
|
||||
|
||||
private final LdapAuthoritiesPopulator ldapAuthoritiesPopulator;
|
||||
private final GrantedAuthoritiesMapper grantedAuthoritiesMapper;
|
||||
@Configuration
|
||||
public class BootWebSecurityConfigurer {
|
||||
|
||||
private final String ldapServerUrl;
|
||||
private final String ldapBaseDn;
|
||||
private final String ldapGroupSearchBase;
|
||||
private final String ldapUserDnPatterns;
|
||||
private final String ldapGroupSearchBase;
|
||||
private final String ldapGroupSearchFilter;
|
||||
|
||||
private final boolean devMode;
|
||||
private final boolean enableCsrf;
|
||||
|
@ -32,38 +42,22 @@ public class BootWebSecurityConfigurer extends WebSecurityConfigurerAdapter {
|
|||
public BootWebSecurityConfigurer(
|
||||
@Value("${taskana.ldap.serverUrl:ldap://localhost:10389}") String ldapServerUrl,
|
||||
@Value("${taskana.ldap.baseDn:OU=Test,O=TASKANA}") String ldapBaseDn,
|
||||
@Value("${taskana.ldap.groupSearchBase:cn=groups}") String ldapGroupSearchBase,
|
||||
@Value("${taskana.ldap.userDnPatterns:uid={0},cn=users}") String ldapUserDnPatterns,
|
||||
@Value("${taskana.ldap.groupSearchBase:cn=groups}") String ldapGroupSearchBase,
|
||||
@Value("${taskana.ldap.groupSearchFilter:uniqueMember={0}}") String ldapGroupSearchFilter,
|
||||
@Value("${enableCsrf:false}") boolean enableCsrf,
|
||||
LdapAuthoritiesPopulator ldapAuthoritiesPopulator,
|
||||
GrantedAuthoritiesMapper grantedAuthoritiesMapper,
|
||||
@Value("${devMode:false}") boolean devMode) {
|
||||
this.enableCsrf = enableCsrf;
|
||||
this.ldapAuthoritiesPopulator = ldapAuthoritiesPopulator;
|
||||
this.grantedAuthoritiesMapper = grantedAuthoritiesMapper;
|
||||
this.ldapServerUrl = ldapServerUrl;
|
||||
this.ldapBaseDn = ldapBaseDn;
|
||||
this.ldapGroupSearchBase = ldapGroupSearchBase;
|
||||
this.ldapGroupSearchFilter = ldapGroupSearchFilter;
|
||||
this.ldapUserDnPatterns = ldapUserDnPatterns;
|
||||
this.devMode = devMode;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
|
||||
auth.ldapAuthentication()
|
||||
.userDnPatterns(ldapUserDnPatterns)
|
||||
.groupSearchBase(ldapGroupSearchBase)
|
||||
.ldapAuthoritiesPopulator(ldapAuthoritiesPopulator)
|
||||
.authoritiesMapper(grantedAuthoritiesMapper)
|
||||
.contextSource()
|
||||
.url(ldapServerUrl + "/" + ldapBaseDn)
|
||||
.and()
|
||||
.passwordCompare()
|
||||
.passwordAttribute("userPassword");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configure(HttpSecurity http) throws Exception {
|
||||
@Bean
|
||||
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
||||
HttpSecurity httpSecurity =
|
||||
http.authorizeRequests()
|
||||
.antMatchers("/css/**", "/img/**")
|
||||
|
@ -95,6 +89,7 @@ public class BootWebSecurityConfigurer extends WebSecurityConfigurerAdapter {
|
|||
} else {
|
||||
addLoginPageConfiguration(http);
|
||||
}
|
||||
return http.build();
|
||||
}
|
||||
|
||||
protected void addLoginPageConfiguration(HttpSecurity http) throws Exception {
|
||||
|
@ -117,9 +112,50 @@ public class BootWebSecurityConfigurer extends WebSecurityConfigurerAdapter {
|
|||
.permitAll();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public LdapAuthoritiesPopulator authoritiesPopulator(
|
||||
DefaultSpringSecurityContextSource contextSource) {
|
||||
Function<Map<String, List<String>>, GrantedAuthority> authorityMapper =
|
||||
recordVar -> new SimpleGrantedAuthority(recordVar.get("spring.security.ldap.dn").get(0));
|
||||
|
||||
DefaultLdapAuthoritiesPopulator populator =
|
||||
new DefaultLdapAuthoritiesPopulator(contextSource, ldapGroupSearchBase);
|
||||
populator.setGroupSearchFilter(ldapGroupSearchFilter);
|
||||
populator.setSearchSubtree(true);
|
||||
populator.setRolePrefix("");
|
||||
populator.setAuthorityMapper(authorityMapper);
|
||||
return populator;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public DefaultSpringSecurityContextSource defaultSpringSecurityContextSource() {
|
||||
return new DefaultSpringSecurityContextSource(ldapServerUrl + "/" + ldapBaseDn);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public GrantedAuthoritiesMapper grantedAuthoritiesMapper() {
|
||||
SimpleAuthorityMapper grantedAuthoritiesMapper = new SimpleAuthorityMapper();
|
||||
grantedAuthoritiesMapper.setPrefix("");
|
||||
return grantedAuthoritiesMapper;
|
||||
}
|
||||
|
||||
protected JaasApiIntegrationFilter jaasApiIntegrationFilter() {
|
||||
JaasApiIntegrationFilter filter = new JaasApiIntegrationFilter();
|
||||
filter.setCreateEmptySubject(true);
|
||||
return filter;
|
||||
}
|
||||
|
||||
@Bean
|
||||
AuthenticationManager ldapAuthenticationManager(
|
||||
BaseLdapPathContextSource contextSource, LdapAuthoritiesPopulator authorities) {
|
||||
@SuppressWarnings("deprecation")
|
||||
LdapPasswordComparisonAuthenticationManagerFactory factory =
|
||||
new LdapPasswordComparisonAuthenticationManagerFactory(
|
||||
contextSource, NoOpPasswordEncoder.getInstance());
|
||||
factory.setUserDnPatterns(ldapUserDnPatterns);
|
||||
factory.setLdapAuthoritiesPopulator(authorities);
|
||||
factory.setAuthoritiesMapper(grantedAuthoritiesMapper());
|
||||
factory.setPasswordAttribute("userPassword");
|
||||
return factory.createAuthenticationManager();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ server.servlet.context-path=/taskana
|
|||
|
||||
######## Taskana DB #######
|
||||
######## h2 configuration ########
|
||||
########spring.datasource.url=jdbc:h2:mem:taskana;IGNORECASE=TRUE;LOCK_MODE=0
|
||||
########spring.datasource.url=jdbc:h2:mem:taskana;NON_KEYWORDS=KEY,VALUE;IGNORECASE=TRUE;LOCK_MODE=0
|
||||
########spring.datasource.driverClassName=org.h2.Driver
|
||||
########spring.datasource.username=sa
|
||||
########spring.datasource.password=sa
|
||||
|
|
|
@ -3,7 +3,7 @@ server.servlet.context-path=/taskana
|
|||
### logging.level.org.springframework=DEBUG
|
||||
######## Taskana DB #######
|
||||
######## h2 configuration ########
|
||||
########spring.datasource.url=jdbc:h2:mem:taskana;IGNORECASE=TRUE;LOCK_MODE=0
|
||||
########spring.datasource.url=jdbc:h2:mem:taskana;NON_KEYWORDS=KEY,VALUE;IGNORECASE=TRUE;LOCK_MODE=0
|
||||
########spring.datasource.driverClassName=org.h2.Driver
|
||||
########spring.datasource.username=sa
|
||||
########spring.datasource.password=sa
|
||||
|
|
|
@ -1,28 +1,22 @@
|
|||
logging.level.pro.taskana=INFO
|
||||
logging.level.org.springframework.security=INFO
|
||||
|
||||
server.servlet.context-path=/taskana
|
||||
|
||||
taskana.routing.dmn.upload.path=/tmp/routing.dmn
|
||||
|
||||
######## Taskana DB #######
|
||||
######## h2 configuration ########
|
||||
spring.datasource.url=jdbc:h2:mem:taskana;IGNORECASE=TRUE;DB_CLOSE_ON_EXIT=FALSE;LOCK_MODE=0
|
||||
spring.datasource.url=jdbc:h2:mem:taskana;NON_KEYWORDS=KEY,VALUE;IGNORECASE=TRUE;DB_CLOSE_ON_EXIT=FALSE;LOCK_MODE=0
|
||||
spring.datasource.driverClassName=org.h2.Driver
|
||||
spring.datasource.username=sa
|
||||
spring.datasource.password=sa
|
||||
taskana.schemaName=TASKANA
|
||||
|
||||
######## h2 console configuration ########
|
||||
########spring.h2.console.enabled=true
|
||||
########spring.h2.console.path=/h2-console
|
||||
|
||||
######## db2 configuration ########
|
||||
########spring.datasource.driverClassName=com.ibm.db2.jcc.DB2Driver
|
||||
########spring.datasource.url=jdbc:db2://localhost:5101/tskdb
|
||||
########spring.datasource.username=db2inst1
|
||||
########spring.datasource.password=db2inst1-pwd
|
||||
|
||||
######## Postgres configuration ########
|
||||
########spring.datasource.url=jdbc:postgresql://localhost:5102/taskana
|
||||
########spring.datasource.driverClassName=org.postgresql.Driver
|
||||
|
@ -32,13 +26,10 @@ taskana.schemaName=TASKANA
|
|||
########spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
|
||||
####### property that control rest api security deploy use true for no security.
|
||||
devMode=false
|
||||
|
||||
# This property enables the support of XSRF tokens. This will not work together with devMode.
|
||||
enableCsrf=true
|
||||
|
||||
####### property that control if the database is cleaned and sample data is generated
|
||||
generateSampleData=true
|
||||
|
||||
####### JobScheduler cron expression that specifies when the JobSchedler runs
|
||||
taskana.jobscheduler.async.cron=0 * * * * *
|
||||
####### cache static resources properties
|
||||
|
@ -46,21 +37,17 @@ spring.web.resources.cache.cachecontrol.cache-private=true
|
|||
####### for upload of big workbasket- or classification-files
|
||||
spring.servlet.multipart.max-file-size=10MB
|
||||
spring.servlet.multipart.max-request-size=10MB
|
||||
|
||||
####### serve compressed files for faster UI loading times
|
||||
server.compression.enabled=true
|
||||
server.compression.mime-types=application/json,application/xml,text/html,text/xml,text/plain,application/javascript,text/css,image/svg+xml
|
||||
server.compression.min-response-size=10240
|
||||
|
||||
spring.main.allow-bean-definition-overriding=true
|
||||
|
||||
server.tomcat.max-http-form-post-size=-1
|
||||
server.tomcat.max-save-post-size=-1
|
||||
server.tomcat.max-swallow-size=-1
|
||||
####### tomcat is not detecting the x-forward headers from bluemix as a trustworthy proxy
|
||||
server.tomcat.remoteip.internal-proxies=.*
|
||||
server.forward-headers-strategy=native
|
||||
|
||||
####### Properties for AccessIdController to connect to LDAP
|
||||
taskana.ldap.serverUrl=ldap://localhost:10389
|
||||
taskana.ldap.bindDn=uid=admin
|
||||
|
@ -88,11 +75,10 @@ taskana.ldap.groupNameAttribute=cn
|
|||
taskana.ldap.minSearchForLength=3
|
||||
taskana.ldap.maxNumberOfReturnedAccessIds=50
|
||||
taskana.ldap.groupsOfUser=uniquemember
|
||||
|
||||
# Embedded Spring LDAP server
|
||||
spring.ldap.embedded.base-dn= OU=Test,O=TASKANA
|
||||
spring.ldap.embedded.credential.username= uid=admin
|
||||
spring.ldap.embedded.credential.password= secret
|
||||
spring.ldap.embedded.base-dn=OU=Test,O=TASKANA
|
||||
spring.ldap.embedded.credential.username=uid=admin
|
||||
spring.ldap.embedded.credential.password=secret
|
||||
spring.ldap.embedded.ldif=classpath:taskana-example.ldif
|
||||
spring.ldap.embedded.port= 10389
|
||||
spring.ldap.embedded.port=10389
|
||||
spring.ldap.embedded.validation.enabled=false
|
||||
|
|
|
@ -80,7 +80,7 @@
|
|||
<!-- test dependencies -->
|
||||
<dependency>
|
||||
<groupId>pro.taskana</groupId>
|
||||
<artifactId>taskana-common-test</artifactId>
|
||||
<artifactId>taskana-rest-spring-test-lib</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
|
|
@ -1,20 +1,8 @@
|
|||
package pro.taskana.example.rest;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.security.core.GrantedAuthority;
|
||||
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
||||
import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper;
|
||||
import org.springframework.security.core.authority.mapping.SimpleAuthorityMapper;
|
||||
import org.springframework.security.ldap.DefaultSpringSecurityContextSource;
|
||||
import org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator;
|
||||
import org.springframework.security.ldap.userdetails.LdapAuthoritiesPopulator;
|
||||
import org.springframework.web.cors.CorsConfiguration;
|
||||
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
|
||||
import org.springframework.web.filter.CorsFilter;
|
||||
|
@ -24,23 +12,6 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
|||
@Configuration
|
||||
public class ExampleWebSecurityConfig {
|
||||
|
||||
private final String ldapServerUrl;
|
||||
private final String ldapBaseDn;
|
||||
private final String ldapGroupSearchBase;
|
||||
private final String ldapGroupSearchFilter;
|
||||
|
||||
@Autowired
|
||||
public ExampleWebSecurityConfig(
|
||||
@Value("${taskana.ldap.serverUrl:ldap://localhost:10389}") String ldapServerUrl,
|
||||
@Value("${taskana.ldap.baseDn:OU=Test,O=TASKANA}") String ldapBaseDn,
|
||||
@Value("${taskana.ldap.groupSearchBase:cn=groups}") String ldapGroupSearchBase,
|
||||
@Value("${taskana.ldap.groupSearchFilter:uniqueMember={0}}") String ldapGroupSearchFilter) {
|
||||
this.ldapServerUrl = ldapServerUrl;
|
||||
this.ldapBaseDn = ldapBaseDn;
|
||||
this.ldapGroupSearchBase = ldapGroupSearchBase;
|
||||
this.ldapGroupSearchFilter = ldapGroupSearchFilter;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public WebMvcConfigurer corsConfigurer() {
|
||||
return new CorsWebMvcConfigurer();
|
||||
|
@ -51,7 +22,7 @@ public class ExampleWebSecurityConfig {
|
|||
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
|
||||
CorsConfiguration config = new CorsConfiguration();
|
||||
config.setAllowCredentials(true);
|
||||
config.addAllowedOriginPattern("*");
|
||||
config.addAllowedOrigin("*");
|
||||
config.addAllowedHeader("*");
|
||||
config.addAllowedMethod("*");
|
||||
source.registerCorsConfiguration("/**", config);
|
||||
|
@ -60,33 +31,6 @@ public class ExampleWebSecurityConfig {
|
|||
return bean;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public LdapAuthoritiesPopulator authoritiesPopulator(
|
||||
DefaultSpringSecurityContextSource contextSource) {
|
||||
Function<Map<String, List<String>>, GrantedAuthority> authorityMapper =
|
||||
recordVar -> new SimpleGrantedAuthority(recordVar.get("spring.security.ldap.dn").get(0));
|
||||
|
||||
DefaultLdapAuthoritiesPopulator populator =
|
||||
new DefaultLdapAuthoritiesPopulator(contextSource, ldapGroupSearchBase);
|
||||
populator.setGroupSearchFilter(ldapGroupSearchFilter);
|
||||
populator.setSearchSubtree(true);
|
||||
populator.setRolePrefix("");
|
||||
populator.setAuthorityMapper(authorityMapper);
|
||||
return populator;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public DefaultSpringSecurityContextSource defaultSpringSecurityContextSource() {
|
||||
return new DefaultSpringSecurityContextSource(ldapServerUrl + "/" + ldapBaseDn);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public GrantedAuthoritiesMapper grantedAuthoritiesMapper() {
|
||||
SimpleAuthorityMapper grantedAuthoritiesMapper = new SimpleAuthorityMapper();
|
||||
grantedAuthoritiesMapper.setPrefix("");
|
||||
return grantedAuthoritiesMapper;
|
||||
}
|
||||
|
||||
private static class CorsWebMvcConfigurer implements WebMvcConfigurer {
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,76 +0,0 @@
|
|||
package pro.taskana.example;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||
import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper;
|
||||
import org.springframework.security.ldap.userdetails.LdapAuthoritiesPopulator;
|
||||
import org.springframework.security.web.jaasapi.JaasApiIntegrationFilter;
|
||||
|
||||
import pro.taskana.common.rest.SpringSecurityToJaasFilter;
|
||||
|
||||
@EnableWebSecurity
|
||||
public class CommonWebSecurityConfigurer extends WebSecurityConfigurerAdapter {
|
||||
|
||||
private final LdapAuthoritiesPopulator ldapAuthoritiesPopulator;
|
||||
private final GrantedAuthoritiesMapper grantedAuthoritiesMapper;
|
||||
|
||||
private final String ldapServerUrl;
|
||||
private final String ldapBaseDn;
|
||||
private final String ldapGroupSearchBase;
|
||||
private final String ldapUserDnPatterns;
|
||||
|
||||
@Autowired
|
||||
public CommonWebSecurityConfigurer(
|
||||
@Value("${taskana.ldap.serverUrl:ldap://localhost:10389}") String ldapServerUrl,
|
||||
@Value("${taskana.ldap.baseDn:OU=Test,O=TASKANA}") String ldapBaseDn,
|
||||
@Value("${taskana.ldap.groupSearchBase:cn=groups}") String ldapGroupSearchBase,
|
||||
@Value("${taskana.ldap.userDnPatterns:uid={0},cn=users}") String ldapUserDnPatterns,
|
||||
LdapAuthoritiesPopulator ldapAuthoritiesPopulator,
|
||||
GrantedAuthoritiesMapper grantedAuthoritiesMapper) {
|
||||
this.ldapServerUrl = ldapServerUrl;
|
||||
this.ldapBaseDn = ldapBaseDn;
|
||||
this.ldapGroupSearchBase = ldapGroupSearchBase;
|
||||
this.ldapUserDnPatterns = ldapUserDnPatterns;
|
||||
this.ldapAuthoritiesPopulator = ldapAuthoritiesPopulator;
|
||||
this.grantedAuthoritiesMapper = grantedAuthoritiesMapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
|
||||
auth.ldapAuthentication()
|
||||
.userDnPatterns(ldapUserDnPatterns)
|
||||
.groupSearchBase(ldapGroupSearchBase)
|
||||
.ldapAuthoritiesPopulator(ldapAuthoritiesPopulator)
|
||||
.authoritiesMapper(grantedAuthoritiesMapper)
|
||||
.contextSource()
|
||||
.url(ldapServerUrl + "/" + ldapBaseDn)
|
||||
.and()
|
||||
.passwordCompare()
|
||||
.passwordAttribute("userPassword");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configure(HttpSecurity http) throws Exception {
|
||||
http.authorizeRequests()
|
||||
.and()
|
||||
.csrf()
|
||||
.disable()
|
||||
.httpBasic()
|
||||
.and()
|
||||
.addFilter(jaasApiIntegrationFilter())
|
||||
.addFilterAfter(new SpringSecurityToJaasFilter(), JaasApiIntegrationFilter.class)
|
||||
.authorizeRequests()
|
||||
.anyRequest()
|
||||
.fullyAuthenticated();
|
||||
}
|
||||
|
||||
private JaasApiIntegrationFilter jaasApiIntegrationFilter() {
|
||||
JaasApiIntegrationFilter filter = new JaasApiIntegrationFilter();
|
||||
filter.setCreateEmptySubject(true);
|
||||
return filter;
|
||||
}
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
package pro.taskana.example.jobs;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static pro.taskana.common.test.rest.RestHelper.TEMPLATE;
|
||||
import static pro.taskana.rest.test.RestHelper.TEMPLATE;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
|
@ -18,8 +18,8 @@ import pro.taskana.classification.rest.assembler.ClassificationRepresentationMod
|
|||
import pro.taskana.classification.rest.models.ClassificationRepresentationModel;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.rest.RestEndpoints;
|
||||
import pro.taskana.common.test.rest.RestHelper;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.RestHelper;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
import pro.taskana.task.api.models.Task;
|
||||
import pro.taskana.task.rest.assembler.TaskRepresentationModelAssembler;
|
||||
import pro.taskana.task.rest.models.TaskRepresentationModel;
|
||||
|
|
|
@ -7,7 +7,7 @@ import org.junit.jupiter.api.Test;
|
|||
import org.springframework.test.context.ActiveProfiles;
|
||||
|
||||
import pro.taskana.common.rest.models.AccessIdRepresentationModel;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
|
||||
/** Test Ldap attachment. */
|
||||
@TaskanaSpringBootTest
|
||||
|
|
|
@ -11,7 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
|
||||
import pro.taskana.common.rest.ldap.LdapClient;
|
||||
import pro.taskana.common.rest.models.AccessIdRepresentationModel;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
import pro.taskana.user.api.models.User;
|
||||
|
||||
/** Test Ldap attachment. */
|
||||
|
|
|
@ -1,54 +1,2 @@
|
|||
logging.level.pro.taskana=INFO
|
||||
logging.level.org.springframework.security=INFO
|
||||
logging.level.org.springframework.ldap=INFO
|
||||
### logging.level.org.springframework=DEBUG
|
||||
######## Taskana DB #######
|
||||
datasource.url=jdbc:h2:mem:taskana;IGNORECASE=TRUE;LOCK_MODE=0
|
||||
datasource.driverClassName=org.h2.Driver
|
||||
datasource.username=sa
|
||||
datasource.password=sa
|
||||
taskana.schemaName=TASKANA
|
||||
####### property that control rest api security deploy use true for no security.
|
||||
devMode=false
|
||||
####### Properties for AccessIdController to connect to LDAP
|
||||
taskana.ldap.serverUrl=ldap://localhost:11389
|
||||
taskana.ldap.bindDn=uid=admin
|
||||
taskana.ldap.bindPassword=secret
|
||||
taskana.ldap.baseDn=ou=Test,O=TASKANA
|
||||
taskana.ldap.userSearchBase=
|
||||
taskana.ldap.userSearchFilterName=objectclass
|
||||
taskana.ldap.userSearchFilterValue=person
|
||||
taskana.ldap.userFirstnameAttribute=givenName
|
||||
taskana.ldap.userLastnameAttribute=sn
|
||||
taskana.ldap.userFullnameAttribute=cn
|
||||
taskana.ldap.userPhoneAttribute=phoneNumber
|
||||
taskana.ldap.userMobilePhoneAttribute=mobileNumber
|
||||
taskana.ldap.userEmailAttribute=email
|
||||
taskana.ldap.userOrglevel1Attribute=orgLevel1
|
||||
taskana.ldap.userOrglevel2Attribute=orgLevel2
|
||||
taskana.ldap.userOrglevel3Attribute=someDepartement
|
||||
taskana.ldap.userOrglevel4Attribute=orgLevel4
|
||||
taskana.ldap.userIdAttribute=uid
|
||||
taskana.ldap.userMemberOfGroupAttribute=memberOf
|
||||
taskana.ldap.groupSearchBase=
|
||||
taskana.ldap.groupSearchFilterName=objectclass
|
||||
taskana.ldap.groupSearchFilterValue=groupOfUniqueNames
|
||||
taskana.ldap.groupNameAttribute=cn
|
||||
taskana.ldap.minSearchForLength=3
|
||||
taskana.ldap.maxNumberOfReturnedAccessIds=50
|
||||
taskana.ldap.groupsOfUser=uniquemember
|
||||
# Embedded Spring LDAP server
|
||||
spring.ldap.embedded.base-dn=OU=Test,O=TASKANA
|
||||
spring.ldap.embedded.credential.username=uid=admin
|
||||
spring.ldap.embedded.credential.password=secret
|
||||
spring.ldap.embedded.ldif=classpath:taskana-test.ldif
|
||||
spring.ldap.embedded.port=11389
|
||||
spring.ldap.embedded.validation.enabled=false
|
||||
####### JobScheduler cron expression that specifies when the JobSchedler runs
|
||||
taskana.jobscheduler.async.cron=0 0 * * * *
|
||||
####### cache static resources properties
|
||||
spring.web.resources.cache.cachecontrol.cache-private=true
|
||||
spring.main.allow-bean-definition-overriding=true
|
||||
####### tomcat is not detecting the x-forward headers from bluemix as a trustworthy proxy
|
||||
server.tomcat.remoteip.internal-proxies=.*
|
||||
server.forward-headers-strategy=native
|
||||
|
|
|
@ -3,10 +3,10 @@ logging.level.org.springframework.security=INFO
|
|||
logging.level.org.springframework.ldap=INFO
|
||||
### logging.level.org.springframework=DEBUG
|
||||
######## Taskana DB #######
|
||||
datasource.url=jdbc:h2:mem:taskana;IGNORECASE=TRUE;LOCK_MODE=0
|
||||
datasource.driverClassName=org.h2.Driver
|
||||
datasource.username=sa
|
||||
datasource.password=sa
|
||||
spring.datasource.url=jdbc:h2:mem:taskana;NON_KEYWORDS=KEY,VALUE;IGNORECASE=TRUE;LOCK_MODE=0
|
||||
spring.datasource.driverClassName=org.h2.Driver
|
||||
spring.datasource.username=sa
|
||||
spring.datasource.password=sa
|
||||
taskana.schemaName=TASKANA
|
||||
####### property that control rest api security deploy use true for no security.
|
||||
devMode=false
|
||||
|
|
|
@ -69,12 +69,6 @@
|
|||
<artifactId>javax.servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
|
||||
<!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
|
||||
<dependency>
|
||||
<groupId>com.h2database</groupId>
|
||||
<artifactId>h2</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.wildfly.security</groupId>
|
||||
|
@ -98,8 +92,8 @@
|
|||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-log4j2</artifactId>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-simple</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
@ -159,23 +153,6 @@
|
|||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-clean-plugin</artifactId>
|
||||
<version>${version.maven.clean}</version>
|
||||
<configuration>
|
||||
<excludeDefaultDirectories>true</excludeDefaultDirectories>
|
||||
<filesets>
|
||||
<fileset>
|
||||
<directory>target</directory>
|
||||
<excludes>
|
||||
<exclude>wildfly-${version.wildfly}</exclude>
|
||||
<exclude>wildfly-${version.wildfly}/**</exclude>
|
||||
</excludes>
|
||||
<followSymlinks>false</followSymlinks>
|
||||
</fileset>
|
||||
</filesets>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
|
@ -212,7 +189,7 @@
|
|||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<outputDirectory>
|
||||
${project.build.directory}/wildfly-${version.wildfly}/modules/system/layers/base/org/postgresql/main
|
||||
${project.build.directory}/wildfly-${version.wildfly}/modules/system/layers/base/org/postgresql/postgresql/main
|
||||
</outputDirectory>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
|
@ -220,45 +197,20 @@
|
|||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>${version.maven.surefire}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>default-test</id>
|
||||
<configuration>
|
||||
<skip>true</skip>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>integration-tests</id>
|
||||
<phase>test</phase>
|
||||
<goals>
|
||||
<goal>test</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<includes>
|
||||
<include>**/*Test.java</include>
|
||||
</includes>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>${version.maven.resources}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-module-xml</id>
|
||||
<id>copy-postgres-module-xml</id>
|
||||
<phase>process-test-classes</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>
|
||||
${project.build.directory}/wildfly-${version.wildfly}/modules/system/layers/base/org/postgresql/main
|
||||
${project.build.directory}/wildfly-${version.wildfly}/modules/system/layers/base/org/postgresql/postgresql/main
|
||||
</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
|
|
|
@ -8,12 +8,9 @@ import javax.sql.DataSource;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.DependsOn;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
|
||||
|
@ -29,18 +26,6 @@ public class TaskanaWildflyConfiguration {
|
|||
return new DataSourceTransactionManager(dataSource);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@Primary
|
||||
@ConfigurationProperties(prefix = "datasource")
|
||||
public DataSourceProperties dataSourceProperties(
|
||||
@Value("${taskana.schemaName:TASKANA}") String schemaName) {
|
||||
DataSourceProperties props = new DataSourceProperties();
|
||||
props.setUrl(
|
||||
"jdbc:h2:mem:taskana;IGNORECASE=TRUE;LOCK_MODE=0;INIT=CREATE SCHEMA IF NOT EXISTS "
|
||||
+ schemaName);
|
||||
return props;
|
||||
}
|
||||
|
||||
@Bean
|
||||
@DependsOn("getTaskanaEngine") // generate sample data after schema was inserted
|
||||
public SampleDataGenerator generateSampleData(
|
||||
|
@ -55,7 +40,7 @@ public class TaskanaWildflyConfiguration {
|
|||
}
|
||||
|
||||
@Bean
|
||||
public DataSource dataSource(DataSourceProperties dsProperties) {
|
||||
public DataSource dataSource() throws Exception {
|
||||
// First try to load Properties and get Datasource via jndi lookup
|
||||
Context ctx;
|
||||
DataSource dataSource;
|
||||
|
@ -74,7 +59,7 @@ public class TaskanaWildflyConfiguration {
|
|||
"Caught exception when attempting to start Taskana with Datasource "
|
||||
+ "from Jndi. Using default H2 datasource. ",
|
||||
e);
|
||||
return dsProperties.initializeDataSourceBuilder().build();
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,23 +1,25 @@
|
|||
package pro.taskana.example.wildfly.security;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||
import org.springframework.security.web.SecurityFilterChain;
|
||||
import org.springframework.security.web.jaasapi.JaasApiIntegrationFilter;
|
||||
|
||||
/**
|
||||
* Default basic configuration for taskana web example running on Wildfly / JBoss with Elytron or
|
||||
* JAAS Security.
|
||||
*/
|
||||
@EnableWebSecurity
|
||||
public class WildflyWebSecurityConfigurer extends WebSecurityConfigurerAdapter {
|
||||
@Configuration
|
||||
public class WildflyWebSecurityConfigurer {
|
||||
|
||||
@Override
|
||||
protected void configure(HttpSecurity http) throws Exception {
|
||||
@Bean
|
||||
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
||||
http.addFilter(jaasApiIntegrationFilter())
|
||||
.addFilterAfter(new ElytronToJaasFilter(), JaasApiIntegrationFilter.class)
|
||||
.csrf()
|
||||
.disable();
|
||||
return http.build();
|
||||
}
|
||||
|
||||
protected JaasApiIntegrationFilter jaasApiIntegrationFilter() {
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
package pro.taskana.common.test.rest;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.DatabaseMetaData;
|
||||
import java.sql.SQLException;
|
||||
import javax.sql.DataSource;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
@ -17,9 +22,22 @@ import pro.taskana.sampledata.SampleDataGenerator;
|
|||
@DependsOn("getTaskanaEngine") // wait for schema to be created BEFORE inserting test data
|
||||
public class TestConfiguration {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(TestConfiguration.class);
|
||||
|
||||
@Autowired
|
||||
public TestConfiguration(
|
||||
@Value("${taskana.schemaName:TASKANA}") String schemaName, DataSource dataSource) {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
try (Connection connection = dataSource.getConnection()) {
|
||||
DatabaseMetaData metaData = connection.getMetaData();
|
||||
LOGGER.debug(
|
||||
"Using database of type {} with url '{}'",
|
||||
metaData.getDatabaseProductName(),
|
||||
metaData.getURL());
|
||||
} catch (SQLException e) {
|
||||
LOGGER.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
new SampleDataGenerator(dataSource, schemaName).generateSampleData();
|
||||
}
|
||||
|
||||
|
|
|
@ -3,6 +3,8 @@ package pro.taskana.example.wildfly;
|
|||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.core.ParameterizedTypeReference;
|
||||
import org.springframework.http.HttpEntity;
|
||||
import org.springframework.http.HttpMethod;
|
||||
|
@ -23,6 +25,8 @@ public class AbstractAccTest {
|
|||
|
||||
protected static final String DEPENDENCY_VERSION = "5.9.1-SNAPSHOT";
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractAccTest.class);
|
||||
|
||||
static {
|
||||
Runtime.getRuntime().addShutdownHook(new Thread(AbstractAccTest::stopPostgresDb));
|
||||
|
||||
|
@ -98,6 +102,7 @@ public class AbstractAccTest {
|
|||
"sh", "-c", "docker-compose -f ../../docker-databases/docker-compose.yml down -v");
|
||||
}
|
||||
Process process = builder.start();
|
||||
LOGGER.info("Stopping POSTGRES...");
|
||||
int exitCode = process.waitFor();
|
||||
if (exitCode != 0) {
|
||||
throw new RuntimeException("could not start postgres db!");
|
||||
|
@ -115,16 +120,17 @@ public class AbstractAccTest {
|
|||
builder.command(
|
||||
"cmd.exe",
|
||||
"/c",
|
||||
"docker-compose -f ../../docker-databases/docker-compose.yml up -d",
|
||||
"taskana-postgres_10");
|
||||
"docker-compose -f ../../docker-databases/docker-compose.yml up -d "
|
||||
+ "taskana-postgres_10");
|
||||
} else {
|
||||
builder.command(
|
||||
"sh",
|
||||
"-c",
|
||||
"docker-compose -f ../../docker-databases/docker-compose.yml up -d",
|
||||
"taskana-postgres_10");
|
||||
"docker-compose -f ../../docker-databases/docker-compose.yml up -d "
|
||||
+ "taskana-postgres_10");
|
||||
}
|
||||
Process process = builder.start();
|
||||
LOGGER.info("Starting POSTGRES...");
|
||||
int exitCode = process.waitFor();
|
||||
if (exitCode != 0) {
|
||||
throw new RuntimeException("could not start postgres db!");
|
||||
|
|
|
@ -1,51 +0,0 @@
|
|||
######## Taskana DB #######
|
||||
datasource.jndi=java:/TaskanaDS/H2
|
||||
taskana.schemaName=TASKANA
|
||||
devMode=true
|
||||
|
||||
####### properties to connect to LDAP
|
||||
taskana.ldap.serverUrl=ldap://localhost:10389
|
||||
taskana.ldap.bindDn=uid=admin
|
||||
taskana.ldap.bindPassword=secret
|
||||
taskana.ldap.baseDn=ou=Test,O=TASKANA
|
||||
taskana.ldap.userSearchBase=cn=users
|
||||
taskana.ldap.userSearchFilterName=objectclass
|
||||
taskana.ldap.userSearchFilterValue=person
|
||||
taskana.ldap.userFirstnameAttribute=givenName
|
||||
taskana.ldap.userLastnameAttribute=sn
|
||||
taskana.ldap.userFullnameAttribute=cn
|
||||
taskana.ldap.userPhoneAttribute=phoneNumber
|
||||
taskana.ldap.userMobilePhoneAttribute=mobileNumber
|
||||
taskana.ldap.userEmailAttribute=email
|
||||
taskana.ldap.userOrglevel1Attribute=orgLevel1
|
||||
taskana.ldap.userOrglevel2Attribute=orgLevel2
|
||||
taskana.ldap.userOrglevel3Attribute=someDepartement
|
||||
taskana.ldap.userOrglevel4Attribute=orgLevel4
|
||||
taskana.ldap.userIdAttribute=uid
|
||||
taskana.ldap.userMemberOfGroupAttribute=memberOf
|
||||
taskana.ldap.groupSearchBase=
|
||||
taskana.ldap.groupSearchFilterName=objectclass
|
||||
taskana.ldap.groupSearchFilterValue=groupOfUniqueNames
|
||||
taskana.ldap.groupNameAttribute=cn
|
||||
taskana.ldap.minSearchForLength=3
|
||||
taskana.ldap.maxNumberOfReturnedAccessIds=50
|
||||
taskana.ldap.groupsOfUser=uniquemember
|
||||
|
||||
####### JobScheduler cron expression that specifies when the JobSchedler runs
|
||||
taskana.jobscheduler.async.cron=0 * * * * *
|
||||
|
||||
####### cache static resources propertiesgit add --
|
||||
spring.resources.cache.cachecontrol.cache-private=true
|
||||
spring.main.allow-bean-definition-overriding=true
|
||||
|
||||
####### tomcat is not detecting the x-forward headers from bluemix as a trustworthy proxy
|
||||
server.tomcat.remoteip.internal-proxies=.*
|
||||
server.forward-headers-strategy=native
|
||||
|
||||
# Embedded Spring LDAP server
|
||||
spring.ldap.embedded.base-dn=OU=Test,O=TASKANA
|
||||
spring.ldap.embedded.credential.username=uid=admin
|
||||
spring.ldap.embedded.credential.password=secret
|
||||
spring.ldap.embedded.ldif=classpath:taskana-test.ldif
|
||||
spring.ldap.embedded.port=10389
|
||||
spring.ldap.embedded.validation.enabled=false
|
|
@ -1,52 +0,0 @@
|
|||
######## Taskana DB #######
|
||||
datasource.jndi=java:/TaskanaDS/PostgreSQL
|
||||
taskana.schemaName=taskana
|
||||
|
||||
devMode=true
|
||||
|
||||
####### properties to connect to LDAP
|
||||
taskana.ldap.serverUrl=ldap://localhost:10389
|
||||
taskana.ldap.bindDn=uid=admin
|
||||
taskana.ldap.bindPassword=secret
|
||||
taskana.ldap.baseDn=ou=Test,O=TASKANA
|
||||
taskana.ldap.userSearchBase=cn=users
|
||||
taskana.ldap.userSearchFilterName=objectclass
|
||||
taskana.ldap.userSearchFilterValue=person
|
||||
taskana.ldap.userFirstnameAttribute=givenName
|
||||
taskana.ldap.userLastnameAttribute=sn
|
||||
taskana.ldap.userFullnameAttribute=cn
|
||||
taskana.ldap.userPhoneAttribute=phoneNumber
|
||||
taskana.ldap.userMobilePhoneAttribute=mobileNumber
|
||||
taskana.ldap.userEmailAttribute=email
|
||||
taskana.ldap.userOrglevel1Attribute=orgLevel1
|
||||
taskana.ldap.userOrglevel2Attribute=orgLevel2
|
||||
taskana.ldap.userOrglevel3Attribute=someDepartement
|
||||
taskana.ldap.userOrglevel4Attribute=orgLevel4
|
||||
taskana.ldap.userIdAttribute=uid
|
||||
taskana.ldap.userMemberOfGroupAttribute=memberOf
|
||||
taskana.ldap.groupSearchBase=
|
||||
taskana.ldap.groupSearchFilterName=objectclass
|
||||
taskana.ldap.groupSearchFilterValue=groupOfUniqueNames
|
||||
taskana.ldap.groupNameAttribute=cn
|
||||
taskana.ldap.minSearchForLength=3
|
||||
taskana.ldap.maxNumberOfReturnedAccessIds=50
|
||||
taskana.ldap.groupsOfUser=uniquemember
|
||||
|
||||
####### JobScheduler cron expression that specifies when the JobSchedler runs
|
||||
taskana.jobscheduler.async.cron=0 * * * * *
|
||||
|
||||
####### cache static resources propertiesgit add --
|
||||
spring.resources.cache.cachecontrol.cache-private=true
|
||||
spring.main.allow-bean-definition-overriding=true
|
||||
|
||||
####### tomcat is not detecting the x-forward headers from bluemix as a trustworthy proxy
|
||||
server.tomcat.remoteip.internal-proxies=.*
|
||||
server.forward-headers-strategy=native
|
||||
|
||||
# Embedded Spring LDAP server
|
||||
spring.ldap.embedded.base-dn= OU=Test,O=TASKANA
|
||||
spring.ldap.embedded.credential.username= uid=admin
|
||||
spring.ldap.embedded.credential.password= secret
|
||||
spring.ldap.embedded.ldif=classpath:taskana-test.ldif
|
||||
spring.ldap.embedded.port= 10389
|
||||
spring.ldap.embedded.validation.enabled=false
|
|
@ -1,9 +1,6 @@
|
|||
######## Taskana DB #######
|
||||
datasource.jndi=java:/TaskanaDS/PostgreSQL
|
||||
datasource.jndi=java:jboss/datasources/TaskanaDS
|
||||
taskana.schemaName=taskana
|
||||
|
||||
devMode=true
|
||||
|
||||
####### properties to connect to LDAP
|
||||
taskana.ldap.serverUrl=ldap://localhost:10389
|
||||
taskana.ldap.bindDn=uid=admin
|
||||
|
@ -31,18 +28,14 @@ taskana.ldap.groupNameAttribute=cn
|
|||
taskana.ldap.minSearchForLength=3
|
||||
taskana.ldap.maxNumberOfReturnedAccessIds=50
|
||||
taskana.ldap.groupsOfUser=uniquemember
|
||||
|
||||
####### JobScheduler cron expression that specifies when the JobSchedler runs
|
||||
taskana.jobscheduler.async.cron=0 * * * * *
|
||||
|
||||
####### cache static resources propertiesgit add --
|
||||
spring.resources.cache.cachecontrol.cache-private=true
|
||||
spring.main.allow-bean-definition-overriding=true
|
||||
|
||||
####### tomcat is not detecting the x-forward headers from bluemix as a trustworthy proxy
|
||||
server.tomcat.remoteip.internal-proxies=.*
|
||||
server.forward-headers-strategy=native
|
||||
|
||||
# Embedded Spring LDAP server
|
||||
spring.ldap.embedded.base-dn=OU=Test,O=TASKANA
|
||||
spring.ldap.embedded.credential.username=uid=admin
|
||||
|
|
|
@ -2,16 +2,19 @@
|
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://jboss.org/schema/arquillian
|
||||
http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
|
||||
<defaultProtocol type="Servlet 3.0"/>
|
||||
<container qualifier="jboss" default="true">
|
||||
<configuration>
|
||||
<property name="jbossHome">target/wildfly-15.0.1.Final</property>
|
||||
<property
|
||||
name="serverConfig">../../../../src/test/resources/int-test-standalone.xml</property>
|
||||
<!-- <property name="javaVmArguments">-Xmx512m -XX:MaxPermSize=128m
|
||||
-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y
|
||||
</property> -->
|
||||
<property name="javaVmArguments">-Djava.util.logging.manager=org.jboss.logmanager.LogManager</property>
|
||||
</configuration>
|
||||
</container>
|
||||
<defaultProtocol type="Servlet 3.0"/>
|
||||
<container qualifier="jboss" default="true">
|
||||
<configuration>
|
||||
<property name="jbossHome">target/wildfly-15.0.1.Final</property>
|
||||
<property
|
||||
name="serverConfig">../../../../src/test/resources/int-test-standalone.xml
|
||||
</property>
|
||||
<!-- <property name="javaVmArguments">-->
|
||||
<!-- -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y-->
|
||||
<!-- -Djava.util.logging.manager=org.jboss.logmanager.LogManager-->
|
||||
<!-- </property>-->
|
||||
<property name="javaVmArguments">-Djava.util.logging.manager=org.jboss.logmanager.LogManager
|
||||
</property>
|
||||
</configuration>
|
||||
</container>
|
||||
</arquillian>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,14 +1,13 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<module xmlns="urn:jboss:module:1.1" name="org.postgresql">
|
||||
<module xmlns="urn:jboss:module:1.1" name="org.postgresql.postgresql">
|
||||
|
||||
<dependencies>
|
||||
<module name="javax.api"/>
|
||||
<module name="javax.transaction.api"/>
|
||||
</dependencies>
|
||||
<dependencies>
|
||||
<module name="javax.api"/>
|
||||
<module name="javax.transaction.api"/>
|
||||
</dependencies>
|
||||
|
||||
<resources>
|
||||
<!--the name of your driver -->
|
||||
<resource-root path="postgresql-42.3.3.jar"/>
|
||||
</resources>
|
||||
<resources>
|
||||
<resource-root path="postgresql-42.3.8.jar"/>
|
||||
</resources>
|
||||
</module>
|
||||
|
|
|
@ -0,0 +1,109 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>taskana-rest-spring-test-lib</artifactId>
|
||||
|
||||
<name>${project.groupId}:${project.artifactId}</name>
|
||||
<description>Test utils for TASKANA rest logic (based on spring).</description>
|
||||
|
||||
<parent>
|
||||
<groupId>pro.taskana</groupId>
|
||||
<artifactId>taskana-rest-parent</artifactId>
|
||||
<version>5.9.1-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<sonar.tests/>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>pro.taskana</groupId>
|
||||
<artifactId>taskana-common-logging</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>pro.taskana</groupId>
|
||||
<artifactId>taskana-common-data</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>${version.javax.servlet}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-webmvc</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-jdbc</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-autoconfigure</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-test</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.security</groupId>
|
||||
<artifactId>spring-security-ldap</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.security</groupId>
|
||||
<artifactId>spring-security-test</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.security</groupId>
|
||||
<artifactId>spring-security-config</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.hateoas</groupId>
|
||||
<artifactId>spring-hateoas</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.restdocs</groupId>
|
||||
<artifactId>spring-restdocs-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.restdocs</groupId>
|
||||
<artifactId>spring-restdocs-mockmvc</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>capital.scalable</groupId>
|
||||
<artifactId>spring-auto-restdocs-core</artifactId>
|
||||
<version>${version.auto-restdocs}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.module</groupId>
|
||||
<artifactId>jackson-module-parameter-names</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-jdk8</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-jsr310</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-api</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.common.test;
|
||||
package pro.taskana.rest.test;
|
||||
|
||||
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
|
||||
|
||||
|
@ -30,9 +30,6 @@ import org.springframework.test.web.servlet.setup.MockMvcConfigurerAdapter;
|
|||
import org.springframework.web.context.WebApplicationContext;
|
||||
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
|
||||
|
||||
import pro.taskana.common.test.rest.RestHelper;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
|
||||
@TaskanaSpringBootTest
|
||||
@ExtendWith(RestDocumentationExtension.class)
|
||||
public class BaseRestDocTest {
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.common.test.rest;
|
||||
package pro.taskana.rest.test;
|
||||
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
@ -0,0 +1,114 @@
|
|||
package pro.taskana.rest.test;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.security.AccessController;
|
||||
import java.util.Optional;
|
||||
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.LoggerFactory;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.security.core.userdetails.UserDetails;
|
||||
import org.springframework.web.filter.GenericFilterBean;
|
||||
|
||||
import pro.taskana.common.api.exceptions.SystemException;
|
||||
import pro.taskana.common.api.security.GroupPrincipal;
|
||||
import pro.taskana.common.api.security.UserPrincipal;
|
||||
|
||||
// Duplicate of pro.taskana.common.rest.SpringSecurityToJaasFilter
|
||||
/** Simple Filter to map all Spring Security Roles to JAAS-Principals. */
|
||||
public class SpringSecurityToJaasFilter extends GenericFilterBean {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(SpringSecurityToJaasFilter.class);
|
||||
|
||||
@Override
|
||||
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
|
||||
throws IOException, ServletException {
|
||||
Optional<Authentication> authentication = getCurrentAuthentication();
|
||||
if (authentication.isPresent()) {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("Authentication found in Spring security context: {}", authentication);
|
||||
}
|
||||
obtainSubject()
|
||||
.ifPresent(
|
||||
subject -> {
|
||||
initializeUserPrincipalFromAuthentication(authentication.get(), subject);
|
||||
initializeGroupPrincipalsFromAuthentication(authentication.get(), subject);
|
||||
});
|
||||
} else {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug(
|
||||
"No authentication found in Spring security context. Continuing unauthenticatic.");
|
||||
}
|
||||
}
|
||||
|
||||
chain.doFilter(request, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtains the <code>Subject</code> to run as or <code>null</code> if no <code>Subject</code> is
|
||||
* available.
|
||||
*
|
||||
* <p>The default implementation attempts to obtain the <code>Subject</code> from the <code>
|
||||
* SecurityContext</code>'s <code>Authentication</code>. If it is of type <code>
|
||||
* JaasAuthenticationToken</code> and is authenticated, the <code>Subject</code> is returned from
|
||||
* it.
|
||||
*
|
||||
* @return the Subject to run.
|
||||
*/
|
||||
protected Optional<Subject> obtainSubject() {
|
||||
Optional<Authentication> authentication = getCurrentAuthentication();
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("Attempting to obtainSubject using authentication : " + authentication);
|
||||
}
|
||||
if (!authentication.isPresent() || !authentication.get().isAuthenticated()) {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
return Optional.of(Subject.getSubject(AccessController.getContext()));
|
||||
}
|
||||
|
||||
Optional<Authentication> getCurrentAuthentication() {
|
||||
return Optional.ofNullable(SecurityContextHolder.getContext().getAuthentication());
|
||||
}
|
||||
|
||||
private void initializeUserPrincipalFromAuthentication(
|
||||
Authentication authentication, Subject subject) {
|
||||
if (subject.getPrincipals().isEmpty()) {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug(
|
||||
"Setting the principal of the subject with {}.", authentication.getPrincipal());
|
||||
}
|
||||
subject
|
||||
.getPrincipals()
|
||||
.add(new UserPrincipal(((UserDetails) authentication.getPrincipal()).getUsername()));
|
||||
} else {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("Principal of the subject is already set to {}.", subject.getPrincipals());
|
||||
}
|
||||
throw new SystemException("Finding an existing principal is unexpected. Please investigate.");
|
||||
}
|
||||
}
|
||||
|
||||
private void initializeGroupPrincipalsFromAuthentication(
|
||||
Authentication authentication, Subject subject) {
|
||||
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("Adding roles {} to subject.", authentication.getAuthorities());
|
||||
}
|
||||
|
||||
authentication
|
||||
.getAuthorities()
|
||||
.forEach(
|
||||
grantedAuthority ->
|
||||
subject.getPrincipals().add(new GroupPrincipal(grantedAuthority.getAuthority())));
|
||||
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("{}", subject.getPublicCredentials(GroupPrincipal.class));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.common.test.rest;
|
||||
package pro.taskana.rest.test;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.common.test.rest;
|
||||
package pro.taskana.rest.test;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
@ -1,4 +1,4 @@
|
|||
package pro.taskana.common.test.rest;
|
||||
package pro.taskana.rest.test;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -8,13 +8,21 @@ import org.springframework.beans.factory.annotation.Value;
|
|||
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.ldap.core.support.BaseLdapPathContextSource;
|
||||
import org.springframework.security.authentication.AuthenticationManager;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.ldap.LdapPasswordComparisonAuthenticationManagerFactory;
|
||||
import org.springframework.security.core.GrantedAuthority;
|
||||
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
||||
import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper;
|
||||
import org.springframework.security.core.authority.mapping.SimpleAuthorityMapper;
|
||||
import org.springframework.security.crypto.password.NoOpPasswordEncoder;
|
||||
import org.springframework.security.ldap.DefaultSpringSecurityContextSource;
|
||||
import org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator;
|
||||
import org.springframework.security.ldap.userdetails.LdapAuthoritiesPopulator;
|
||||
import org.springframework.security.web.SecurityFilterChain;
|
||||
import org.springframework.security.web.jaasapi.JaasApiIntegrationFilter;
|
||||
import org.springframework.web.cors.CorsConfiguration;
|
||||
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
|
||||
import org.springframework.web.filter.CorsFilter;
|
||||
|
@ -27,6 +35,7 @@ public class TestWebSecurityConfig {
|
|||
|
||||
private final String ldapServerUrl;
|
||||
private final String ldapBaseDn;
|
||||
private final String ldapUserDnPatterns;
|
||||
private final String ldapGroupSearchBase;
|
||||
private final String ldapGroupSearchFilter;
|
||||
|
||||
|
@ -34,10 +43,12 @@ public class TestWebSecurityConfig {
|
|||
public TestWebSecurityConfig(
|
||||
@Value("${taskana.ldap.serverUrl:ldap://localhost:10389}") String ldapServerUrl,
|
||||
@Value("${taskana.ldap.baseDn:OU=Test,O=TASKANA}") String ldapBaseDn,
|
||||
@Value("${taskana.ldap.userDnPatterns:uid={0},cn=users}") String ldapUserDnPatterns,
|
||||
@Value("${taskana.ldap.groupSearchBase:cn=groups}") String ldapGroupSearchBase,
|
||||
@Value("${taskana.ldap.groupSearchFilter:uniqueMember={0}}") String ldapGroupSearchFilter) {
|
||||
this.ldapServerUrl = ldapServerUrl;
|
||||
this.ldapBaseDn = ldapBaseDn;
|
||||
this.ldapUserDnPatterns = ldapUserDnPatterns;
|
||||
this.ldapGroupSearchBase = ldapGroupSearchBase;
|
||||
this.ldapGroupSearchFilter = ldapGroupSearchFilter;
|
||||
}
|
||||
|
@ -77,6 +88,7 @@ public class TestWebSecurityConfig {
|
|||
}
|
||||
|
||||
@Bean
|
||||
@Primary
|
||||
public DefaultSpringSecurityContextSource defaultSpringSecurityContextSource() {
|
||||
return new DefaultSpringSecurityContextSource(ldapServerUrl + "/" + ldapBaseDn);
|
||||
}
|
||||
|
@ -88,6 +100,44 @@ public class TestWebSecurityConfig {
|
|||
return grantedAuthoritiesMapper;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
||||
http.authorizeRequests()
|
||||
.and()
|
||||
.csrf()
|
||||
.disable()
|
||||
.httpBasic()
|
||||
.and()
|
||||
.addFilter(jaasApiIntegrationFilter())
|
||||
.addFilterAfter(new SpringSecurityToJaasFilter(), JaasApiIntegrationFilter.class)
|
||||
.authorizeRequests()
|
||||
.anyRequest()
|
||||
.fullyAuthenticated();
|
||||
return http.build();
|
||||
}
|
||||
|
||||
@Bean
|
||||
AuthenticationManager ldapAuthenticationManager(
|
||||
BaseLdapPathContextSource contextSource,
|
||||
LdapAuthoritiesPopulator authorities,
|
||||
GrantedAuthoritiesMapper grantedAuthoritiesMapper) {
|
||||
@SuppressWarnings("deprecation")
|
||||
LdapPasswordComparisonAuthenticationManagerFactory factory =
|
||||
new LdapPasswordComparisonAuthenticationManagerFactory(
|
||||
contextSource, NoOpPasswordEncoder.getInstance());
|
||||
factory.setUserDnPatterns(ldapUserDnPatterns);
|
||||
factory.setLdapAuthoritiesPopulator(authorities);
|
||||
factory.setAuthoritiesMapper(grantedAuthoritiesMapper);
|
||||
factory.setPasswordAttribute("userPassword");
|
||||
return factory.createAuthenticationManager();
|
||||
}
|
||||
|
||||
private JaasApiIntegrationFilter jaasApiIntegrationFilter() {
|
||||
JaasApiIntegrationFilter filter = new JaasApiIntegrationFilter();
|
||||
filter.setCreateEmptySubject(true);
|
||||
return filter;
|
||||
}
|
||||
|
||||
private static class CorsWebMvcConfigurer implements WebMvcConfigurer {
|
||||
|
||||
@Override
|
|
@ -82,7 +82,7 @@
|
|||
<!-- test dependencies -->
|
||||
<dependency>
|
||||
<groupId>pro.taskana</groupId>
|
||||
<artifactId>taskana-common-test</artifactId>
|
||||
<artifactId>taskana-rest-spring-test-lib</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
@ -170,6 +170,12 @@
|
|||
<version>${version.archunit}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>pro.taskana</groupId>
|
||||
<artifactId>taskana-test-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
|
|
@ -3,7 +3,7 @@ package pro.taskana.classification.rest;
|
|||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN;
|
||||
import static pro.taskana.common.test.rest.RestHelper.TEMPLATE;
|
||||
import static pro.taskana.rest.test.RestHelper.TEMPLATE;
|
||||
|
||||
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
@ -22,8 +22,8 @@ import pro.taskana.classification.rest.models.ClassificationRepresentationModel;
|
|||
import pro.taskana.classification.rest.models.ClassificationSummaryPagedRepresentationModel;
|
||||
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
||||
import pro.taskana.common.rest.RestEndpoints;
|
||||
import pro.taskana.common.test.rest.RestHelper;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.RestHelper;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
|
||||
/** Test {@link ClassificationController}. */
|
||||
@TaskanaSpringBootTest
|
||||
|
|
|
@ -14,7 +14,7 @@ import pro.taskana.classification.api.models.Classification;
|
|||
import pro.taskana.classification.rest.assembler.ClassificationRepresentationModelAssembler;
|
||||
import pro.taskana.classification.rest.models.ClassificationRepresentationModel;
|
||||
import pro.taskana.common.rest.RestEndpoints;
|
||||
import pro.taskana.common.test.BaseRestDocTest;
|
||||
import pro.taskana.rest.test.BaseRestDocTest;
|
||||
|
||||
class ClassificationControllerRestDocTest extends BaseRestDocTest {
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||
import static org.assertj.core.api.Assertions.assertThatCode;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN;
|
||||
import static pro.taskana.common.test.rest.RestHelper.TEMPLATE;
|
||||
import static pro.taskana.rest.test.RestHelper.TEMPLATE;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import java.io.File;
|
||||
|
@ -42,8 +42,8 @@ import pro.taskana.classification.rest.models.ClassificationCollectionRepresenta
|
|||
import pro.taskana.classification.rest.models.ClassificationDefinitionRepresentationModel;
|
||||
import pro.taskana.classification.rest.models.ClassificationRepresentationModel;
|
||||
import pro.taskana.common.rest.RestEndpoints;
|
||||
import pro.taskana.common.test.rest.RestHelper;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.RestHelper;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
|
||||
/** Test classification definitions. */
|
||||
@TaskanaSpringBootTest
|
||||
|
|
|
@ -13,7 +13,7 @@ import pro.taskana.classification.api.models.Classification;
|
|||
import pro.taskana.classification.rest.assembler.ClassificationRepresentationModelAssembler;
|
||||
import pro.taskana.classification.rest.models.ClassificationCollectionRepresentationModel;
|
||||
import pro.taskana.common.rest.RestEndpoints;
|
||||
import pro.taskana.common.test.BaseRestDocTest;
|
||||
import pro.taskana.rest.test.BaseRestDocTest;
|
||||
|
||||
class ClassificationDefinitionControllerRestDocTest extends BaseRestDocTest {
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ import pro.taskana.classification.api.models.Classification;
|
|||
import pro.taskana.classification.internal.models.ClassificationImpl;
|
||||
import pro.taskana.classification.rest.models.ClassificationRepresentationModel;
|
||||
import pro.taskana.common.rest.RestEndpoints;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
|
||||
/** Test for {@link ClassificationRepresentationModelAssembler}. */
|
||||
@TaskanaSpringBootTest
|
||||
|
|
|
@ -17,7 +17,7 @@ import pro.taskana.classification.api.ClassificationService;
|
|||
import pro.taskana.classification.api.models.ClassificationSummary;
|
||||
import pro.taskana.classification.internal.models.ClassificationSummaryImpl;
|
||||
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
|
||||
/** Test for {@link ClassificationSummaryRepresentationModelAssembler}. */
|
||||
@TaskanaSpringBootTest
|
||||
|
|
|
@ -2,7 +2,7 @@ package pro.taskana.common.rest;
|
|||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
import static pro.taskana.common.test.rest.RestHelper.TEMPLATE;
|
||||
import static pro.taskana.rest.test.RestHelper.TEMPLATE;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Stream;
|
||||
|
@ -21,8 +21,8 @@ import org.springframework.web.client.HttpStatusCodeException;
|
|||
|
||||
import pro.taskana.common.internal.util.Pair;
|
||||
import pro.taskana.common.rest.models.AccessIdRepresentationModel;
|
||||
import pro.taskana.common.test.rest.RestHelper;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.RestHelper;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
|
||||
@TaskanaSpringBootTest
|
||||
class AccessIdControllerIntTest {
|
||||
|
|
|
@ -5,7 +5,7 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder
|
|||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
||||
|
||||
import pro.taskana.common.test.BaseRestDocTest;
|
||||
import pro.taskana.rest.test.BaseRestDocTest;
|
||||
|
||||
class AccessIdControllerRestDocTest extends BaseRestDocTest {
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package pro.taskana.common.rest;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
import static pro.taskana.common.test.rest.RestHelper.TEMPLATE;
|
||||
import static pro.taskana.rest.test.RestHelper.TEMPLATE;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import java.util.Arrays;
|
||||
|
@ -20,8 +20,8 @@ import org.springframework.web.client.HttpStatusCodeException;
|
|||
import pro.taskana.classification.rest.models.ClassificationSummaryPagedRepresentationModel;
|
||||
import pro.taskana.common.api.exceptions.ErrorCode;
|
||||
import pro.taskana.common.rest.TaskanaRestExceptionHandler.MalformedQueryParameter;
|
||||
import pro.taskana.common.test.rest.RestHelper;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.RestHelper;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
import pro.taskana.workbasket.api.WorkbasketPermission;
|
||||
import pro.taskana.workbasket.api.WorkbasketType;
|
||||
import pro.taskana.workbasket.rest.models.WorkbasketSummaryPagedRepresentationModel;
|
||||
|
|
|
@ -15,7 +15,7 @@ import org.junit.jupiter.api.Test;
|
|||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import pro.taskana.common.internal.configuration.DB;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
import pro.taskana.sampledata.SampleDataGenerator;
|
||||
|
||||
/** Test that the schema name can be customized. */
|
||||
|
|
|
@ -14,8 +14,8 @@ import org.springframework.web.client.RestTemplate;
|
|||
import pro.taskana.common.api.TaskanaRole;
|
||||
import pro.taskana.common.rest.models.CustomAttributesRepresentationModel;
|
||||
import pro.taskana.common.rest.models.TaskanaUserInfoRepresentationModel;
|
||||
import pro.taskana.common.test.rest.RestHelper;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.RestHelper;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
|
||||
/** Test TaskanaEngineController. */
|
||||
@TaskanaSpringBootTest
|
||||
|
|
|
@ -8,7 +8,7 @@ import org.junit.jupiter.api.Test;
|
|||
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
||||
|
||||
import pro.taskana.common.rest.models.CustomAttributesRepresentationModel;
|
||||
import pro.taskana.common.test.BaseRestDocTest;
|
||||
import pro.taskana.rest.test.BaseRestDocTest;
|
||||
|
||||
class TaskanaEngineControllerRestDocTest extends BaseRestDocTest {
|
||||
|
||||
|
|
|
@ -1,74 +0,0 @@
|
|||
package pro.taskana.common.rest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||
import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper;
|
||||
import org.springframework.security.ldap.userdetails.LdapAuthoritiesPopulator;
|
||||
import org.springframework.security.web.jaasapi.JaasApiIntegrationFilter;
|
||||
|
||||
@EnableWebSecurity
|
||||
public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter {
|
||||
|
||||
private final LdapAuthoritiesPopulator ldapAuthoritiesPopulator;
|
||||
private final GrantedAuthoritiesMapper grantedAuthoritiesMapper;
|
||||
|
||||
private final String ldapServerUrl;
|
||||
private final String ldapBaseDn;
|
||||
private final String ldapGroupSearchBase;
|
||||
private final String ldapUserDnPatterns;
|
||||
|
||||
@Autowired
|
||||
public WebSecurityConfigurer(
|
||||
@Value("${taskana.ldap.serverUrl:ldap://localhost:10389}") String ldapServerUrl,
|
||||
@Value("${taskana.ldap.baseDn:OU=Test,O=TASKANA}") String ldapBaseDn,
|
||||
@Value("${taskana.ldap.groupSearchBase:cn=groups}") String ldapGroupSearchBase,
|
||||
@Value("${taskana.ldap.userDnPatterns:uid={0},cn=users}") String ldapUserDnPatterns,
|
||||
LdapAuthoritiesPopulator ldapAuthoritiesPopulator,
|
||||
GrantedAuthoritiesMapper grantedAuthoritiesMapper) {
|
||||
this.ldapServerUrl = ldapServerUrl;
|
||||
this.ldapBaseDn = ldapBaseDn;
|
||||
this.ldapGroupSearchBase = ldapGroupSearchBase;
|
||||
this.ldapUserDnPatterns = ldapUserDnPatterns;
|
||||
this.ldapAuthoritiesPopulator = ldapAuthoritiesPopulator;
|
||||
this.grantedAuthoritiesMapper = grantedAuthoritiesMapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
|
||||
auth.ldapAuthentication()
|
||||
.userDnPatterns(ldapUserDnPatterns)
|
||||
.groupSearchBase(ldapGroupSearchBase)
|
||||
.ldapAuthoritiesPopulator(ldapAuthoritiesPopulator)
|
||||
.authoritiesMapper(grantedAuthoritiesMapper)
|
||||
.contextSource()
|
||||
.url(ldapServerUrl + "/" + ldapBaseDn)
|
||||
.and()
|
||||
.passwordCompare()
|
||||
.passwordAttribute("userPassword");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configure(HttpSecurity http) throws Exception {
|
||||
http.authorizeRequests()
|
||||
.and()
|
||||
.csrf()
|
||||
.disable()
|
||||
.httpBasic()
|
||||
.and()
|
||||
.addFilter(jaasApiIntegrationFilter())
|
||||
.addFilterAfter(new SpringSecurityToJaasFilter(), JaasApiIntegrationFilter.class)
|
||||
.authorizeRequests()
|
||||
.anyRequest()
|
||||
.fullyAuthenticated();
|
||||
}
|
||||
|
||||
private JaasApiIntegrationFilter jaasApiIntegrationFilter() {
|
||||
JaasApiIntegrationFilter filter = new JaasApiIntegrationFilter();
|
||||
filter.setCreateEmptySubject(true);
|
||||
return filter;
|
||||
}
|
||||
}
|
|
@ -2,7 +2,7 @@ package pro.taskana.monitor.rest;
|
|||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
import static pro.taskana.common.test.rest.RestHelper.TEMPLATE;
|
||||
import static pro.taskana.rest.test.RestHelper.TEMPLATE;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import java.net.URLEncoder;
|
||||
|
@ -18,11 +18,11 @@ import org.springframework.http.ResponseEntity;
|
|||
import org.springframework.web.client.HttpClientErrorException.BadRequest;
|
||||
|
||||
import pro.taskana.common.rest.RestEndpoints;
|
||||
import pro.taskana.common.test.rest.RestHelper;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.monitor.rest.models.PriorityColumnHeaderRepresentationModel;
|
||||
import pro.taskana.monitor.rest.models.ReportRepresentationModel;
|
||||
import pro.taskana.monitor.rest.models.ReportRepresentationModel.RowRepresentationModel;
|
||||
import pro.taskana.rest.test.RestHelper;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
|
||||
/** Test MonitorController. */
|
||||
@TaskanaSpringBootTest
|
||||
|
|
|
@ -6,7 +6,7 @@ import org.junit.jupiter.api.Test;
|
|||
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
||||
|
||||
import pro.taskana.common.rest.RestEndpoints;
|
||||
import pro.taskana.common.test.BaseRestDocTest;
|
||||
import pro.taskana.rest.test.BaseRestDocTest;
|
||||
|
||||
class MonitorControllerRestDocTest extends BaseRestDocTest {
|
||||
|
||||
|
|
|
@ -5,9 +5,9 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.monitor.api.reports.header.PriorityColumnHeader;
|
||||
import pro.taskana.monitor.rest.models.PriorityColumnHeaderRepresentationModel;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
|
||||
@TaskanaSpringBootTest
|
||||
class PriorityColumnHeaderRepresentationModelAssemblerTest {
|
||||
|
|
|
@ -13,13 +13,13 @@ import org.junit.jupiter.api.BeforeEach;
|
|||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.monitor.api.reports.ClassificationReport;
|
||||
import pro.taskana.monitor.api.reports.WorkbasketReport;
|
||||
import pro.taskana.monitor.api.reports.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.monitor.api.reports.item.DetailedMonitorQueryItem;
|
||||
import pro.taskana.monitor.api.reports.item.MonitorQueryItem;
|
||||
import pro.taskana.monitor.rest.models.ReportRepresentationModel;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
|
||||
/** Test for {@link ReportRepresentationModelAssembler}. */
|
||||
@TaskanaSpringBootTest
|
||||
|
|
|
@ -2,7 +2,7 @@ package pro.taskana.task.rest;
|
|||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
import static pro.taskana.common.test.rest.RestHelper.TEMPLATE;
|
||||
import static pro.taskana.rest.test.RestHelper.TEMPLATE;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.Comparator;
|
||||
|
@ -18,8 +18,8 @@ import org.springframework.http.ResponseEntity;
|
|||
import org.springframework.web.client.HttpStatusCodeException;
|
||||
|
||||
import pro.taskana.common.rest.RestEndpoints;
|
||||
import pro.taskana.common.test.rest.RestHelper;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.RestHelper;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
import pro.taskana.task.rest.models.TaskCommentCollectionRepresentationModel;
|
||||
import pro.taskana.task.rest.models.TaskCommentRepresentationModel;
|
||||
|
||||
|
|
|
@ -11,13 +11,13 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
||||
|
||||
import pro.taskana.common.rest.RestEndpoints;
|
||||
import pro.taskana.common.test.BaseRestDocTest;
|
||||
import pro.taskana.common.test.security.JaasExtension;
|
||||
import pro.taskana.common.test.security.WithAccessId;
|
||||
import pro.taskana.rest.test.BaseRestDocTest;
|
||||
import pro.taskana.task.api.TaskService;
|
||||
import pro.taskana.task.api.models.TaskComment;
|
||||
import pro.taskana.task.rest.assembler.TaskCommentRepresentationModelAssembler;
|
||||
import pro.taskana.task.rest.models.TaskCommentRepresentationModel;
|
||||
import pro.taskana.testapi.security.JaasExtension;
|
||||
import pro.taskana.testapi.security.WithAccessId;
|
||||
|
||||
@ExtendWith(JaasExtension.class)
|
||||
class TaskCommentControllerRestDocTest extends BaseRestDocTest {
|
||||
|
|
|
@ -3,7 +3,7 @@ package pro.taskana.task.rest;
|
|||
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
import static pro.taskana.common.test.rest.RestHelper.TEMPLATE;
|
||||
import static pro.taskana.rest.test.RestHelper.TEMPLATE;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.OutputStreamWriter;
|
||||
|
@ -37,8 +37,8 @@ import org.springframework.web.client.HttpStatusCodeException;
|
|||
|
||||
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
||||
import pro.taskana.common.rest.RestEndpoints;
|
||||
import pro.taskana.common.test.rest.RestHelper;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.RestHelper;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
import pro.taskana.sampledata.SampleDataGenerator;
|
||||
import pro.taskana.task.api.TaskState;
|
||||
import pro.taskana.task.rest.models.IsReadRepresentationModel;
|
||||
|
|
|
@ -11,16 +11,16 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
||||
|
||||
import pro.taskana.common.rest.RestEndpoints;
|
||||
import pro.taskana.common.test.BaseRestDocTest;
|
||||
import pro.taskana.common.test.rest.RestHelper;
|
||||
import pro.taskana.common.test.security.JaasExtension;
|
||||
import pro.taskana.common.test.security.WithAccessId;
|
||||
import pro.taskana.rest.test.BaseRestDocTest;
|
||||
import pro.taskana.rest.test.RestHelper;
|
||||
import pro.taskana.task.api.TaskService;
|
||||
import pro.taskana.task.api.models.Task;
|
||||
import pro.taskana.task.internal.models.ObjectReferenceImpl;
|
||||
import pro.taskana.task.rest.assembler.TaskRepresentationModelAssembler;
|
||||
import pro.taskana.task.rest.models.IsReadRepresentationModel;
|
||||
import pro.taskana.task.rest.models.TaskRepresentationModel;
|
||||
import pro.taskana.testapi.security.JaasExtension;
|
||||
import pro.taskana.testapi.security.WithAccessId;
|
||||
|
||||
@ExtendWith(JaasExtension.class)
|
||||
class TaskControllerRestDocTest extends BaseRestDocTest {
|
||||
|
|
|
@ -10,7 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import pro.taskana.classification.api.ClassificationService;
|
||||
import pro.taskana.classification.api.models.ClassificationSummary;
|
||||
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
import pro.taskana.task.api.TaskService;
|
||||
import pro.taskana.task.api.models.Attachment;
|
||||
import pro.taskana.task.internal.models.AttachmentImpl;
|
||||
|
|
|
@ -9,7 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import pro.taskana.classification.api.ClassificationService;
|
||||
import pro.taskana.classification.api.models.ClassificationSummary;
|
||||
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
import pro.taskana.task.api.TaskService;
|
||||
import pro.taskana.task.api.models.AttachmentSummary;
|
||||
import pro.taskana.task.internal.models.AttachmentSummaryImpl;
|
||||
|
|
|
@ -5,7 +5,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
import pro.taskana.task.api.models.ObjectReference;
|
||||
import pro.taskana.task.internal.models.ObjectReferenceImpl;
|
||||
import pro.taskana.task.rest.models.ObjectReferenceRepresentationModel;
|
||||
|
|
|
@ -6,7 +6,7 @@ import java.time.Instant;
|
|||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
import pro.taskana.task.api.TaskService;
|
||||
import pro.taskana.task.api.models.TaskComment;
|
||||
import pro.taskana.task.internal.models.TaskCommentImpl;
|
||||
|
|
|
@ -13,7 +13,7 @@ import pro.taskana.classification.api.models.ClassificationSummary;
|
|||
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.rest.RestEndpoints;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
import pro.taskana.task.api.TaskCustomField;
|
||||
import pro.taskana.task.api.TaskCustomIntField;
|
||||
import pro.taskana.task.api.TaskService;
|
||||
|
|
|
@ -26,7 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import pro.taskana.classification.api.ClassificationService;
|
||||
import pro.taskana.classification.api.models.ClassificationSummary;
|
||||
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
import pro.taskana.task.api.TaskCustomIntField;
|
||||
import pro.taskana.task.api.TaskService;
|
||||
import pro.taskana.task.api.TaskState;
|
||||
|
|
|
@ -20,9 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
|
||||
import pro.taskana.common.api.TaskanaEngine;
|
||||
import pro.taskana.common.rest.ldap.LdapClient;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.common.test.security.JaasExtension;
|
||||
import pro.taskana.common.test.security.WithAccessId;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
import pro.taskana.testapi.security.JaasExtension;
|
||||
import pro.taskana.testapi.security.WithAccessId;
|
||||
import pro.taskana.user.api.UserService;
|
||||
import pro.taskana.user.api.models.User;
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ package pro.taskana.user.rest;
|
|||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
import static pro.taskana.common.test.rest.RestHelper.TEMPLATE;
|
||||
import static pro.taskana.rest.test.RestHelper.TEMPLATE;
|
||||
|
||||
import java.util.Set;
|
||||
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
||||
|
@ -16,8 +16,8 @@ import org.springframework.http.ResponseEntity;
|
|||
import org.springframework.web.client.HttpStatusCodeException;
|
||||
|
||||
import pro.taskana.common.rest.RestEndpoints;
|
||||
import pro.taskana.common.test.rest.RestHelper;
|
||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
||||
import pro.taskana.rest.test.RestHelper;
|
||||
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||
import pro.taskana.user.rest.models.UserCollectionRepresentationModel;
|
||||
import pro.taskana.user.rest.models.UserRepresentationModel;
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue