Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 7 Next »

As TASKANA is a pure Java application, there is a huge variety of options how to deploy and use TASKANA on Wildfly.

However we do have an integration test to ensure a compatibility with Wildfly. In this setup we use the REST module of TASKANA and deploy it to Wildfly as a web application. You have to keep in mind that the TASKANA REST module is based on the Spring Framework. The setup we are using can be found on GitHub: https://github.com/Taskana/taskana/tree/master/rest/taskana-rest-spring-example-wildfly

This setup is described in more detail on this page. However you are free and encouraged to change each configuration to your own needs.

Application Assembly

Required Dependencies

To create your own Wildfly application, you need to add this dependency for the REST controllers including the entire TASKANA functionality:

<dependency>
  <groupId>pro.taskana</groupId>
  <artifactId>taskana-rest-spring</artifactId>
</dependency>

If you want the UI to be part of the application, add this dependency as well:

<dependency>
  <groupId>pro.taskana</groupId>
  <artifactId>taskana-web</artifactId>
</dependency>

Thats’s all.

For the example application, we use this Maven dependency, as it contains the sample data in addition to the two mentioned dependencies above:

<dependency>
  <groupId>pro.taskana</groupId>
  <artifactId>taskana-rest-spring-example-common</artifactId>
</dependency>

You can find the entire project structure on GitHub: https://github.com/Taskana/taskana/blob/master/rest/taskana-rest-spring-example-wildfly/pom.xml

Security

TASKANA requires a initialized JAAS Subject to work - at least as long you want to use the security features.

In our setup we have a Elytron setup, which ensures that all requests are authenticated and authorized before entering our application. We can find the details of the current user in the SecurityIdentity Elytron provides. To make this information accessible to TASKANA, we have created the ElytronToJaasFilter, to initialize a valid Subject from it. This filter is configured in our WildflyWebSecurityConfig:

  @Override
  protected void configure(HttpSecurity http) throws Exception {
    http.addFilter(jaasApiIntegrationFilter())
        .addFilterAfter(new ElytronToJaasFilter(), JaasApiIntegrationFilter.class)
        .csrf()
        .disable();
  }

Configuration

application.properties

You need to configure on the appplication side is the datasource and the database schema to use:

######## Taskana DB #######
datasource.jndi=java:/TaskanaDS/H2
taskana.schemaName=TASKANA

Furthermore, if you are using LDAP, you need to configure the LDAP access:

####### 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.userIdAttribute=uid
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

These properties are used to do a LDAP lookup from the AccessIdController, as it is required for the Admin UI for example. It has nothing to do with the authentication of a user, which is handled by Elytron as described above.

You can find the entire example file on GitHub: https://github.com/Taskana/taskana/blob/master/rest/taskana-rest-spring-example-wildfly/src/main/resources/application.properties

web.xml

Nothing specific to TASKANA but you might need to specify the realm on Wildfly. In our example we do need to do this to make the FORM login work:

    <login-config>
        <auth-method>FORM</auth-method>
        <realm-name>taskanaApplicationDomain</realm-name>
        <form-login-config>
            <form-login-page>/login</form-login-page>
            <form-error-page>/login?error</form-error-page>
        </form-login-config>
    </login-config>

jboss-web.xml

In this file you meght want to change the context-root and and security-domain to match your configuration:

	<context-root>/taskana</context-root>
    <security-domain>taskanaApplicationDomain</security-domain>

Server Configuration

Database

Security

Logging




















































  • No labels