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-spi-routing-dmn-router
|
||||||
- taskana-routing-rest
|
- taskana-routing-rest
|
||||||
- taskana-rest-spring
|
- taskana-rest-spring
|
||||||
|
- taskana-rest-spring-test-lib
|
||||||
- taskana-rest-spring-example-common
|
- taskana-rest-spring-example-common
|
||||||
- taskana-loghistory-provider
|
- taskana-loghistory-provider
|
||||||
- taskana-simplehistory-provider
|
- taskana-simplehistory-provider
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<component name="ProjectRunConfigurationManager">
|
<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" />
|
<module name="taskana-core" />
|
||||||
<option name="PACKAGE_NAME" value="" />
|
<option name="PACKAGE_NAME" value="" />
|
||||||
<option name="MAIN_CLASS_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">
|
<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" />
|
<module name="taskana-simplehistory-provider" />
|
||||||
<option name="PACKAGE_NAME" value="" />
|
<option name="PACKAGE_NAME" value="" />
|
||||||
<option name="MAIN_CLASS_NAME" value="" />
|
<option name="MAIN_CLASS_NAME" value="" />
|
|
@ -76,6 +76,11 @@
|
||||||
<artifactId>taskana-rest-spring</artifactId>
|
<artifactId>taskana-rest-spring</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>pro.taskana</groupId>
|
||||||
|
<artifactId>taskana-rest-spring-test-lib</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>pro.taskana</groupId>
|
<groupId>pro.taskana</groupId>
|
||||||
<artifactId>taskana-routing-rest</artifactId>
|
<artifactId>taskana-routing-rest</artifactId>
|
||||||
|
|
|
@ -11,7 +11,8 @@ import pro.taskana.common.internal.configuration.DbSchemaCreator;
|
||||||
class SampleDataGeneratorTest {
|
class SampleDataGeneratorTest {
|
||||||
|
|
||||||
private static final String JDBC_URL =
|
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
|
@Test
|
||||||
void getScriptsValidSql() {
|
void getScriptsValidSql() {
|
||||||
|
|
|
@ -63,7 +63,7 @@ public final class DataSourceGenerator {
|
||||||
private static DataSource createDataSourceForH2() {
|
private static DataSource createDataSourceForH2() {
|
||||||
String jdbcDriver = "org.h2.Driver";
|
String jdbcDriver = "org.h2.Driver";
|
||||||
String jdbcUrl =
|
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\\;"
|
+ "INIT=CREATE SCHEMA IF NOT EXISTS TASKANA\\;"
|
||||||
+ "SET COLLATION DEFAULT_de_DE ";
|
+ "SET COLLATION DEFAULT_de_DE ";
|
||||||
String dbUserName = "sa";
|
String dbUserName = "sa";
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
<!-- test dependencies -->
|
<!-- test dependencies -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>pro.taskana</groupId>
|
<groupId>pro.taskana</groupId>
|
||||||
<artifactId>taskana-common-test</artifactId>
|
<artifactId>taskana-rest-spring-test-lib</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</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 java.lang.String.CASE_INSENSITIVE_ORDER;
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
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.io.UnsupportedEncodingException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
|
@ -25,8 +25,8 @@ import org.springframework.web.client.HttpStatusCodeException;
|
||||||
import org.springframework.web.util.UriComponentsBuilder;
|
import org.springframework.web.util.UriComponentsBuilder;
|
||||||
|
|
||||||
import pro.taskana.common.rest.models.PageMetadata;
|
import pro.taskana.common.rest.models.PageMetadata;
|
||||||
import pro.taskana.common.test.rest.RestHelper;
|
import pro.taskana.rest.test.RestHelper;
|
||||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||||
import pro.taskana.simplehistory.rest.models.TaskHistoryEventPagedRepresentationModel;
|
import pro.taskana.simplehistory.rest.models.TaskHistoryEventPagedRepresentationModel;
|
||||||
import pro.taskana.simplehistory.rest.models.TaskHistoryEventRepresentationModel;
|
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.junit.jupiter.api.Test;
|
||||||
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
||||||
|
|
||||||
import pro.taskana.common.test.BaseRestDocTest;
|
import pro.taskana.rest.test.BaseRestDocTest;
|
||||||
|
|
||||||
class TaskHistoryEventControllerRestDocTest extends BaseRestDocTest {
|
class TaskHistoryEventControllerRestDocTest extends BaseRestDocTest {
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import java.time.Instant;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
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.simplehistory.rest.models.TaskHistoryEventRepresentationModel;
|
||||||
import pro.taskana.spi.history.api.events.task.TaskHistoryCustomField;
|
import pro.taskana.spi.history.api.events.task.TaskHistoryCustomField;
|
||||||
import pro.taskana.spi.history.api.events.task.TaskHistoryEvent;
|
import pro.taskana.spi.history.api.events.task.TaskHistoryEvent;
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
logging.level.pro.taskana=INFO
|
logging.level.pro.taskana=INFO
|
||||||
taskana.schemaName=TASKANA
|
|
||||||
spring.main.allow-bean-definition-overriding=true
|
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
|
####### Properties for AccessIdController to connect to LDAP
|
||||||
taskana.ldap.serverUrl=ldap://localhost:10389
|
taskana.ldap.serverUrl=ldap://localhost:10389
|
||||||
taskana.ldap.bindDn=uid=admin
|
taskana.ldap.bindDn=uid=admin
|
||||||
|
@ -29,7 +33,6 @@ taskana.ldap.groupNameAttribute=cn
|
||||||
taskana.ldap.minSearchForLength=3
|
taskana.ldap.minSearchForLength=3
|
||||||
taskana.ldap.maxNumberOfReturnedAccessIds=50
|
taskana.ldap.maxNumberOfReturnedAccessIds=50
|
||||||
taskana.ldap.groupsOfUser=memberUid
|
taskana.ldap.groupsOfUser=memberUid
|
||||||
|
|
||||||
# Embedded Spring LDAP server
|
# Embedded Spring LDAP server
|
||||||
spring.ldap.embedded.base-dn=OU=Test,O=TASKANA
|
spring.ldap.embedded.base-dn=OU=Test,O=TASKANA
|
||||||
spring.ldap.embedded.credential.username=uid=admin
|
spring.ldap.embedded.credential.username=uid=admin
|
||||||
|
|
|
@ -75,7 +75,8 @@ public class TaskanaProducersTest {
|
||||||
|
|
||||||
private Connection getConnection() throws Exception {
|
private Connection getConnection() throws Exception {
|
||||||
return DriverManager.getConnection(
|
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",
|
||||||
"SA");
|
"SA");
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ swarm:
|
||||||
data-sources:
|
data-sources:
|
||||||
TestDS:
|
TestDS:
|
||||||
driver-name: myh2
|
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
|
user-name: SA
|
||||||
password: SA
|
password: SA
|
||||||
jdbc-drivers:
|
jdbc-drivers:
|
||||||
|
@ -13,3 +13,4 @@ swarm:
|
||||||
driver-class-name: org.h2.Driver
|
driver-class-name: org.h2.Driver
|
||||||
xa-datasource-name: org.h2.jdbcx.JdbcDataSource
|
xa-datasource-name: org.h2.jdbcx.JdbcDataSource
|
||||||
driver-module-name: com.h2database.h2
|
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.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.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.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.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:116)\
|
|
||||||
- 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: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.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.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:134)\
|
- 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.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:138)\
|
- 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.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.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.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.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.returnConnection()> in (UserServiceImpl.java:181)\
|
- 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\
|
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()> 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)\
|
- 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.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.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.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.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.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)\
|
- 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.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.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.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.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: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.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.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.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.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:370)\
|
||||||
- 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.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.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.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.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.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.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.openConnection()> in (WorkbasketQueryImpl.java:405)\
|
||||||
- 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.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.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.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:417)\
|
- 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:419)\
|
- 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.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.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, [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)\
|
- 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.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.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.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:621)\
|
||||||
- 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:625)\
|
||||||
- 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: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.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.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)\
|
- 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.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.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.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.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:116)\
|
|
||||||
- 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: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.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.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:134)\
|
- 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.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:138)\
|
- 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.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.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.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.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.returnConnection()> in (UserServiceImpl.java:181)\
|
- 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\
|
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()> 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)\
|
- 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.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.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.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.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.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)\
|
- 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.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.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.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.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: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.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.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.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.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:370)\
|
||||||
- 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.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.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.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.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.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.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.openConnection()> in (WorkbasketQueryImpl.java:405)\
|
||||||
- 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.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.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.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:417)\
|
- 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:419)\
|
- 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.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.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, [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)\
|
- 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.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.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.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:621)\
|
||||||
- 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:625)\
|
||||||
- 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: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.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.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)\
|
- 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.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.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.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.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:116)\
|
|
||||||
- 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: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.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.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:134)\
|
- 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.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:138)\
|
- 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.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.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.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.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.returnConnection()> in (UserServiceImpl.java:181)\
|
- 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\
|
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()> 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)\
|
- 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.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.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.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.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.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)\
|
- 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.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.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.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.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: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.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.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.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.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:370)\
|
||||||
- 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.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.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.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.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.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.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.openConnection()> in (WorkbasketQueryImpl.java:405)\
|
||||||
- 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.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.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.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:417)\
|
- 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:419)\
|
- 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.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.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, [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)\
|
- 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.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.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.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:621)\
|
||||||
- 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:625)\
|
||||||
- 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: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.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.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)\
|
- 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.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.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.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.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:116)\
|
|
||||||
- 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: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.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.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:134)\
|
- 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.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:138)\
|
- 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.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.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.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.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.returnConnection()> in (UserServiceImpl.java:181)
|
- 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 -> \
|
Cycle detected: Slice common.internal -> \
|
||||||
Slice task.internal -> \
|
Slice task.internal -> \
|
||||||
Slice workbasket.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.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.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.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.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.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)\
|
- 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.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.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.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.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: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.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.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.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.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:370)\
|
||||||
- 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.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.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.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.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.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.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.openConnection()> in (WorkbasketQueryImpl.java:405)\
|
||||||
- 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.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.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.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:417)\
|
- 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:419)\
|
- 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.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.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, [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)\
|
- 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.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.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.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:621)\
|
||||||
- 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:625)\
|
||||||
- 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: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.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.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)\
|
- 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.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.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.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.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:116)\
|
|
||||||
- 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: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.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.deleteUser(java.lang.String)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getEngine()> in (UserServiceImpl.java:134)\
|
- 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.executeInDatabaseConnection(java.lang.Runnable)> in (UserServiceImpl.java:138)\
|
- 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.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.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.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.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.returnConnection()> in (UserServiceImpl.java:181)
|
- 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 -> \
|
Cycle detected: Slice common.internal -> \
|
||||||
Slice workbasket.internal -> \
|
Slice workbasket.internal -> \
|
||||||
Slice common.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.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.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.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.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.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)\
|
- 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.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.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.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.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: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.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.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.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.list(int, int)> calls method <pro.taskana.common.internal.InternalTaskanaEngine.getSqlSession()> in (WorkbasketQueryImpl.java:370)\
|
||||||
- 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.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.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.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.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.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.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.openConnection()> in (WorkbasketQueryImpl.java:405)\
|
||||||
- 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.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.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.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:417)\
|
- 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:419)\
|
- 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.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.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, [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)\
|
- 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.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.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.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:621)\
|
||||||
- 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:625)\
|
||||||
- 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: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.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.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)\
|
- 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
|
#Sat Jan 28 10:53:15 CET 2023
|
||||||
slices\ matching\ 'pro.taskana.(**)'\ should\ be\ free\ of\ cycles=9652a208-0dfc-428f-9436-b7d5b718e2c1
|
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][^_]+)?$'=974cd44c-bceb-4997-a1c3-18cb011ca438
|
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=a54262d1-6fd5-453c-bef4-7481fef02511
|
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=e480c7e3-4001-4306-9859-39636786785d
|
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() {
|
public static DataSource createDefaultDataSource() {
|
||||||
String driverClass = "org.h2.Driver";
|
String driverClass = "org.h2.Driver";
|
||||||
String jdbcUrl =
|
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\\;"
|
+ "INIT=CREATE SCHEMA IF NOT EXISTS TASKANA\\;"
|
||||||
+ "SET COLLATION DEFAULT_de_DE";
|
+ "SET COLLATION DEFAULT_de_DE";
|
||||||
String username = "sa";
|
String username = "sa";
|
||||||
|
|
|
@ -30,9 +30,6 @@ public class WorkbasketQueryImpl implements WorkbasketQuery {
|
||||||
"pro.taskana.workbasket.internal.WorkbasketQueryMapper.countQueryWorkbaskets";
|
"pro.taskana.workbasket.internal.WorkbasketQueryMapper.countQueryWorkbaskets";
|
||||||
private static final String LINK_TO_VALUEMAPPER =
|
private static final String LINK_TO_VALUEMAPPER =
|
||||||
"pro.taskana.workbasket.internal.WorkbasketQueryMapper.queryWorkbasketColumnValues";
|
"pro.taskana.workbasket.internal.WorkbasketQueryMapper.queryWorkbasketColumnValues";
|
||||||
private final InternalTaskanaEngine taskanaEngine;
|
|
||||||
private final List<String> orderBy;
|
|
||||||
private final List<String> orderColumns;
|
|
||||||
private WorkbasketQueryColumnName columnName;
|
private WorkbasketQueryColumnName columnName;
|
||||||
private String[] accessIds;
|
private String[] accessIds;
|
||||||
private String[] idIn;
|
private String[] idIn;
|
||||||
|
@ -66,7 +63,11 @@ public class WorkbasketQueryImpl implements WorkbasketQuery {
|
||||||
private String[] orgLevel3Like;
|
private String[] orgLevel3Like;
|
||||||
private String[] orgLevel4In;
|
private String[] orgLevel4In;
|
||||||
private String[] orgLevel4Like;
|
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 joinWithAccessList;
|
||||||
private boolean checkReadPermission;
|
private boolean checkReadPermission;
|
||||||
private boolean usedToAugmentTasks;
|
private boolean usedToAugmentTasks;
|
||||||
|
@ -543,7 +544,7 @@ public class WorkbasketQueryImpl implements WorkbasketQuery {
|
||||||
return orgLevel4Like;
|
return orgLevel4Like;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isMarkedForDeletion() {
|
public Boolean isMarkedForDeletion() {
|
||||||
return markedForDeletion;
|
return markedForDeletion;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,8 @@ spring.h2.console.enabled=true
|
||||||
security.basic.enabled=false
|
security.basic.enabled=false
|
||||||
|
|
||||||
######## customdb / Taskana DB #######
|
######## customdb / Taskana DB #######
|
||||||
customdb.datasource.url=jdbc:h2:mem:testdb;IGNORECASE=TRUE;LOCK_MODE=0
|
customdb.datasource.url=jdbc:h2:mem:testdb;NON_KEYWORDS=KEY,VALUE;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;TRACE_LEVEL_FIle=4
|
||||||
customdb.datasource.schema=classpath:schema.sql
|
customdb.datasource.schema=classpath:schema.sql
|
||||||
customdb.datasource.driverClassName=org.h2.Driver
|
customdb.datasource.driverClassName=org.h2.Driver
|
||||||
customdb.datasource.hibernate.dialect=org.hibernate.dialect.H2
|
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;
|
||||||
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
|
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
|
||||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
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;
|
||||||
import org.springframework.test.annotation.DirtiesContext.ClassMode;
|
import org.springframework.test.annotation.DirtiesContext.ClassMode;
|
||||||
import org.springframework.test.context.ContextConfiguration;
|
import org.springframework.test.context.ContextConfiguration;
|
||||||
|
@ -86,6 +86,8 @@ class TransactionTest {
|
||||||
|
|
||||||
private Connection getConnection() throws Exception {
|
private Connection getConnection() throws Exception {
|
||||||
return DriverManager.getConnection(
|
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">
|
<bean class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
|
||||||
<property name="driverClass" value="org.h2.Driver" />
|
<property name="driverClass" value="org.h2.Driver" />
|
||||||
<property name="url"
|
<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="username" value="SA" />
|
||||||
<property name="password" value="SA" />
|
<property name="password" value="SA" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
|
@ -92,7 +92,11 @@ public class TestContainerExtension implements InvocationInterceptor {
|
||||||
new PooledDataSource(
|
new PooledDataSource(
|
||||||
Thread.currentThread().getContextClassLoader(),
|
Thread.currentThread().getContextClassLoader(),
|
||||||
"org.h2.Driver",
|
"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",
|
||||||
"sa");
|
"sa");
|
||||||
ds.setPoolTimeToWait(50);
|
ds.setPoolTimeToWait(50);
|
||||||
|
|
4
pom.xml
4
pom.xml
|
@ -65,8 +65,8 @@
|
||||||
<!-- spring dependencies -->
|
<!-- spring dependencies -->
|
||||||
<version.javax.annotation-api>1.3.2</version.javax.annotation-api>
|
<version.javax.annotation-api>1.3.2</version.javax.annotation-api>
|
||||||
<version.spring.core>2.0.0.RELEASE</version.spring.core>
|
<version.spring.core>2.0.0.RELEASE</version.spring.core>
|
||||||
<version.spring.boot>2.6.6</version.spring.boot>
|
<version.spring.boot>2.7.8</version.spring.boot>
|
||||||
<version.spring.mybatis>2.0.7</version.spring.mybatis>
|
<version.spring.mybatis>2.1.0</version.spring.mybatis>
|
||||||
|
|
||||||
<!-- wildfly dependencies -->
|
<!-- wildfly dependencies -->
|
||||||
<version.wildfly>15.0.1.Final</version.wildfly>
|
<version.wildfly>15.0.1.Final</version.wildfly>
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
<module>taskana-rest-spring-example-common</module>
|
<module>taskana-rest-spring-example-common</module>
|
||||||
<module>taskana-rest-spring-example-boot</module>
|
<module>taskana-rest-spring-example-boot</module>
|
||||||
<module>taskana-rest-spring-example-wildfly</module>
|
<module>taskana-rest-spring-example-wildfly</module>
|
||||||
|
<module>taskana-rest-spring-test-lib</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -1,13 +1,25 @@
|
||||||
package pro.taskana.example.boot.security;
|
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.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.http.HttpMethod;
|
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.builders.HttpSecurity;
|
||||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
import org.springframework.security.config.ldap.LdapPasswordComparisonAuthenticationManagerFactory;
|
||||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
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.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.ldap.userdetails.LdapAuthoritiesPopulator;
|
||||||
|
import org.springframework.security.web.SecurityFilterChain;
|
||||||
import org.springframework.security.web.csrf.CookieCsrfTokenRepository;
|
import org.springframework.security.web.csrf.CookieCsrfTokenRepository;
|
||||||
import org.springframework.security.web.jaasapi.JaasApiIntegrationFilter;
|
import org.springframework.security.web.jaasapi.JaasApiIntegrationFilter;
|
||||||
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
|
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;
|
import pro.taskana.common.rest.SpringSecurityToJaasFilter;
|
||||||
|
|
||||||
/** Default basic configuration for taskana web example. */
|
/** Default basic configuration for taskana web example. */
|
||||||
@EnableWebSecurity
|
@Configuration
|
||||||
public class BootWebSecurityConfigurer extends WebSecurityConfigurerAdapter {
|
public class BootWebSecurityConfigurer {
|
||||||
|
|
||||||
private final LdapAuthoritiesPopulator ldapAuthoritiesPopulator;
|
|
||||||
private final GrantedAuthoritiesMapper grantedAuthoritiesMapper;
|
|
||||||
|
|
||||||
private final String ldapServerUrl;
|
private final String ldapServerUrl;
|
||||||
private final String ldapBaseDn;
|
private final String ldapBaseDn;
|
||||||
private final String ldapGroupSearchBase;
|
|
||||||
private final String ldapUserDnPatterns;
|
private final String ldapUserDnPatterns;
|
||||||
|
private final String ldapGroupSearchBase;
|
||||||
|
private final String ldapGroupSearchFilter;
|
||||||
|
|
||||||
private final boolean devMode;
|
private final boolean devMode;
|
||||||
private final boolean enableCsrf;
|
private final boolean enableCsrf;
|
||||||
|
@ -32,38 +42,22 @@ public class BootWebSecurityConfigurer extends WebSecurityConfigurerAdapter {
|
||||||
public BootWebSecurityConfigurer(
|
public BootWebSecurityConfigurer(
|
||||||
@Value("${taskana.ldap.serverUrl:ldap://localhost:10389}") String ldapServerUrl,
|
@Value("${taskana.ldap.serverUrl:ldap://localhost:10389}") String ldapServerUrl,
|
||||||
@Value("${taskana.ldap.baseDn:OU=Test,O=TASKANA}") String ldapBaseDn,
|
@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.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,
|
@Value("${enableCsrf:false}") boolean enableCsrf,
|
||||||
LdapAuthoritiesPopulator ldapAuthoritiesPopulator,
|
|
||||||
GrantedAuthoritiesMapper grantedAuthoritiesMapper,
|
|
||||||
@Value("${devMode:false}") boolean devMode) {
|
@Value("${devMode:false}") boolean devMode) {
|
||||||
this.enableCsrf = enableCsrf;
|
this.enableCsrf = enableCsrf;
|
||||||
this.ldapAuthoritiesPopulator = ldapAuthoritiesPopulator;
|
|
||||||
this.grantedAuthoritiesMapper = grantedAuthoritiesMapper;
|
|
||||||
this.ldapServerUrl = ldapServerUrl;
|
this.ldapServerUrl = ldapServerUrl;
|
||||||
this.ldapBaseDn = ldapBaseDn;
|
this.ldapBaseDn = ldapBaseDn;
|
||||||
this.ldapGroupSearchBase = ldapGroupSearchBase;
|
this.ldapGroupSearchBase = ldapGroupSearchBase;
|
||||||
|
this.ldapGroupSearchFilter = ldapGroupSearchFilter;
|
||||||
this.ldapUserDnPatterns = ldapUserDnPatterns;
|
this.ldapUserDnPatterns = ldapUserDnPatterns;
|
||||||
this.devMode = devMode;
|
this.devMode = devMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Bean
|
||||||
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
|
public SecurityFilterChain filterChain(HttpSecurity http) 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 {
|
|
||||||
HttpSecurity httpSecurity =
|
HttpSecurity httpSecurity =
|
||||||
http.authorizeRequests()
|
http.authorizeRequests()
|
||||||
.antMatchers("/css/**", "/img/**")
|
.antMatchers("/css/**", "/img/**")
|
||||||
|
@ -95,6 +89,7 @@ public class BootWebSecurityConfigurer extends WebSecurityConfigurerAdapter {
|
||||||
} else {
|
} else {
|
||||||
addLoginPageConfiguration(http);
|
addLoginPageConfiguration(http);
|
||||||
}
|
}
|
||||||
|
return http.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void addLoginPageConfiguration(HttpSecurity http) throws Exception {
|
protected void addLoginPageConfiguration(HttpSecurity http) throws Exception {
|
||||||
|
@ -117,9 +112,50 @@ public class BootWebSecurityConfigurer extends WebSecurityConfigurerAdapter {
|
||||||
.permitAll();
|
.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() {
|
protected JaasApiIntegrationFilter jaasApiIntegrationFilter() {
|
||||||
JaasApiIntegrationFilter filter = new JaasApiIntegrationFilter();
|
JaasApiIntegrationFilter filter = new JaasApiIntegrationFilter();
|
||||||
filter.setCreateEmptySubject(true);
|
filter.setCreateEmptySubject(true);
|
||||||
return filter;
|
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 #######
|
######## Taskana DB #######
|
||||||
######## h2 configuration ########
|
######## 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.driverClassName=org.h2.Driver
|
||||||
########spring.datasource.username=sa
|
########spring.datasource.username=sa
|
||||||
########spring.datasource.password=sa
|
########spring.datasource.password=sa
|
||||||
|
|
|
@ -3,7 +3,7 @@ server.servlet.context-path=/taskana
|
||||||
### logging.level.org.springframework=DEBUG
|
### logging.level.org.springframework=DEBUG
|
||||||
######## Taskana DB #######
|
######## Taskana DB #######
|
||||||
######## h2 configuration ########
|
######## 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.driverClassName=org.h2.Driver
|
||||||
########spring.datasource.username=sa
|
########spring.datasource.username=sa
|
||||||
########spring.datasource.password=sa
|
########spring.datasource.password=sa
|
||||||
|
|
|
@ -1,28 +1,22 @@
|
||||||
logging.level.pro.taskana=INFO
|
logging.level.pro.taskana=INFO
|
||||||
logging.level.org.springframework.security=INFO
|
logging.level.org.springframework.security=INFO
|
||||||
|
|
||||||
server.servlet.context-path=/taskana
|
server.servlet.context-path=/taskana
|
||||||
|
|
||||||
taskana.routing.dmn.upload.path=/tmp/routing.dmn
|
taskana.routing.dmn.upload.path=/tmp/routing.dmn
|
||||||
|
|
||||||
######## Taskana DB #######
|
######## Taskana DB #######
|
||||||
######## h2 configuration ########
|
######## 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.driverClassName=org.h2.Driver
|
||||||
spring.datasource.username=sa
|
spring.datasource.username=sa
|
||||||
spring.datasource.password=sa
|
spring.datasource.password=sa
|
||||||
taskana.schemaName=TASKANA
|
taskana.schemaName=TASKANA
|
||||||
|
|
||||||
######## h2 console configuration ########
|
######## h2 console configuration ########
|
||||||
########spring.h2.console.enabled=true
|
########spring.h2.console.enabled=true
|
||||||
########spring.h2.console.path=/h2-console
|
########spring.h2.console.path=/h2-console
|
||||||
|
|
||||||
######## db2 configuration ########
|
######## db2 configuration ########
|
||||||
########spring.datasource.driverClassName=com.ibm.db2.jcc.DB2Driver
|
########spring.datasource.driverClassName=com.ibm.db2.jcc.DB2Driver
|
||||||
########spring.datasource.url=jdbc:db2://localhost:5101/tskdb
|
########spring.datasource.url=jdbc:db2://localhost:5101/tskdb
|
||||||
########spring.datasource.username=db2inst1
|
########spring.datasource.username=db2inst1
|
||||||
########spring.datasource.password=db2inst1-pwd
|
########spring.datasource.password=db2inst1-pwd
|
||||||
|
|
||||||
######## Postgres configuration ########
|
######## Postgres configuration ########
|
||||||
########spring.datasource.url=jdbc:postgresql://localhost:5102/taskana
|
########spring.datasource.url=jdbc:postgresql://localhost:5102/taskana
|
||||||
########spring.datasource.driverClassName=org.postgresql.Driver
|
########spring.datasource.driverClassName=org.postgresql.Driver
|
||||||
|
@ -32,13 +26,10 @@ taskana.schemaName=TASKANA
|
||||||
########spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
|
########spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
|
||||||
####### property that control rest api security deploy use true for no security.
|
####### property that control rest api security deploy use true for no security.
|
||||||
devMode=false
|
devMode=false
|
||||||
|
|
||||||
# This property enables the support of XSRF tokens. This will not work together with devMode.
|
# This property enables the support of XSRF tokens. This will not work together with devMode.
|
||||||
enableCsrf=true
|
enableCsrf=true
|
||||||
|
|
||||||
####### property that control if the database is cleaned and sample data is generated
|
####### property that control if the database is cleaned and sample data is generated
|
||||||
generateSampleData=true
|
generateSampleData=true
|
||||||
|
|
||||||
####### JobScheduler cron expression that specifies when the JobSchedler runs
|
####### JobScheduler cron expression that specifies when the JobSchedler runs
|
||||||
taskana.jobscheduler.async.cron=0 * * * * *
|
taskana.jobscheduler.async.cron=0 * * * * *
|
||||||
####### cache static resources properties
|
####### cache static resources properties
|
||||||
|
@ -46,21 +37,17 @@ spring.web.resources.cache.cachecontrol.cache-private=true
|
||||||
####### for upload of big workbasket- or classification-files
|
####### for upload of big workbasket- or classification-files
|
||||||
spring.servlet.multipart.max-file-size=10MB
|
spring.servlet.multipart.max-file-size=10MB
|
||||||
spring.servlet.multipart.max-request-size=10MB
|
spring.servlet.multipart.max-request-size=10MB
|
||||||
|
|
||||||
####### serve compressed files for faster UI loading times
|
####### serve compressed files for faster UI loading times
|
||||||
server.compression.enabled=true
|
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.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
|
server.compression.min-response-size=10240
|
||||||
|
|
||||||
spring.main.allow-bean-definition-overriding=true
|
spring.main.allow-bean-definition-overriding=true
|
||||||
|
|
||||||
server.tomcat.max-http-form-post-size=-1
|
server.tomcat.max-http-form-post-size=-1
|
||||||
server.tomcat.max-save-post-size=-1
|
server.tomcat.max-save-post-size=-1
|
||||||
server.tomcat.max-swallow-size=-1
|
server.tomcat.max-swallow-size=-1
|
||||||
####### tomcat is not detecting the x-forward headers from bluemix as a trustworthy proxy
|
####### tomcat is not detecting the x-forward headers from bluemix as a trustworthy proxy
|
||||||
server.tomcat.remoteip.internal-proxies=.*
|
server.tomcat.remoteip.internal-proxies=.*
|
||||||
server.forward-headers-strategy=native
|
server.forward-headers-strategy=native
|
||||||
|
|
||||||
####### Properties for AccessIdController to connect to LDAP
|
####### Properties for AccessIdController to connect to LDAP
|
||||||
taskana.ldap.serverUrl=ldap://localhost:10389
|
taskana.ldap.serverUrl=ldap://localhost:10389
|
||||||
taskana.ldap.bindDn=uid=admin
|
taskana.ldap.bindDn=uid=admin
|
||||||
|
@ -88,7 +75,6 @@ taskana.ldap.groupNameAttribute=cn
|
||||||
taskana.ldap.minSearchForLength=3
|
taskana.ldap.minSearchForLength=3
|
||||||
taskana.ldap.maxNumberOfReturnedAccessIds=50
|
taskana.ldap.maxNumberOfReturnedAccessIds=50
|
||||||
taskana.ldap.groupsOfUser=uniquemember
|
taskana.ldap.groupsOfUser=uniquemember
|
||||||
|
|
||||||
# Embedded Spring LDAP server
|
# Embedded Spring LDAP server
|
||||||
spring.ldap.embedded.base-dn=OU=Test,O=TASKANA
|
spring.ldap.embedded.base-dn=OU=Test,O=TASKANA
|
||||||
spring.ldap.embedded.credential.username=uid=admin
|
spring.ldap.embedded.credential.username=uid=admin
|
||||||
|
|
|
@ -80,7 +80,7 @@
|
||||||
<!-- test dependencies -->
|
<!-- test dependencies -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>pro.taskana</groupId>
|
<groupId>pro.taskana</groupId>
|
||||||
<artifactId>taskana-common-test</artifactId>
|
<artifactId>taskana-rest-spring-test-lib</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
|
@ -1,20 +1,8 @@
|
||||||
package pro.taskana.example.rest;
|
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.boot.web.servlet.FilterRegistrationBean;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.security.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.CorsConfiguration;
|
||||||
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
|
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
|
||||||
import org.springframework.web.filter.CorsFilter;
|
import org.springframework.web.filter.CorsFilter;
|
||||||
|
@ -24,23 +12,6 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
@Configuration
|
@Configuration
|
||||||
public class ExampleWebSecurityConfig {
|
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
|
@Bean
|
||||||
public WebMvcConfigurer corsConfigurer() {
|
public WebMvcConfigurer corsConfigurer() {
|
||||||
return new CorsWebMvcConfigurer();
|
return new CorsWebMvcConfigurer();
|
||||||
|
@ -51,7 +22,7 @@ public class ExampleWebSecurityConfig {
|
||||||
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
|
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
|
||||||
CorsConfiguration config = new CorsConfiguration();
|
CorsConfiguration config = new CorsConfiguration();
|
||||||
config.setAllowCredentials(true);
|
config.setAllowCredentials(true);
|
||||||
config.addAllowedOriginPattern("*");
|
config.addAllowedOrigin("*");
|
||||||
config.addAllowedHeader("*");
|
config.addAllowedHeader("*");
|
||||||
config.addAllowedMethod("*");
|
config.addAllowedMethod("*");
|
||||||
source.registerCorsConfiguration("/**", config);
|
source.registerCorsConfiguration("/**", config);
|
||||||
|
@ -60,33 +31,6 @@ public class ExampleWebSecurityConfig {
|
||||||
return bean;
|
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 {
|
private static class CorsWebMvcConfigurer implements WebMvcConfigurer {
|
||||||
|
|
||||||
@Override
|
@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;
|
package pro.taskana.example.jobs;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
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.time.Instant;
|
||||||
import java.util.List;
|
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.classification.rest.models.ClassificationRepresentationModel;
|
||||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||||
import pro.taskana.common.rest.RestEndpoints;
|
import pro.taskana.common.rest.RestEndpoints;
|
||||||
import pro.taskana.common.test.rest.RestHelper;
|
import pro.taskana.rest.test.RestHelper;
|
||||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||||
import pro.taskana.task.api.models.Task;
|
import pro.taskana.task.api.models.Task;
|
||||||
import pro.taskana.task.rest.assembler.TaskRepresentationModelAssembler;
|
import pro.taskana.task.rest.assembler.TaskRepresentationModelAssembler;
|
||||||
import pro.taskana.task.rest.models.TaskRepresentationModel;
|
import pro.taskana.task.rest.models.TaskRepresentationModel;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.test.context.ActiveProfiles;
|
import org.springframework.test.context.ActiveProfiles;
|
||||||
|
|
||||||
import pro.taskana.common.rest.models.AccessIdRepresentationModel;
|
import pro.taskana.common.rest.models.AccessIdRepresentationModel;
|
||||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||||
|
|
||||||
/** Test Ldap attachment. */
|
/** Test Ldap attachment. */
|
||||||
@TaskanaSpringBootTest
|
@TaskanaSpringBootTest
|
||||||
|
|
|
@ -11,7 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
import pro.taskana.common.rest.ldap.LdapClient;
|
import pro.taskana.common.rest.ldap.LdapClient;
|
||||||
import pro.taskana.common.rest.models.AccessIdRepresentationModel;
|
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;
|
import pro.taskana.user.api.models.User;
|
||||||
|
|
||||||
/** Test Ldap attachment. */
|
/** 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.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.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.ldap=INFO
|
||||||
### logging.level.org.springframework=DEBUG
|
### logging.level.org.springframework=DEBUG
|
||||||
######## Taskana DB #######
|
######## Taskana DB #######
|
||||||
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
|
||||||
datasource.driverClassName=org.h2.Driver
|
spring.datasource.driverClassName=org.h2.Driver
|
||||||
datasource.username=sa
|
spring.datasource.username=sa
|
||||||
datasource.password=sa
|
spring.datasource.password=sa
|
||||||
taskana.schemaName=TASKANA
|
taskana.schemaName=TASKANA
|
||||||
####### property that control rest api security deploy use true for no security.
|
####### property that control rest api security deploy use true for no security.
|
||||||
devMode=false
|
devMode=false
|
||||||
|
|
|
@ -69,12 +69,6 @@
|
||||||
<artifactId>javax.servlet-api</artifactId>
|
<artifactId>javax.servlet-api</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</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>
|
<dependency>
|
||||||
<groupId>org.wildfly.security</groupId>
|
<groupId>org.wildfly.security</groupId>
|
||||||
|
@ -98,8 +92,8 @@
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.slf4j</groupId>
|
||||||
<artifactId>spring-boot-starter-log4j2</artifactId>
|
<artifactId>slf4j-simple</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -159,23 +153,6 @@
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<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>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-dependency-plugin</artifactId>
|
<artifactId>maven-dependency-plugin</artifactId>
|
||||||
|
@ -212,7 +189,7 @@
|
||||||
<groupId>org.postgresql</groupId>
|
<groupId>org.postgresql</groupId>
|
||||||
<artifactId>postgresql</artifactId>
|
<artifactId>postgresql</artifactId>
|
||||||
<outputDirectory>
|
<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>
|
</outputDirectory>
|
||||||
</artifactItem>
|
</artifactItem>
|
||||||
</artifactItems>
|
</artifactItems>
|
||||||
|
@ -220,45 +197,20 @@
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</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>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-resources-plugin</artifactId>
|
<artifactId>maven-resources-plugin</artifactId>
|
||||||
<version>${version.maven.resources}</version>
|
<version>${version.maven.resources}</version>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>copy-module-xml</id>
|
<id>copy-postgres-module-xml</id>
|
||||||
<phase>process-test-classes</phase>
|
<phase>process-test-classes</phase>
|
||||||
<goals>
|
<goals>
|
||||||
<goal>copy-resources</goal>
|
<goal>copy-resources</goal>
|
||||||
</goals>
|
</goals>
|
||||||
<configuration>
|
<configuration>
|
||||||
<outputDirectory>
|
<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>
|
</outputDirectory>
|
||||||
<resources>
|
<resources>
|
||||||
<resource>
|
<resource>
|
||||||
|
|
|
@ -8,12 +8,9 @@ import javax.sql.DataSource;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
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.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.DependsOn;
|
import org.springframework.context.annotation.DependsOn;
|
||||||
import org.springframework.context.annotation.Primary;
|
|
||||||
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||||
import org.springframework.transaction.PlatformTransactionManager;
|
import org.springframework.transaction.PlatformTransactionManager;
|
||||||
|
|
||||||
|
@ -29,18 +26,6 @@ public class TaskanaWildflyConfiguration {
|
||||||
return new DataSourceTransactionManager(dataSource);
|
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
|
@Bean
|
||||||
@DependsOn("getTaskanaEngine") // generate sample data after schema was inserted
|
@DependsOn("getTaskanaEngine") // generate sample data after schema was inserted
|
||||||
public SampleDataGenerator generateSampleData(
|
public SampleDataGenerator generateSampleData(
|
||||||
|
@ -55,7 +40,7 @@ public class TaskanaWildflyConfiguration {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public DataSource dataSource(DataSourceProperties dsProperties) {
|
public DataSource dataSource() throws Exception {
|
||||||
// First try to load Properties and get Datasource via jndi lookup
|
// First try to load Properties and get Datasource via jndi lookup
|
||||||
Context ctx;
|
Context ctx;
|
||||||
DataSource dataSource;
|
DataSource dataSource;
|
||||||
|
@ -74,7 +59,7 @@ public class TaskanaWildflyConfiguration {
|
||||||
"Caught exception when attempting to start Taskana with Datasource "
|
"Caught exception when attempting to start Taskana with Datasource "
|
||||||
+ "from Jndi. Using default H2 datasource. ",
|
+ "from Jndi. Using default H2 datasource. ",
|
||||||
e);
|
e);
|
||||||
return dsProperties.initializeDataSourceBuilder().build();
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,23 +1,25 @@
|
||||||
package pro.taskana.example.wildfly.security;
|
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.builders.HttpSecurity;
|
||||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
import org.springframework.security.web.SecurityFilterChain;
|
||||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
|
||||||
import org.springframework.security.web.jaasapi.JaasApiIntegrationFilter;
|
import org.springframework.security.web.jaasapi.JaasApiIntegrationFilter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default basic configuration for taskana web example running on Wildfly / JBoss with Elytron or
|
* Default basic configuration for taskana web example running on Wildfly / JBoss with Elytron or
|
||||||
* JAAS Security.
|
* JAAS Security.
|
||||||
*/
|
*/
|
||||||
@EnableWebSecurity
|
@Configuration
|
||||||
public class WildflyWebSecurityConfigurer extends WebSecurityConfigurerAdapter {
|
public class WildflyWebSecurityConfigurer {
|
||||||
|
|
||||||
@Override
|
@Bean
|
||||||
protected void configure(HttpSecurity http) throws Exception {
|
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
||||||
http.addFilter(jaasApiIntegrationFilter())
|
http.addFilter(jaasApiIntegrationFilter())
|
||||||
.addFilterAfter(new ElytronToJaasFilter(), JaasApiIntegrationFilter.class)
|
.addFilterAfter(new ElytronToJaasFilter(), JaasApiIntegrationFilter.class)
|
||||||
.csrf()
|
.csrf()
|
||||||
.disable();
|
.disable();
|
||||||
|
return http.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected JaasApiIntegrationFilter jaasApiIntegrationFilter() {
|
protected JaasApiIntegrationFilter jaasApiIntegrationFilter() {
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
package pro.taskana.common.test.rest;
|
package pro.taskana.common.test.rest;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DatabaseMetaData;
|
||||||
|
import java.sql.SQLException;
|
||||||
import javax.sql.DataSource;
|
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.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
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
|
@DependsOn("getTaskanaEngine") // wait for schema to be created BEFORE inserting test data
|
||||||
public class TestConfiguration {
|
public class TestConfiguration {
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(TestConfiguration.class);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public TestConfiguration(
|
public TestConfiguration(
|
||||||
@Value("${taskana.schemaName:TASKANA}") String schemaName, DataSource dataSource) {
|
@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();
|
new SampleDataGenerator(dataSource, schemaName).generateSampleData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,8 @@ package pro.taskana.example.wildfly;
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.core.ParameterizedTypeReference;
|
import org.springframework.core.ParameterizedTypeReference;
|
||||||
import org.springframework.http.HttpEntity;
|
import org.springframework.http.HttpEntity;
|
||||||
import org.springframework.http.HttpMethod;
|
import org.springframework.http.HttpMethod;
|
||||||
|
@ -23,6 +25,8 @@ public class AbstractAccTest {
|
||||||
|
|
||||||
protected static final String DEPENDENCY_VERSION = "5.9.1-SNAPSHOT";
|
protected static final String DEPENDENCY_VERSION = "5.9.1-SNAPSHOT";
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractAccTest.class);
|
||||||
|
|
||||||
static {
|
static {
|
||||||
Runtime.getRuntime().addShutdownHook(new Thread(AbstractAccTest::stopPostgresDb));
|
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");
|
"sh", "-c", "docker-compose -f ../../docker-databases/docker-compose.yml down -v");
|
||||||
}
|
}
|
||||||
Process process = builder.start();
|
Process process = builder.start();
|
||||||
|
LOGGER.info("Stopping POSTGRES...");
|
||||||
int exitCode = process.waitFor();
|
int exitCode = process.waitFor();
|
||||||
if (exitCode != 0) {
|
if (exitCode != 0) {
|
||||||
throw new RuntimeException("could not start postgres db!");
|
throw new RuntimeException("could not start postgres db!");
|
||||||
|
@ -115,16 +120,17 @@ public class AbstractAccTest {
|
||||||
builder.command(
|
builder.command(
|
||||||
"cmd.exe",
|
"cmd.exe",
|
||||||
"/c",
|
"/c",
|
||||||
"docker-compose -f ../../docker-databases/docker-compose.yml up -d",
|
"docker-compose -f ../../docker-databases/docker-compose.yml up -d "
|
||||||
"taskana-postgres_10");
|
+ "taskana-postgres_10");
|
||||||
} else {
|
} else {
|
||||||
builder.command(
|
builder.command(
|
||||||
"sh",
|
"sh",
|
||||||
"-c",
|
"-c",
|
||||||
"docker-compose -f ../../docker-databases/docker-compose.yml up -d",
|
"docker-compose -f ../../docker-databases/docker-compose.yml up -d "
|
||||||
"taskana-postgres_10");
|
+ "taskana-postgres_10");
|
||||||
}
|
}
|
||||||
Process process = builder.start();
|
Process process = builder.start();
|
||||||
|
LOGGER.info("Starting POSTGRES...");
|
||||||
int exitCode = process.waitFor();
|
int exitCode = process.waitFor();
|
||||||
if (exitCode != 0) {
|
if (exitCode != 0) {
|
||||||
throw new RuntimeException("could not start postgres db!");
|
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 #######
|
######## Taskana DB #######
|
||||||
datasource.jndi=java:/TaskanaDS/PostgreSQL
|
datasource.jndi=java:jboss/datasources/TaskanaDS
|
||||||
taskana.schemaName=taskana
|
taskana.schemaName=taskana
|
||||||
|
|
||||||
devMode=true
|
|
||||||
|
|
||||||
####### properties to connect to LDAP
|
####### properties to connect to LDAP
|
||||||
taskana.ldap.serverUrl=ldap://localhost:10389
|
taskana.ldap.serverUrl=ldap://localhost:10389
|
||||||
taskana.ldap.bindDn=uid=admin
|
taskana.ldap.bindDn=uid=admin
|
||||||
|
@ -31,18 +28,14 @@ taskana.ldap.groupNameAttribute=cn
|
||||||
taskana.ldap.minSearchForLength=3
|
taskana.ldap.minSearchForLength=3
|
||||||
taskana.ldap.maxNumberOfReturnedAccessIds=50
|
taskana.ldap.maxNumberOfReturnedAccessIds=50
|
||||||
taskana.ldap.groupsOfUser=uniquemember
|
taskana.ldap.groupsOfUser=uniquemember
|
||||||
|
|
||||||
####### JobScheduler cron expression that specifies when the JobSchedler runs
|
####### JobScheduler cron expression that specifies when the JobSchedler runs
|
||||||
taskana.jobscheduler.async.cron=0 * * * * *
|
taskana.jobscheduler.async.cron=0 * * * * *
|
||||||
|
|
||||||
####### cache static resources propertiesgit add --
|
####### cache static resources propertiesgit add --
|
||||||
spring.resources.cache.cachecontrol.cache-private=true
|
spring.resources.cache.cachecontrol.cache-private=true
|
||||||
spring.main.allow-bean-definition-overriding=true
|
spring.main.allow-bean-definition-overriding=true
|
||||||
|
|
||||||
####### tomcat is not detecting the x-forward headers from bluemix as a trustworthy proxy
|
####### tomcat is not detecting the x-forward headers from bluemix as a trustworthy proxy
|
||||||
server.tomcat.remoteip.internal-proxies=.*
|
server.tomcat.remoteip.internal-proxies=.*
|
||||||
server.forward-headers-strategy=native
|
server.forward-headers-strategy=native
|
||||||
|
|
||||||
# Embedded Spring LDAP server
|
# Embedded Spring LDAP server
|
||||||
spring.ldap.embedded.base-dn=OU=Test,O=TASKANA
|
spring.ldap.embedded.base-dn=OU=Test,O=TASKANA
|
||||||
spring.ldap.embedded.credential.username=uid=admin
|
spring.ldap.embedded.credential.username=uid=admin
|
||||||
|
|
|
@ -7,11 +7,14 @@
|
||||||
<configuration>
|
<configuration>
|
||||||
<property name="jbossHome">target/wildfly-15.0.1.Final</property>
|
<property name="jbossHome">target/wildfly-15.0.1.Final</property>
|
||||||
<property
|
<property
|
||||||
name="serverConfig">../../../../src/test/resources/int-test-standalone.xml</property>
|
name="serverConfig">../../../../src/test/resources/int-test-standalone.xml
|
||||||
<!-- <property name="javaVmArguments">-Xmx512m -XX:MaxPermSize=128m
|
</property>
|
||||||
-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y
|
<!-- <property name="javaVmArguments">-->
|
||||||
</property> -->
|
<!-- -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y-->
|
||||||
<property name="javaVmArguments">-Djava.util.logging.manager=org.jboss.logmanager.LogManager</property>
|
<!-- -Djava.util.logging.manager=org.jboss.logmanager.LogManager-->
|
||||||
|
<!-- </property>-->
|
||||||
|
<property name="javaVmArguments">-Djava.util.logging.manager=org.jboss.logmanager.LogManager
|
||||||
|
</property>
|
||||||
</configuration>
|
</configuration>
|
||||||
</container>
|
</container>
|
||||||
</arquillian>
|
</arquillian>
|
|
@ -226,7 +226,8 @@
|
||||||
jndi-name="java:jboss/datasources/ExampleDS"
|
jndi-name="java:jboss/datasources/ExampleDS"
|
||||||
pool-name="ExampleDS" enabled="true"
|
pool-name="ExampleDS" enabled="true"
|
||||||
use-java-context="true">
|
use-java-context="true">
|
||||||
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
|
<connection-url>
|
||||||
|
jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;
|
||||||
</connection-url>
|
</connection-url>
|
||||||
<driver>h2</driver>
|
<driver>h2</driver>
|
||||||
<security>
|
<security>
|
||||||
|
@ -235,26 +236,11 @@
|
||||||
</security>
|
</security>
|
||||||
</datasource>
|
</datasource>
|
||||||
<datasource jta="true"
|
<datasource jta="true"
|
||||||
jndi-name="java:/TaskanaDS/H2"
|
jndi-name="java:jboss/datasources/TaskanaDS"
|
||||||
pool-name="TASKANA Datasource" enabled="true"
|
|
||||||
use-ccm="false">
|
|
||||||
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
|
|
||||||
</connection-url>
|
|
||||||
<driver-class>org.h2.Driver</driver-class>
|
|
||||||
<driver>h2</driver>
|
|
||||||
<security>
|
|
||||||
<user-name>sa</user-name>
|
|
||||||
<password>sa</password>
|
|
||||||
</security>
|
|
||||||
<validation>
|
|
||||||
<background-validation>false
|
|
||||||
</background-validation>
|
|
||||||
</validation>
|
|
||||||
</datasource>
|
|
||||||
<datasource jta="true"
|
|
||||||
jndi-name="java:/TaskanaDS/PostgreSQL"
|
|
||||||
pool-name="TASKANA PostgreSQL Datasource"
|
pool-name="TASKANA PostgreSQL Datasource"
|
||||||
enabled="true" use-ccm="false">
|
enabled="true"
|
||||||
|
use-ccm="false"
|
||||||
|
use-java-context="true">
|
||||||
<connection-url>jdbc:postgresql://localhost:5102/postgres
|
<connection-url>jdbc:postgresql://localhost:5102/postgres
|
||||||
</connection-url>
|
</connection-url>
|
||||||
<driver-class>org.postgresql.Driver</driver-class>
|
<driver-class>org.postgresql.Driver</driver-class>
|
||||||
|
@ -273,8 +259,7 @@
|
||||||
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource
|
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource
|
||||||
</xa-datasource-class>
|
</xa-datasource-class>
|
||||||
</driver>
|
</driver>
|
||||||
<driver name="postgresql"
|
<driver name="postgresql" module="org.postgresql.postgresql">
|
||||||
module="org.postgresql">
|
|
||||||
<driver-class>org.postgresql.Driver
|
<driver-class>org.postgresql.Driver
|
||||||
</driver-class>
|
</driver-class>
|
||||||
</driver>
|
</driver>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version='1.0' encoding='UTF-8'?>
|
<?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>
|
<dependencies>
|
||||||
<module name="javax.api"/>
|
<module name="javax.api"/>
|
||||||
|
@ -8,7 +8,6 @@
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<resources>
|
<resources>
|
||||||
<!--the name of your driver -->
|
<resource-root path="postgresql-42.3.8.jar"/>
|
||||||
<resource-root path="postgresql-42.3.3.jar"/>
|
|
||||||
</resources>
|
</resources>
|
||||||
</module>
|
</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;
|
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.context.WebApplicationContext;
|
||||||
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
|
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
|
||||||
|
|
||||||
import pro.taskana.common.test.rest.RestHelper;
|
|
||||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
|
||||||
|
|
||||||
@TaskanaSpringBootTest
|
@TaskanaSpringBootTest
|
||||||
@ExtendWith(RestDocumentationExtension.class)
|
@ExtendWith(RestDocumentationExtension.class)
|
||||||
public class BaseRestDocTest {
|
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.DeserializationFeature;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
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.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
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 javax.sql.DataSource;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
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.List;
|
||||||
import java.util.Map;
|
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.boot.web.servlet.FilterRegistrationBean;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.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.GrantedAuthority;
|
||||||
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
||||||
import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper;
|
import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper;
|
||||||
import org.springframework.security.core.authority.mapping.SimpleAuthorityMapper;
|
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.DefaultSpringSecurityContextSource;
|
||||||
import org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator;
|
import org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator;
|
||||||
import org.springframework.security.ldap.userdetails.LdapAuthoritiesPopulator;
|
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.CorsConfiguration;
|
||||||
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
|
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
|
||||||
import org.springframework.web.filter.CorsFilter;
|
import org.springframework.web.filter.CorsFilter;
|
||||||
|
@ -27,6 +35,7 @@ public class TestWebSecurityConfig {
|
||||||
|
|
||||||
private final String ldapServerUrl;
|
private final String ldapServerUrl;
|
||||||
private final String ldapBaseDn;
|
private final String ldapBaseDn;
|
||||||
|
private final String ldapUserDnPatterns;
|
||||||
private final String ldapGroupSearchBase;
|
private final String ldapGroupSearchBase;
|
||||||
private final String ldapGroupSearchFilter;
|
private final String ldapGroupSearchFilter;
|
||||||
|
|
||||||
|
@ -34,10 +43,12 @@ public class TestWebSecurityConfig {
|
||||||
public TestWebSecurityConfig(
|
public TestWebSecurityConfig(
|
||||||
@Value("${taskana.ldap.serverUrl:ldap://localhost:10389}") String ldapServerUrl,
|
@Value("${taskana.ldap.serverUrl:ldap://localhost:10389}") String ldapServerUrl,
|
||||||
@Value("${taskana.ldap.baseDn:OU=Test,O=TASKANA}") String ldapBaseDn,
|
@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.groupSearchBase:cn=groups}") String ldapGroupSearchBase,
|
||||||
@Value("${taskana.ldap.groupSearchFilter:uniqueMember={0}}") String ldapGroupSearchFilter) {
|
@Value("${taskana.ldap.groupSearchFilter:uniqueMember={0}}") String ldapGroupSearchFilter) {
|
||||||
this.ldapServerUrl = ldapServerUrl;
|
this.ldapServerUrl = ldapServerUrl;
|
||||||
this.ldapBaseDn = ldapBaseDn;
|
this.ldapBaseDn = ldapBaseDn;
|
||||||
|
this.ldapUserDnPatterns = ldapUserDnPatterns;
|
||||||
this.ldapGroupSearchBase = ldapGroupSearchBase;
|
this.ldapGroupSearchBase = ldapGroupSearchBase;
|
||||||
this.ldapGroupSearchFilter = ldapGroupSearchFilter;
|
this.ldapGroupSearchFilter = ldapGroupSearchFilter;
|
||||||
}
|
}
|
||||||
|
@ -77,6 +88,7 @@ public class TestWebSecurityConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
@Primary
|
||||||
public DefaultSpringSecurityContextSource defaultSpringSecurityContextSource() {
|
public DefaultSpringSecurityContextSource defaultSpringSecurityContextSource() {
|
||||||
return new DefaultSpringSecurityContextSource(ldapServerUrl + "/" + ldapBaseDn);
|
return new DefaultSpringSecurityContextSource(ldapServerUrl + "/" + ldapBaseDn);
|
||||||
}
|
}
|
||||||
|
@ -88,6 +100,44 @@ public class TestWebSecurityConfig {
|
||||||
return grantedAuthoritiesMapper;
|
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 {
|
private static class CorsWebMvcConfigurer implements WebMvcConfigurer {
|
||||||
|
|
||||||
@Override
|
@Override
|
|
@ -82,7 +82,7 @@
|
||||||
<!-- test dependencies -->
|
<!-- test dependencies -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>pro.taskana</groupId>
|
<groupId>pro.taskana</groupId>
|
||||||
<artifactId>taskana-common-test</artifactId>
|
<artifactId>taskana-rest-spring-test-lib</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
@ -170,6 +170,12 @@
|
||||||
<version>${version.archunit}</version>
|
<version>${version.archunit}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>pro.taskana</groupId>
|
||||||
|
<artifactId>taskana-test-api</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<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.assertThat;
|
||||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||||
import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN;
|
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.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
||||||
import org.junit.jupiter.api.Test;
|
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.ClassificationSummaryPagedRepresentationModel;
|
||||||
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
||||||
import pro.taskana.common.rest.RestEndpoints;
|
import pro.taskana.common.rest.RestEndpoints;
|
||||||
import pro.taskana.common.test.rest.RestHelper;
|
import pro.taskana.rest.test.RestHelper;
|
||||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||||
|
|
||||||
/** Test {@link ClassificationController}. */
|
/** Test {@link ClassificationController}. */
|
||||||
@TaskanaSpringBootTest
|
@TaskanaSpringBootTest
|
||||||
|
|
|
@ -14,7 +14,7 @@ import pro.taskana.classification.api.models.Classification;
|
||||||
import pro.taskana.classification.rest.assembler.ClassificationRepresentationModelAssembler;
|
import pro.taskana.classification.rest.assembler.ClassificationRepresentationModelAssembler;
|
||||||
import pro.taskana.classification.rest.models.ClassificationRepresentationModel;
|
import pro.taskana.classification.rest.models.ClassificationRepresentationModel;
|
||||||
import pro.taskana.common.rest.RestEndpoints;
|
import pro.taskana.common.rest.RestEndpoints;
|
||||||
import pro.taskana.common.test.BaseRestDocTest;
|
import pro.taskana.rest.test.BaseRestDocTest;
|
||||||
|
|
||||||
class ClassificationControllerRestDocTest extends 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.assertThatCode;
|
||||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||||
import static pro.taskana.common.api.SharedConstants.MASTER_DOMAIN;
|
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 com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import java.io.File;
|
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.ClassificationDefinitionRepresentationModel;
|
||||||
import pro.taskana.classification.rest.models.ClassificationRepresentationModel;
|
import pro.taskana.classification.rest.models.ClassificationRepresentationModel;
|
||||||
import pro.taskana.common.rest.RestEndpoints;
|
import pro.taskana.common.rest.RestEndpoints;
|
||||||
import pro.taskana.common.test.rest.RestHelper;
|
import pro.taskana.rest.test.RestHelper;
|
||||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||||
|
|
||||||
/** Test classification definitions. */
|
/** Test classification definitions. */
|
||||||
@TaskanaSpringBootTest
|
@TaskanaSpringBootTest
|
||||||
|
|
|
@ -13,7 +13,7 @@ import pro.taskana.classification.api.models.Classification;
|
||||||
import pro.taskana.classification.rest.assembler.ClassificationRepresentationModelAssembler;
|
import pro.taskana.classification.rest.assembler.ClassificationRepresentationModelAssembler;
|
||||||
import pro.taskana.classification.rest.models.ClassificationCollectionRepresentationModel;
|
import pro.taskana.classification.rest.models.ClassificationCollectionRepresentationModel;
|
||||||
import pro.taskana.common.rest.RestEndpoints;
|
import pro.taskana.common.rest.RestEndpoints;
|
||||||
import pro.taskana.common.test.BaseRestDocTest;
|
import pro.taskana.rest.test.BaseRestDocTest;
|
||||||
|
|
||||||
class ClassificationDefinitionControllerRestDocTest extends 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.internal.models.ClassificationImpl;
|
||||||
import pro.taskana.classification.rest.models.ClassificationRepresentationModel;
|
import pro.taskana.classification.rest.models.ClassificationRepresentationModel;
|
||||||
import pro.taskana.common.rest.RestEndpoints;
|
import pro.taskana.common.rest.RestEndpoints;
|
||||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||||
|
|
||||||
/** Test for {@link ClassificationRepresentationModelAssembler}. */
|
/** Test for {@link ClassificationRepresentationModelAssembler}. */
|
||||||
@TaskanaSpringBootTest
|
@TaskanaSpringBootTest
|
||||||
|
|
|
@ -17,7 +17,7 @@ import pro.taskana.classification.api.ClassificationService;
|
||||||
import pro.taskana.classification.api.models.ClassificationSummary;
|
import pro.taskana.classification.api.models.ClassificationSummary;
|
||||||
import pro.taskana.classification.internal.models.ClassificationSummaryImpl;
|
import pro.taskana.classification.internal.models.ClassificationSummaryImpl;
|
||||||
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
||||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||||
|
|
||||||
/** Test for {@link ClassificationSummaryRepresentationModelAssembler}. */
|
/** Test for {@link ClassificationSummaryRepresentationModelAssembler}. */
|
||||||
@TaskanaSpringBootTest
|
@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.assertThat;
|
||||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
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.List;
|
||||||
import java.util.stream.Stream;
|
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.internal.util.Pair;
|
||||||
import pro.taskana.common.rest.models.AccessIdRepresentationModel;
|
import pro.taskana.common.rest.models.AccessIdRepresentationModel;
|
||||||
import pro.taskana.common.test.rest.RestHelper;
|
import pro.taskana.rest.test.RestHelper;
|
||||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||||
|
|
||||||
@TaskanaSpringBootTest
|
@TaskanaSpringBootTest
|
||||||
class AccessIdControllerIntTest {
|
class AccessIdControllerIntTest {
|
||||||
|
|
|
@ -5,7 +5,7 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
||||||
|
|
||||||
import pro.taskana.common.test.BaseRestDocTest;
|
import pro.taskana.rest.test.BaseRestDocTest;
|
||||||
|
|
||||||
class AccessIdControllerRestDocTest extends BaseRestDocTest {
|
class AccessIdControllerRestDocTest extends BaseRestDocTest {
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package pro.taskana.common.rest;
|
package pro.taskana.common.rest;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
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 com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
@ -20,8 +20,8 @@ import org.springframework.web.client.HttpStatusCodeException;
|
||||||
import pro.taskana.classification.rest.models.ClassificationSummaryPagedRepresentationModel;
|
import pro.taskana.classification.rest.models.ClassificationSummaryPagedRepresentationModel;
|
||||||
import pro.taskana.common.api.exceptions.ErrorCode;
|
import pro.taskana.common.api.exceptions.ErrorCode;
|
||||||
import pro.taskana.common.rest.TaskanaRestExceptionHandler.MalformedQueryParameter;
|
import pro.taskana.common.rest.TaskanaRestExceptionHandler.MalformedQueryParameter;
|
||||||
import pro.taskana.common.test.rest.RestHelper;
|
import pro.taskana.rest.test.RestHelper;
|
||||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||||
import pro.taskana.workbasket.api.WorkbasketPermission;
|
import pro.taskana.workbasket.api.WorkbasketPermission;
|
||||||
import pro.taskana.workbasket.api.WorkbasketType;
|
import pro.taskana.workbasket.api.WorkbasketType;
|
||||||
import pro.taskana.workbasket.rest.models.WorkbasketSummaryPagedRepresentationModel;
|
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 org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
import pro.taskana.common.internal.configuration.DB;
|
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;
|
import pro.taskana.sampledata.SampleDataGenerator;
|
||||||
|
|
||||||
/** Test that the schema name can be customized. */
|
/** 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.api.TaskanaRole;
|
||||||
import pro.taskana.common.rest.models.CustomAttributesRepresentationModel;
|
import pro.taskana.common.rest.models.CustomAttributesRepresentationModel;
|
||||||
import pro.taskana.common.rest.models.TaskanaUserInfoRepresentationModel;
|
import pro.taskana.common.rest.models.TaskanaUserInfoRepresentationModel;
|
||||||
import pro.taskana.common.test.rest.RestHelper;
|
import pro.taskana.rest.test.RestHelper;
|
||||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||||
|
|
||||||
/** Test TaskanaEngineController. */
|
/** Test TaskanaEngineController. */
|
||||||
@TaskanaSpringBootTest
|
@TaskanaSpringBootTest
|
||||||
|
|
|
@ -8,7 +8,7 @@ import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
||||||
|
|
||||||
import pro.taskana.common.rest.models.CustomAttributesRepresentationModel;
|
import pro.taskana.common.rest.models.CustomAttributesRepresentationModel;
|
||||||
import pro.taskana.common.test.BaseRestDocTest;
|
import pro.taskana.rest.test.BaseRestDocTest;
|
||||||
|
|
||||||
class TaskanaEngineControllerRestDocTest extends 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.assertThat;
|
||||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
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 com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
|
@ -18,11 +18,11 @@ import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.client.HttpClientErrorException.BadRequest;
|
import org.springframework.web.client.HttpClientErrorException.BadRequest;
|
||||||
|
|
||||||
import pro.taskana.common.rest.RestEndpoints;
|
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.PriorityColumnHeaderRepresentationModel;
|
||||||
import pro.taskana.monitor.rest.models.ReportRepresentationModel;
|
import pro.taskana.monitor.rest.models.ReportRepresentationModel;
|
||||||
import pro.taskana.monitor.rest.models.ReportRepresentationModel.RowRepresentationModel;
|
import pro.taskana.monitor.rest.models.ReportRepresentationModel.RowRepresentationModel;
|
||||||
|
import pro.taskana.rest.test.RestHelper;
|
||||||
|
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||||
|
|
||||||
/** Test MonitorController. */
|
/** Test MonitorController. */
|
||||||
@TaskanaSpringBootTest
|
@TaskanaSpringBootTest
|
||||||
|
|
|
@ -6,7 +6,7 @@ import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
||||||
|
|
||||||
import pro.taskana.common.rest.RestEndpoints;
|
import pro.taskana.common.rest.RestEndpoints;
|
||||||
import pro.taskana.common.test.BaseRestDocTest;
|
import pro.taskana.rest.test.BaseRestDocTest;
|
||||||
|
|
||||||
class MonitorControllerRestDocTest extends 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.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
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.api.reports.header.PriorityColumnHeader;
|
||||||
import pro.taskana.monitor.rest.models.PriorityColumnHeaderRepresentationModel;
|
import pro.taskana.monitor.rest.models.PriorityColumnHeaderRepresentationModel;
|
||||||
|
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||||
|
|
||||||
@TaskanaSpringBootTest
|
@TaskanaSpringBootTest
|
||||||
class PriorityColumnHeaderRepresentationModelAssemblerTest {
|
class PriorityColumnHeaderRepresentationModelAssemblerTest {
|
||||||
|
|
|
@ -13,13 +13,13 @@ import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
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.ClassificationReport;
|
||||||
import pro.taskana.monitor.api.reports.WorkbasketReport;
|
import pro.taskana.monitor.api.reports.WorkbasketReport;
|
||||||
import pro.taskana.monitor.api.reports.header.TimeIntervalColumnHeader;
|
import pro.taskana.monitor.api.reports.header.TimeIntervalColumnHeader;
|
||||||
import pro.taskana.monitor.api.reports.item.DetailedMonitorQueryItem;
|
import pro.taskana.monitor.api.reports.item.DetailedMonitorQueryItem;
|
||||||
import pro.taskana.monitor.api.reports.item.MonitorQueryItem;
|
import pro.taskana.monitor.api.reports.item.MonitorQueryItem;
|
||||||
import pro.taskana.monitor.rest.models.ReportRepresentationModel;
|
import pro.taskana.monitor.rest.models.ReportRepresentationModel;
|
||||||
|
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||||
|
|
||||||
/** Test for {@link ReportRepresentationModelAssembler}. */
|
/** Test for {@link ReportRepresentationModelAssembler}. */
|
||||||
@TaskanaSpringBootTest
|
@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.assertThat;
|
||||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
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.time.Instant;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
@ -18,8 +18,8 @@ import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.client.HttpStatusCodeException;
|
import org.springframework.web.client.HttpStatusCodeException;
|
||||||
|
|
||||||
import pro.taskana.common.rest.RestEndpoints;
|
import pro.taskana.common.rest.RestEndpoints;
|
||||||
import pro.taskana.common.test.rest.RestHelper;
|
import pro.taskana.rest.test.RestHelper;
|
||||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||||
import pro.taskana.task.rest.models.TaskCommentCollectionRepresentationModel;
|
import pro.taskana.task.rest.models.TaskCommentCollectionRepresentationModel;
|
||||||
import pro.taskana.task.rest.models.TaskCommentRepresentationModel;
|
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 org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
||||||
|
|
||||||
import pro.taskana.common.rest.RestEndpoints;
|
import pro.taskana.common.rest.RestEndpoints;
|
||||||
import pro.taskana.common.test.BaseRestDocTest;
|
import pro.taskana.rest.test.BaseRestDocTest;
|
||||||
import pro.taskana.common.test.security.JaasExtension;
|
|
||||||
import pro.taskana.common.test.security.WithAccessId;
|
|
||||||
import pro.taskana.task.api.TaskService;
|
import pro.taskana.task.api.TaskService;
|
||||||
import pro.taskana.task.api.models.TaskComment;
|
import pro.taskana.task.api.models.TaskComment;
|
||||||
import pro.taskana.task.rest.assembler.TaskCommentRepresentationModelAssembler;
|
import pro.taskana.task.rest.assembler.TaskCommentRepresentationModelAssembler;
|
||||||
import pro.taskana.task.rest.models.TaskCommentRepresentationModel;
|
import pro.taskana.task.rest.models.TaskCommentRepresentationModel;
|
||||||
|
import pro.taskana.testapi.security.JaasExtension;
|
||||||
|
import pro.taskana.testapi.security.WithAccessId;
|
||||||
|
|
||||||
@ExtendWith(JaasExtension.class)
|
@ExtendWith(JaasExtension.class)
|
||||||
class TaskCommentControllerRestDocTest extends BaseRestDocTest {
|
class TaskCommentControllerRestDocTest extends BaseRestDocTest {
|
||||||
|
|
|
@ -3,7 +3,7 @@ package pro.taskana.task.rest;
|
||||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
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.BufferedWriter;
|
||||||
import java.io.OutputStreamWriter;
|
import java.io.OutputStreamWriter;
|
||||||
|
@ -37,8 +37,8 @@ import org.springframework.web.client.HttpStatusCodeException;
|
||||||
|
|
||||||
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
||||||
import pro.taskana.common.rest.RestEndpoints;
|
import pro.taskana.common.rest.RestEndpoints;
|
||||||
import pro.taskana.common.test.rest.RestHelper;
|
import pro.taskana.rest.test.RestHelper;
|
||||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||||
import pro.taskana.sampledata.SampleDataGenerator;
|
import pro.taskana.sampledata.SampleDataGenerator;
|
||||||
import pro.taskana.task.api.TaskState;
|
import pro.taskana.task.api.TaskState;
|
||||||
import pro.taskana.task.rest.models.IsReadRepresentationModel;
|
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 org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
||||||
|
|
||||||
import pro.taskana.common.rest.RestEndpoints;
|
import pro.taskana.common.rest.RestEndpoints;
|
||||||
import pro.taskana.common.test.BaseRestDocTest;
|
import pro.taskana.rest.test.BaseRestDocTest;
|
||||||
import pro.taskana.common.test.rest.RestHelper;
|
import pro.taskana.rest.test.RestHelper;
|
||||||
import pro.taskana.common.test.security.JaasExtension;
|
|
||||||
import pro.taskana.common.test.security.WithAccessId;
|
|
||||||
import pro.taskana.task.api.TaskService;
|
import pro.taskana.task.api.TaskService;
|
||||||
import pro.taskana.task.api.models.Task;
|
import pro.taskana.task.api.models.Task;
|
||||||
import pro.taskana.task.internal.models.ObjectReferenceImpl;
|
import pro.taskana.task.internal.models.ObjectReferenceImpl;
|
||||||
import pro.taskana.task.rest.assembler.TaskRepresentationModelAssembler;
|
import pro.taskana.task.rest.assembler.TaskRepresentationModelAssembler;
|
||||||
import pro.taskana.task.rest.models.IsReadRepresentationModel;
|
import pro.taskana.task.rest.models.IsReadRepresentationModel;
|
||||||
import pro.taskana.task.rest.models.TaskRepresentationModel;
|
import pro.taskana.task.rest.models.TaskRepresentationModel;
|
||||||
|
import pro.taskana.testapi.security.JaasExtension;
|
||||||
|
import pro.taskana.testapi.security.WithAccessId;
|
||||||
|
|
||||||
@ExtendWith(JaasExtension.class)
|
@ExtendWith(JaasExtension.class)
|
||||||
class TaskControllerRestDocTest extends BaseRestDocTest {
|
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.ClassificationService;
|
||||||
import pro.taskana.classification.api.models.ClassificationSummary;
|
import pro.taskana.classification.api.models.ClassificationSummary;
|
||||||
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
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.TaskService;
|
||||||
import pro.taskana.task.api.models.Attachment;
|
import pro.taskana.task.api.models.Attachment;
|
||||||
import pro.taskana.task.internal.models.AttachmentImpl;
|
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.ClassificationService;
|
||||||
import pro.taskana.classification.api.models.ClassificationSummary;
|
import pro.taskana.classification.api.models.ClassificationSummary;
|
||||||
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
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.TaskService;
|
||||||
import pro.taskana.task.api.models.AttachmentSummary;
|
import pro.taskana.task.api.models.AttachmentSummary;
|
||||||
import pro.taskana.task.internal.models.AttachmentSummaryImpl;
|
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.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
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.api.models.ObjectReference;
|
||||||
import pro.taskana.task.internal.models.ObjectReferenceImpl;
|
import pro.taskana.task.internal.models.ObjectReferenceImpl;
|
||||||
import pro.taskana.task.rest.models.ObjectReferenceRepresentationModel;
|
import pro.taskana.task.rest.models.ObjectReferenceRepresentationModel;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import java.time.Instant;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
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.TaskService;
|
||||||
import pro.taskana.task.api.models.TaskComment;
|
import pro.taskana.task.api.models.TaskComment;
|
||||||
import pro.taskana.task.internal.models.TaskCommentImpl;
|
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.classification.rest.models.ClassificationSummaryRepresentationModel;
|
||||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||||
import pro.taskana.common.rest.RestEndpoints;
|
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.TaskCustomField;
|
||||||
import pro.taskana.task.api.TaskCustomIntField;
|
import pro.taskana.task.api.TaskCustomIntField;
|
||||||
import pro.taskana.task.api.TaskService;
|
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.ClassificationService;
|
||||||
import pro.taskana.classification.api.models.ClassificationSummary;
|
import pro.taskana.classification.api.models.ClassificationSummary;
|
||||||
import pro.taskana.classification.rest.models.ClassificationSummaryRepresentationModel;
|
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.TaskCustomIntField;
|
||||||
import pro.taskana.task.api.TaskService;
|
import pro.taskana.task.api.TaskService;
|
||||||
import pro.taskana.task.api.TaskState;
|
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.api.TaskanaEngine;
|
||||||
import pro.taskana.common.rest.ldap.LdapClient;
|
import pro.taskana.common.rest.ldap.LdapClient;
|
||||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||||
import pro.taskana.common.test.security.JaasExtension;
|
import pro.taskana.testapi.security.JaasExtension;
|
||||||
import pro.taskana.common.test.security.WithAccessId;
|
import pro.taskana.testapi.security.WithAccessId;
|
||||||
import pro.taskana.user.api.UserService;
|
import pro.taskana.user.api.UserService;
|
||||||
import pro.taskana.user.api.models.User;
|
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.assertThat;
|
||||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
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 java.util.Set;
|
||||||
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
||||||
|
@ -16,8 +16,8 @@ import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.client.HttpStatusCodeException;
|
import org.springframework.web.client.HttpStatusCodeException;
|
||||||
|
|
||||||
import pro.taskana.common.rest.RestEndpoints;
|
import pro.taskana.common.rest.RestEndpoints;
|
||||||
import pro.taskana.common.test.rest.RestHelper;
|
import pro.taskana.rest.test.RestHelper;
|
||||||
import pro.taskana.common.test.rest.TaskanaSpringBootTest;
|
import pro.taskana.rest.test.TaskanaSpringBootTest;
|
||||||
import pro.taskana.user.rest.models.UserCollectionRepresentationModel;
|
import pro.taskana.user.rest.models.UserCollectionRepresentationModel;
|
||||||
import pro.taskana.user.rest.models.UserRepresentationModel;
|
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