6 Commits

12 changed files with 90 additions and 24 deletions

76
pom.xml
View File

@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.inteligr8.activiti</groupId> <groupId>com.inteligr8.activiti</groupId>
<artifactId>keycloak-activiti-app-ext</artifactId> <artifactId>keycloak-activiti-app-ext</artifactId>
<version>1.3.1</version> <version>1.3.2</version>
<name>Keycloak Authentication &amp; Authorization for APS</name> <name>Keycloak Authentication &amp; Authorization for APS</name>
<description>An Alfresco Process Service App extension providing improved Keycloak/AIS support.</description> <description>An Alfresco Process Service App extension providing improved Keycloak/AIS support.</description>
<url>https://bitbucket.org/inteligr8/keycloak-activiti-app-ext</url> <url>https://bitbucket.org/inteligr8/keycloak-activiti-app-ext</url>
@@ -85,6 +85,69 @@
</dependency> </dependency>
</dependencies> </dependencies>
<profiles>
<profile>
<id>ossrh-release</id>
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>source</id>
<phase>package</phase>
<goals><goal>jar-no-fork</goal></goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>javadoc</id>
<phase>package</phase>
<goals><goal>jar</goal></goals>
<configuration>
<show>public</show>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign</id>
<phase>verify</phase>
<goals><goal>sign</goal></goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.13</version>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
<executions>
<execution>
<id>ossrh-deploy</id>
<phase>deploy</phase>
<goals><goal>deploy</goal></goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<repositories> <repositories>
<repository> <repository>
<id>alfresco-private</id> <id>alfresco-private</id>
@@ -96,15 +159,4 @@
</repository> </repository>
</repositories> </repositories>
<distributionManagement>
<repository>
<id>inteligr8-releases</id>
<url>https://repos.inteligr8.com/nexus/repository/inteligr8-public</url>
</repository>
<snapshotRepository>
<id>inteligr8-snapshots</id>
<url>https://repos.inteligr8.com/nexus/repository/inteligr8-snapshots</url>
</snapshotRepository>
</distributionManagement>
</project> </project>

View File

@@ -22,12 +22,12 @@ import org.springframework.security.config.annotation.authentication.builders.Au
import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.inteligr8.activiti.ActivitiSecurityConfigAdapter; import com.inteligr8.activiti.security.ActivitiSecurityConfigAdapter;
/** /**
* This class/bean executes the OOTB security configuration without the * This class/bean executes the OOTB security configuration without the
* override, so you can still use its OOTB features. This will allow you to * override, so you can still use its OOTB features. This will allow you to
* enable/disable features, chain them, and uset he OOTB features as a * enable/disable features, chain them, and unset the OOTB features as a
* fallback or failsafe. * fallback or failsafe.
* *
* This class must be in the com.activiti.conf package so it can use protected * This class must be in the com.activiti.conf package so it can use protected

View File

@@ -16,6 +16,7 @@ package com.activiti.extension.conf;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FullyQualifiedAnnotationBeanNameGenerator;
/** /**
* A means for injecting packages to scan for the Spring context. * A means for injecting packages to scan for the Spring context.
@@ -23,7 +24,14 @@ import org.springframework.context.annotation.Configuration;
* @author brian@inteligr8.com * @author brian@inteligr8.com
*/ */
@Configuration @Configuration
@ComponentScan(basePackages = {"com.inteligr8.activiti"}) @ComponentScan(
basePackages = {
"com.inteligr8.activiti.idm",
"com.inteligr8.activiti.keycloak",
"com.inteligr8.activiti.security"
},
nameGenerator = FullyQualifiedAnnotationBeanNameGenerator.class
)
public class KeycloakExtSpringComponentScanner { public class KeycloakExtSpringComponentScanner {
} }

View File

@@ -27,7 +27,7 @@ import org.springframework.stereotype.Component;
import com.activiti.api.msmt.MsmtTenantResolver; import com.activiti.api.msmt.MsmtTenantResolver;
import com.activiti.conf.MsmtProperties; import com.activiti.conf.MsmtProperties;
import com.activiti.security.identity.service.authentication.provider.IdentityServiceAuthenticationProvider; import com.activiti.security.identity.service.authentication.provider.IdentityServiceAuthenticationProvider;
import com.inteligr8.activiti.ActivitiSecurityConfigAdapter; import com.inteligr8.activiti.security.ActivitiSecurityConfigAdapter;
import com.inteligr8.activiti.auth.Authenticator; import com.inteligr8.activiti.auth.Authenticator;
import com.inteligr8.activiti.auth.InterceptingAuthenticationProvider; import com.inteligr8.activiti.auth.InterceptingAuthenticationProvider;

