diff --git a/rest/taskana-rest-spring/pom.xml b/rest/taskana-rest-spring/pom.xml index 01367e2e7..77a767fd2 100644 --- a/rest/taskana-rest-spring/pom.xml +++ b/rest/taskana-rest-spring/pom.xml @@ -1,196 +1,201 @@ - 4.0.0 - taskana-rest-spring + xmlns="http://maven.apache.org/POM/4.0.0" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + taskana-rest-spring - ${project.groupId}:${project.artifactId} - The taskana rest logic. + ${project.groupId}:${project.artifactId} + The taskana rest logic. - - pro.taskana - taskana-rest-parent - 2.0.1-SNAPSHOT - ../pom.xml - + + pro.taskana + taskana-rest-parent + 2.0.1-SNAPSHOT + ../pom.xml + - - - - org.springframework.boot - spring-boot-dependencies - ${version.spring.boot} - pom - import - - - + + + + org.springframework.boot + spring-boot-dependencies + ${version.spring.boot} + pom + import + + + - - - org.springframework - spring-web - ${version.spring} - - - org.springframework - spring-beans - ${version.spring} - - - org.springframework - spring-jdbc - ${version.spring} - - - org.springframework.hateoas - spring-hateoas - ${version.spring.hateos} - - - org.springframework.ldap - spring-ldap-core - ${version.spring.ldap} - - - javax.servlet - javax.servlet-api - ${version.javax.servlet} - provided - - - javax.validation - validation-api - ${version.javax.validation} - - - com.fasterxml.jackson.core - jackson-databind - ${version.jackson} - - - pro.taskana - taskana-spring - ${project.version} - - - org.springframework - spring-aop - ${version.spring} - - - org.aspectj - aspectjweaver - ${version.aspectjweaver} - + + + org.springframework + spring-web + ${version.spring} + + + org.springframework + spring-beans + ${version.spring} + + + org.springframework + spring-jdbc + ${version.spring} + + + org.springframework.hateoas + spring-hateoas + ${version.spring.hateos} + + + org.springframework.ldap + spring-ldap-core + ${version.spring.ldap} + + + javax.servlet + javax.servlet-api + ${version.javax.servlet} + provided + + + javax.validation + validation-api + ${version.javax.validation} + + + com.fasterxml.jackson.core + jackson-databind + ${version.jackson} + + + pro.taskana + taskana-spring + ${project.version} + + + org.springframework + spring-aop + ${version.spring} + + + org.aspectj + aspectjweaver + ${version.aspectjweaver} + - - - org.assertj - assertj-core - ${version.assertj} - test - - - pro.taskana - taskana-data - ${project.version} - test - - - org.springframework.boot - spring-boot-starter-web - ${version.spring.boot} - test - - - org.springframework.boot - spring-boot-starter-test - ${version.spring.boot} - test - - - org.springframework.boot - spring-boot-starter-security - ${version.spring.boot} - test - - - org.springframework.boot - spring-boot-starter-jdbc - ${version.spring.boot} - test - - - org.springframework.plugin - spring-plugin-core - ${version.spring.core} - test - - - org.springframework.security - spring-security-test - ${version.spring.security} - test - - - org.springframework.restdocs - spring-restdocs-mockmvc - ${version.spring.restdocs} - test - - - net.bytebuddy - byte-buddy - ${version.byte-buddy} - test - - - net.bytebuddy - byte-buddy-agent - ${version.byte-buddy-agent} - test - - - com.h2database - h2 - ${version.h2} - test - - + + + org.assertj + assertj-core + ${version.assertj} + test + + + pro.taskana + taskana-data + ${project.version} + test + + + org.springframework.boot + spring-boot-starter-web + ${version.spring.boot} + test + + + org.springframework.boot + spring-boot-starter-test + ${version.spring.boot} + test + + + org.springframework.boot + spring-boot-starter-security + ${version.spring.boot} + test + + + org.springframework.boot + spring-boot-starter-jdbc + ${version.spring.boot} + test + + + org.springframework.plugin + spring-plugin-core + ${version.spring.core} + test + + + org.springframework.security + spring-security-test + ${version.spring.security} + test + + + org.springframework.restdocs + spring-restdocs-mockmvc + ${version.spring.restdocs} + test + + + net.bytebuddy + byte-buddy + ${version.byte-buddy} + test + + + net.bytebuddy + byte-buddy-agent + ${version.byte-buddy-agent} + test + + + com.h2database + h2 + ${version.h2} + test + + + com.unboundid + unboundid-ldapsdk + test + + - - - - org.asciidoctor - asciidoctor-maven-plugin - ${version.maven.asciidoctor} - - - generate-docs - prepare-package - - process-asciidoc - - - html - ${basedir}/src/test/resources/asciidoc - book - - ${basedir}/target/generated-snippets - shared - - - false - - ERROR - - - - - - - - + + + + org.asciidoctor + asciidoctor-maven-plugin + ${version.maven.asciidoctor} + + + generate-docs + prepare-package + + process-asciidoc + + + html + ${basedir}/src/test/resources/asciidoc + book + + ${basedir}/target/generated-snippets + shared + + + false + + ERROR + + + + + + + + diff --git a/rest/taskana-rest-spring/src/test/java/pro/taskana/rest/AccessIdControllerIntTest.java b/rest/taskana-rest-spring/src/test/java/pro/taskana/rest/AccessIdControllerIntTest.java index 25bf38401..492311d9d 100644 --- a/rest/taskana-rest-spring/src/test/java/pro/taskana/rest/AccessIdControllerIntTest.java +++ b/rest/taskana-rest-spring/src/test/java/pro/taskana/rest/AccessIdControllerIntTest.java @@ -36,7 +36,7 @@ class AccessIdControllerIntTest { ResponseEntity> response = template.exchange( restHelper.toUrl(Mapping.URL_ACCESSID) - + "?search-for=cn=developersgroup,ou=groups,o=taskanatest", + + "?search-for=cn=ksc-users,cn=groups,OU=Test,O=TASKANA", HttpMethod.GET, restHelper.defaultRequest(), ParameterizedTypeReference.forType(List.class)); @@ -47,7 +47,7 @@ class AccessIdControllerIntTest { void testQueryGroupsByCn() { ResponseEntity> response = template.exchange( - restHelper.toUrl(Mapping.URL_ACCESSID) + "?search-for=developer", + restHelper.toUrl(Mapping.URL_ACCESSID) + "?search-for=ksc", HttpMethod.GET, restHelper.defaultRequest(), ParameterizedTypeReference.forType(List.class)); @@ -58,7 +58,7 @@ class AccessIdControllerIntTest { void testGetMatches() { ResponseEntity> response = template.exchange( - restHelper.toUrl(Mapping.URL_ACCESSID) + "?search-for=ali", + restHelper.toUrl(Mapping.URL_ACCESSID) + "?search-for=user", HttpMethod.GET, restHelper.defaultRequest(), ParameterizedTypeReference.forType(AccessIdListResource.class)); diff --git a/rest/taskana-rest-spring/src/test/resources/application.properties b/rest/taskana-rest-spring/src/test/resources/application.properties index 316500e16..cbf9699e4 100644 --- a/rest/taskana-rest-spring/src/test/resources/application.properties +++ b/rest/taskana-rest-spring/src/test/resources/application.properties @@ -13,25 +13,26 @@ devMode=false version=@project.version@ ####### control LDAP usage -taskana.ldap.useLdap=false +taskana.ldap.useLdap=true ####### properties to connect to LDAP taskana.ldap.serverUrl=ldap://localhost:10389 -taskana.ldap.bindDn=uid=admin,ou=system +taskana.ldap.bindDn=uid=admin taskana.ldap.bindPassword=secret -taskana.ldap.baseDn=o=TaskanaTest +taskana.ldap.baseDn=ou=Test,O=TASKANA ####### properties that control search for users and groups -taskana.ldap.userSearchBase=ou=people +taskana.ldap.userSearchBase=cn=users taskana.ldap.userSearchFilterName=objectclass taskana.ldap.userSearchFilterValue=person taskana.ldap.userFirstnameAttribute=givenName taskana.ldap.userLastnameAttribute=sn taskana.ldap.userIdAttribute=uid -taskana.ldap.groupSearchBase=ou=groups +taskana.ldap.groupSearchBase=cn=groups taskana.ldap.groupSearchFilterName=objectclass taskana.ldap.groupSearchFilterValue=groupOfUniqueNames taskana.ldap.groupNameAttribute=cn taskana.ldap.minSearchForLength=3 taskana.ldap.maxNumberOfReturnedAccessIds=50 +taskana.ldap.groupsOfUser=memberUid ####### JobScheduler cron expression that specifies when the JobSchedler runs taskana.jobscheduler.async.cron=0 0 * * * * ####### cache static resources properties @@ -40,3 +41,11 @@ spring.main.allow-bean-definition-overriding=true ####### tomcat is not detecting the x-forward headers from bluemix as a trustworthy proxy server.tomcat.internal-proxies=.* server.use-forward-headers=true + +# Embedded Spring LDAP +spring.ldap.embedded.base-dn= 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 \ No newline at end of file diff --git a/rest/taskana-rest-spring/src/test/resources/taskana-test.ldif b/rest/taskana-rest-spring/src/test/resources/taskana-test.ldif new file mode 100644 index 000000000..e3e9eba41 --- /dev/null +++ b/rest/taskana-rest-spring/src/test/resources/taskana-test.ldif @@ -0,0 +1,82 @@ +###################### +# Organizational Units +###################### +dn: O=TASKANA +objectclass: top +objectclass: organization +o: Unternehmen + +dn: OU=Test,O=TASKANA +ou: Organisationseinheit +objectclass: top +objectclass: organizationalUnit + +dn: cn=groups,OU=Test,O=TASKANA +cn: groups +objectclass: top +objectclass: container + +dn: cn=users,OU=Test,O=TASKANA +cn: users +objectclass: top +objectclass: container + +dn: cn=organisation,OU=Test,O=TASKANA +cn: organisation +objectclass: top +objectclass: container + +######################## +# Users +######################## +dn: uid=user_1_1,cn=users,OU=Test,O=TASKANA +objectclass: inetorgperson +objectclass: organizationalperson +objectclass: person +objectclass: top +givenName: Max +description: desc +uid: user_1_1 +sn: Mustermann +ou: Organisationseinheit/Organisationseinheit KSC/Organisationseinheit KSC 1 +cn: Max Mustermann + +dn: uid=user_1_2,cn=users,OU=Test,O=TASKANA +objectclass: inetorgperson +objectclass: organizationalperson +objectclass: person +objectclass: top +givenName: Elena +description: desc +uid: user_1_1 +sn: Eifrig +ou: Organisationseinheit/Organisationseinheit KSC/Organisationseinheit KSC 1 +cn: Elena Eifrig + + +######################## +# Groups +######################## +dn: cn=ksc-users,cn=groups,OU=Test,O=TASKANA +uniquemember: uid=user_1_1,cn=users,OU=Test,O=TASKANA +uniquemember: uid=user_1_2,cn=users,OU=Test,O=TASKANA +cn: ksc-users +objectclass: groupofuniquenames +objectclass: top + + +######################## +# Groups +######################## +dn: cn=Organisationseinheit KSC,cn=organisation,OU=Test,O=TASKANA +cn: Organisationseinheit KSC +objectclass: groupofuniquenames +objectclass: top + +dn: cn=Organisationseinheit KSC 1,cn=Organisationseinheit KSC,cn=organisation,OU=Test,O=TASKANA +uniquemember: uid=user_1_1,cn=users,OU=Test,O=TASKANA +uniquemember: uid=user_1_2,cn=users,OU=Test,O=TASKANA +cn: Organisationseinheit KSC 1 +objectclass: groupofuniquenames +objectclass: top +