This project is a plugin for Digital.ai Release that enables authentication and user management via Atlassian Crowd. It provides integration with Crowd for user authentication within Digital.ai Release.
This project uses Gradle for building. To build the plugin, run:
./gradlew clean build
The built JAR file will be located in build/libs/
.
This plugin was tested against Digital.ai Release 24.3. Compatibility with other versions is not guaranteed.
- Ensure your Crowd server is properly configured and accessible from the Digital.ai Release server.
- This plugin may not be compatible with future or earlier versions of Digital.ai Release.
- Always test in a non-production environment before deploying to production.
- Review and configure security settings according to your organization's policies.
To configure Atlassian Crowd to receive authentication requests from Release:
- Add Release application to Atlassian Crowd.
- Add and configure the directories that are visible to Release.
- Add and map the groups which that will authenticate with Release.
For more information, see Adding an Application.
- Download the latest JAR file from the Releases page.
- Copy the JAR file into the following directory on your Digital.ai Release server:
DAI_RELEASE_SERVER/plugins/__local__
- To configure Release to use an Atlassian Crowd, modify the
xl-release-security.xml
security configuration file. The following is an examplexl-release-security.xml
file:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:security="http://www.springframework.org/schema/security"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd
">
<import resource="xl-crowd-security.xml"/>
<bean id="crowdUserDetailsService" class="com.xebialabs.xlrelease.plugins.security.crowd.userdetails.CrowdUserDetailsServiceImpl">
<property name="crowdClient" ref="crowdClient"/>
<property name="authorityPrefix" value=""/>
</bean>
<bean id="crowdAuthenticationProvider" class="com.xebialabs.xlrelease.plugins.security.crowd.authentication.XLCrowdAuthenticationProvider">
<constructor-arg ref="crowdClient"/>
<constructor-arg ref="crowdUserDetailsService"/>
</bean>
<bean id="rememberMeAuthenticationProvider" class="com.xebialabs.deployit.security.authentication.RememberMeAuthenticationProvider"/>
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider ref="rememberMeAuthenticationProvider" />
<security:authentication-provider ref="xlAuthenticationProvider"/>
<security:authentication-provider ref="crowdAuthenticationProvider"/>
</security:authentication-manager>
</beans>
Copy the following file into your DAI_RELEASE_SERVER/conf
directory:
Copy From | Copy To |
---|---|
CROWD/client/conf/crowd-ehcache.xml |
DAI_RELEASE_SERVER/conf/crowd-ehcache.xml |
This file can be adjusted to change the cache behavior.
The Atlassian Crowd Spring Security connector must be configured with the details of the Atlassian Crowd server.
- Copy the default
crowd.properties
file into yourDAI_RELEASE_SERVER/conf
directory:
Copy From | Copy To |
---|---|
CROWD/client/conf/crowd.properties |
DAI_RELEASE_SERVER/conf/crowd.properties |
- Edit
crowd.properties
and populate the following fields appropriately:
Key | Value |
---|---|
application.name | Use the same application name that you used when adding the application to Atlassian Crowd. |
application.password | Use the same application password that you used when adding the application to Atlassian Crowd. |
crowd.server.url | URL to use when connecting with the integration libraries that are used to communicate with the Atlassian Crowd server, e.g. http://localhost:8095/crowd/services/. |
session.validationinterval | Time interval (in minutes) between requests to validate whether the user is logged in or out of Atlassian Crowd. Set to 0 for validation on each request. Setting to 1 or higher increases performance. |
For more information, see crowd.properties.
Restart the Digital.ai Release server after all changes.
You can setup a Atlassian Crowd group called devs
to be used by the members of a team in Release. Assign this group to a role in Release called Developers. At folder or release level, you can add permissions for a team called Dev Team that contains the Release role Developers. This role contains the created Atlassian Crowd group called devs.
When you log in as a user into the devs group using Atlassian Crowd, you will have the permissions for the Developers role at folder or release level.
This project is licensed under the MIT License.