View File

@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along * You should have received a copy of the GNU General Public License along
* with this program. If not, see <https://www.gnu.org/licenses/>. * with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package com.inteligr8.activiti; package com.inteligr8.activiti.idm;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@@ -32,6 +32,8 @@ import com.activiti.domain.idm.Group;
import com.activiti.domain.idm.GroupCapability; import com.activiti.domain.idm.GroupCapability;
import com.activiti.domain.idm.Tenant; import com.activiti.domain.idm.Tenant;
import com.activiti.service.api.GroupService; import com.activiti.service.api.GroupService;
import com.inteligr8.activiti.DataFixer;
import com.inteligr8.activiti.keycloak.TenantFinderService;
/** /**
* This class/bean attempts to fix the administrative group in APS. This may * This class/bean attempts to fix the administrative group in APS. This may

View File

@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along * You should have received a copy of the GNU General Public License along
* with this program. If not, see <https://www.gnu.org/licenses/>. * with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package com.inteligr8.activiti; package com.inteligr8.activiti.idm;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
@@ -29,6 +29,8 @@ import com.activiti.domain.idm.Group;
import com.activiti.domain.idm.User; import com.activiti.domain.idm.User;
import com.activiti.service.api.GroupService; import com.activiti.service.api.GroupService;
import com.activiti.service.api.UserService; import com.activiti.service.api.UserService;
import com.inteligr8.activiti.DataFixer;
import com.inteligr8.activiti.keycloak.TenantFinderService;
/** /**
* This class/bean attempts to add administrators to the administrative group * This class/bean attempts to add administrators to the administrative group

View File

@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along * You should have received a copy of the GNU General Public License along
* with this program. If not, see <https://www.gnu.org/licenses/>. * with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package com.inteligr8.activiti; package com.inteligr8.activiti.idm;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -22,6 +22,8 @@ import org.springframework.stereotype.Component;
import com.activiti.domain.idm.User; import com.activiti.domain.idm.User;
import com.activiti.service.api.UserService; import com.activiti.service.api.UserService;
import com.inteligr8.activiti.DataFixer;
import com.inteligr8.activiti.keycloak.TenantFinderService;
/** /**
* This class/bean attempts to reset the configured user's password. * This class/bean attempts to reset the configured user's password.

View File

@@ -41,7 +41,6 @@ import com.activiti.domain.idm.Group;
import com.activiti.domain.idm.User; import com.activiti.domain.idm.User;
import com.activiti.service.api.GroupService; import com.activiti.service.api.GroupService;
import com.activiti.service.api.UserService; import com.activiti.service.api.UserService;
import com.inteligr8.activiti.TenantFinderService;
/** /**
* This class/bean implements an Open ID Connect authenticator for Alfresco * This class/bean implements an Open ID Connect authenticator for Alfresco

View File

@@ -25,9 +25,9 @@ import org.springframework.security.core.authority.mapping.SimpleAuthorityMapper
import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.inteligr8.activiti.ActivitiSecurityConfigAdapter;
import com.inteligr8.activiti.auth.Authenticator; import com.inteligr8.activiti.auth.Authenticator;
import com.inteligr8.activiti.auth.InterceptingAuthenticationProvider; import com.inteligr8.activiti.auth.InterceptingAuthenticationProvider;
import com.inteligr8.activiti.security.ActivitiSecurityConfigAdapter;
/** /**
* This class/bean injects a custom keycloak authentication provider into the * This class/bean injects a custom keycloak authentication provider into the

View File

@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along * You should have received a copy of the GNU General Public License along
* with this program. If not, see <https://www.gnu.org/licenses/>. * with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package com.inteligr8.activiti; package com.inteligr8.activiti.keycloak;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;

View File

@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along * You should have received a copy of the GNU General Public License along
* with this program. If not, see <https://www.gnu.org/licenses/>. * with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package com.inteligr8.activiti; package com.inteligr8.activiti.security;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UserDetailsService;

View File

@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along * You should have received a copy of the GNU General Public License along
* with this program. If not, see <https://www.gnu.org/licenses/>. * with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package com.inteligr8.activiti; package com.inteligr8.activiti.security;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@@ -25,6 +25,7 @@ import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.activiti.api.security.AlfrescoSecurityConfigOverride; import com.activiti.api.security.AlfrescoSecurityConfigOverride;
import com.inteligr8.activiti.DataFixer;
/** /**
* This class/bean overrides the APS security configuration with a collection * This class/bean overrides the APS security configuration with a collection