From a48c8818cd81e84bcf62d9411955f57ef1b4ae3e Mon Sep 17 00:00:00 2001 From: "Brian M. Long" Date: Fri, 3 Sep 2021 13:14:00 -0400 Subject: [PATCH 1/5] switch access token to bearer token --- .../alfresco/activiti/ApsClientConfiguration.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientConfiguration.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientConfiguration.java index dd98971..986d536 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientConfiguration.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientConfiguration.java @@ -20,8 +20,8 @@ public class ApsClientConfiguration implements ClientCxfConfiguration, ClientJer @Value("${process.service.security.basicAuth.password:admin}") private String basicAuthPassword; - @Value("${process.service.security.accessToken:#{null}}") - private String accessToken; + @Value("${process.service.security.bearerToken:#{null}}") + private String bearerToken; @Value("${process.service.security.oauth.tokenUrl:#{null}}") private String oAuthTokenUrl; @@ -62,8 +62,8 @@ public class ApsClientConfiguration implements ClientCxfConfiguration, ClientJer return this.basicAuthPassword; } - public String getAccessToken() { - return this.accessToken; + public String getBearerToken() { + return this.bearerToken; } public String getOAuthTokenUrl() { From b72f890acc7d6ce24b4fa8dbc6486fcb0694957f Mon Sep 17 00:00:00 2001 From: "Brian M. Long" Date: Fri, 3 Sep 2021 13:15:09 -0400 Subject: [PATCH 2/5] added pojo support --- .../activiti/ApsClientConfiguration.java | 54 ++++++++++++++++++- .../alfresco/activiti/ApsClientCxfImpl.java | 13 +++++ .../activiti/ApsClientJerseyImpl.java | 13 +++++ .../alfresco/activiti/ApsPublicRestApi.java | 7 ++- .../activiti/ApsPublicRestApiCxfImpl.java | 20 +++++-- .../activiti/ApsPublicRestApiJerseyImpl.java | 18 ++++++- 6 files changed, 118 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientConfiguration.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientConfiguration.java index 986d536..274463e 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientConfiguration.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientConfiguration.java @@ -49,57 +49,109 @@ public class ApsClientConfiguration implements ClientCxfConfiguration, ClientJer @Value("${process.service.jersey.putBodyRequired:true}") private boolean putBodyRequired; - + public String getBaseUrl() { return this.baseUrl; } + public void setBaseUrl(String baseUrl) { + this.baseUrl = baseUrl; + } + public String getBasicAuthUsername() { return this.basicAuthUsername; } + + public void setBasicAuthUsername(String basicAuthUsername) { + this.basicAuthUsername = basicAuthUsername; + } public String getBasicAuthPassword() { return this.basicAuthPassword; } + + public void setBasicAuthPassword(String basicAuthPassword) { + this.basicAuthPassword = basicAuthPassword; + } public String getBearerToken() { return this.bearerToken; } + + public void setBearerToken(String bearerToken) { + this.bearerToken = bearerToken; + } public String getOAuthTokenUrl() { return this.oAuthTokenUrl; } + + public void setOAuthTokenUrl(String oAuthTokenUrl) { + this.oAuthTokenUrl = oAuthTokenUrl; + } public String getOAuthClientId() { return this.oAuthClientId; } + + public void setOAuthClientId(String oAuthClientId) { + this.oAuthClientId = oAuthClientId; + } public String getOAuthClientSecret() { return this.oAuthClientSecret; } + + public void setOAuthClientSecret(String oAuthClientSecret) { + this.oAuthClientSecret = oAuthClientSecret; + } public String getOAuthAuthCode() { return this.oAuthAuthCode; } + + public void setOAuthAuthCode(String oAuthAuthCode) { + this.oAuthAuthCode = oAuthAuthCode; + } public String getOAuthAuthRedirectUri() { return this.oAuthAuthRedirectUri; } + + public void setOAuthAuthRedirectUri(String oAuthAuthRedirectUri) { + this.oAuthAuthRedirectUri = oAuthAuthRedirectUri; + } public String getOAuthUsername() { return this.oAuthUsername; } + + public void setOAuthUsername(String oAuthUsername) { + this.oAuthUsername = oAuthUsername; + } public String getOAuthPassword() { return this.oAuthPassword; } + + public void setOAuthPassword(String oAuthPassword) { + this.oAuthPassword = oAuthPassword; + } public boolean isDefaultBusEnabled() { return this.defaultBusEnabled; } + + public void setDefaultBusEnabled(boolean defaultBusEnabled) { + this.defaultBusEnabled = defaultBusEnabled; + } public boolean isPutBodyRequired() { return this.putBodyRequired; } + public void setPutBodyRequired(boolean putBodyRequired) { + this.putBodyRequired = putBodyRequired; + } + } diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientCxfImpl.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientCxfImpl.java index aee055f..803190e 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientCxfImpl.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientCxfImpl.java @@ -17,6 +17,19 @@ public class ApsClientCxfImpl extends ClientCxfImpl { @Autowired private ApsClientConfiguration config; + /** + * This constructor is for Spring use + */ + ApsClientCxfImpl() { + } + + /** + * This constructor is for POJO use + */ + public ApsClientCxfImpl(ApsClientConfiguration config) { + this.config = config; + } + @Override protected ClientCxfConfiguration getConfig() { return this.config; diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientJerseyImpl.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientJerseyImpl.java index 8eca94f..0dd2a96 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientJerseyImpl.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientJerseyImpl.java @@ -17,6 +17,19 @@ public class ApsClientJerseyImpl extends ClientJerseyImpl { @Autowired private ApsClientConfiguration config; + /** + * This constructor is for Spring use + */ + ApsClientJerseyImpl() { + } + + /** + * This constructor is for POJO use + */ + public ApsClientJerseyImpl(ApsClientConfiguration config) { + this.config = config; + } + @Override protected ClientJerseyConfiguration getConfig() { return this.config; diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java index fea480b..1ffac97 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java @@ -5,6 +5,7 @@ import com.inteligr8.alfresco.activiti.api.AppVersionApi; import com.inteligr8.alfresco.activiti.api.ProcessInstancesApi; import com.inteligr8.alfresco.activiti.api.ProfileApi; import com.inteligr8.alfresco.activiti.api.TasksApi; +import com.inteligr8.rs.Client; import com.inteligr8.rs.ClientConfiguration; /** @@ -14,7 +15,11 @@ public abstract class ApsPublicRestApi { protected abstract ClientConfiguration getConfig(); - protected abstract T getApi(Class apiClass); + protected abstract Client getClient(); + + protected T getApi(Class apiClass) { + return this.getClient().getApi(apiClass); + } public AdminApi getAdminApi() { return this.getApi(AdminApi.class); diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiCxfImpl.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiCxfImpl.java index c261ae2..1efa048 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiCxfImpl.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiCxfImpl.java @@ -4,6 +4,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; +import com.inteligr8.rs.Client; import com.inteligr8.rs.ClientConfiguration; /** @@ -16,14 +17,27 @@ public class ApsPublicRestApiCxfImpl extends ApsPublicRestApi { @Autowired private ApsClientCxfImpl client; + /** + * This constructor is for Spring use + */ + ApsPublicRestApiCxfImpl() { + } + + /** + * This constructor is for POJO use + */ + public ApsPublicRestApiCxfImpl(ApsClientCxfImpl client) { + this.client = client; + } + @Override protected ClientConfiguration getConfig() { return this.client.getConfig(); } - + @Override - protected T getApi(Class apiClass) { - return this.client.getApi(apiClass); + protected Client getClient() { + return this.client; } } diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiJerseyImpl.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiJerseyImpl.java index aa80486..35cc0e0 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiJerseyImpl.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiJerseyImpl.java @@ -4,6 +4,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; +import com.inteligr8.rs.Client; import com.inteligr8.rs.ClientConfiguration; /** @@ -16,14 +17,27 @@ public class ApsPublicRestApiJerseyImpl extends ApsPublicRestApi { @Autowired private ApsClientJerseyImpl client; + /** + * This constructor is for Spring use + */ + ApsPublicRestApiJerseyImpl() { + } + + /** + * This constructor is for POJO use + */ + public ApsPublicRestApiJerseyImpl(ApsClientJerseyImpl client) { + this.client = client; + } + @Override protected ClientConfiguration getConfig() { return this.client.getConfig(); } @Override - protected T getApi(Class apiClass) { - return this.client.getApi(apiClass); + protected Client getClient() { + return this.client; } } From a0ea90cc0aaf7cacea690d7fee525d3aac253b5c Mon Sep 17 00:00:00 2001 From: "Brian M. Long" Date: Fri, 3 Sep 2021 13:17:32 -0400 Subject: [PATCH 3/5] added post-config auth support --- .../alfresco/activiti/ApsPublicRestApi.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java index 1ffac97..06f51c8 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java @@ -5,6 +5,7 @@ import com.inteligr8.alfresco.activiti.api.AppVersionApi; import com.inteligr8.alfresco.activiti.api.ProcessInstancesApi; import com.inteligr8.alfresco.activiti.api.ProfileApi; import com.inteligr8.alfresco.activiti.api.TasksApi; +import com.inteligr8.rs.AuthorizationFilter; import com.inteligr8.rs.Client; import com.inteligr8.rs.ClientConfiguration; @@ -20,25 +21,49 @@ public abstract class ApsPublicRestApi { protected T getApi(Class apiClass) { return this.getClient().getApi(apiClass); } + + protected T getApi(AuthorizationFilter authFilter, Class apiClass) { + return this.getClient().getApi(authFilter, apiClass); + } public AdminApi getAdminApi() { return this.getApi(AdminApi.class); } + public AdminApi getAdminApi(AuthorizationFilter authFilter) { + return this.getApi(authFilter, AdminApi.class); + } + public AppVersionApi getAppVersionApi() { return this.getApi(AppVersionApi.class); } + public AppVersionApi getAppVersionApi(AuthorizationFilter authFilter) { + return this.getApi(authFilter, AppVersionApi.class); + } + public ProcessInstancesApi getProcessInstancesApi() { return this.getApi(ProcessInstancesApi.class); } + public ProcessInstancesApi getProcessInstancesApi(AuthorizationFilter authFilter) { + return this.getApi(authFilter, ProcessInstancesApi.class); + } + public ProfileApi getProfileApi() { return this.getApi(ProfileApi.class); } + public ProfileApi getProfileApi(AuthorizationFilter authFilter) { + return this.getApi(authFilter, ProfileApi.class); + } + public TasksApi getTasksApi() { return this.getApi(TasksApi.class); } + + public TasksApi getTasksApi(AuthorizationFilter authFilter) { + return this.getApi(authFilter, TasksApi.class); + } } From d04af2252ed24a834293bdcad575d40ce7a7974b Mon Sep 17 00:00:00 2001 From: "Brian M. Long" Date: Fri, 3 Sep 2021 13:22:53 -0400 Subject: [PATCH 4/5] added javadoc --- pom.xml | 13 +++++++++++++ .../alfresco/activiti/ApsClientConfiguration.java | 8 ++++++++ .../alfresco/activiti/ApsClientCxfImpl.java | 7 ++++++- .../alfresco/activiti/ApsClientJerseyImpl.java | 7 ++++++- .../alfresco/activiti/ApsPublicRestApi.java | 5 ++++- .../alfresco/activiti/ApsPublicRestApiCxfImpl.java | 5 ++++- .../activiti/ApsPublicRestApiJerseyImpl.java | 5 ++++- 7 files changed, 45 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 72b0ac8..9410936 100644 --- a/pom.xml +++ b/pom.xml @@ -102,6 +102,19 @@ + + maven-javadoc-plugin + + + javadoc + package + jar + + public + + + + diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientConfiguration.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientConfiguration.java index 274463e..3bbefc2 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientConfiguration.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientConfiguration.java @@ -7,6 +7,14 @@ import org.springframework.context.annotation.Configuration; import com.inteligr8.rs.ClientCxfConfiguration; import com.inteligr8.rs.ClientJerseyConfiguration; +/** + * This class provides a POJO & Spring-based implementation of the + * ClientConfiguration interface. You can use it outside of the Spring + * context, but you will need the spring-context and spring-beans libraries in + * your non-Spring application. + * + * @author brian@inteligr8.com + */ @Configuration @ComponentScan public class ApsClientConfiguration implements ClientCxfConfiguration, ClientJerseyConfiguration { diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientCxfImpl.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientCxfImpl.java index 803190e..aa82f4d 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientCxfImpl.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientCxfImpl.java @@ -8,7 +8,12 @@ import com.inteligr8.rs.ClientCxfConfiguration; import com.inteligr8.rs.ClientCxfImpl; /** - * Configured JAX-RS Client & WebTarget for APS & CXF + * This class provides a POJO & Spring-based implementation of the Apache + * CXF client. You can use it outside of the Spring context, but you will need + * the spring-context and spring-beans libraries in your non-Spring + * application. + * + * @author brian@inteligr8.com */ @Component("aps.client.cxf") @Lazy diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientJerseyImpl.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientJerseyImpl.java index 0dd2a96..fed0eeb 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientJerseyImpl.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientJerseyImpl.java @@ -8,7 +8,12 @@ import com.inteligr8.rs.ClientJerseyConfiguration; import com.inteligr8.rs.ClientJerseyImpl; /** - * Configured JAX-RS Client & WebTarget for APS & Jersey + * This class provides a POJO & Spring-based implementation of the Apache + * CXF client. You can use it outside of the Spring context, but you will need + * the spring-context and spring-beans libraries in your non-Spring + * application. + * + * @author brian@inteligr8.com */ @Component("aps.client.jersey") @Lazy diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java index 06f51c8..989a7d8 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java @@ -10,7 +10,10 @@ import com.inteligr8.rs.Client; import com.inteligr8.rs.ClientConfiguration; /** - * Alfresco Process Services Spring-ready API + * This class serves as the base implementation for the JAX-RS API for the APS + * Public ReST API. + * + * @author brian@inteligr8.com */ public abstract class ApsPublicRestApi { diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiCxfImpl.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiCxfImpl.java index 1efa048..1a22736 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiCxfImpl.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiCxfImpl.java @@ -8,7 +8,10 @@ import com.inteligr8.rs.Client; import com.inteligr8.rs.ClientConfiguration; /** - * Alfresco Process Services Spring-ready API for CXF + * This class provides the Apache CXF client to the JAX-RS API for the APS + * Public ReST API. + * + * @author brian@inteligr8.com */ @Component("aps.api.cxf") @Lazy diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiJerseyImpl.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiJerseyImpl.java index 35cc0e0..f44589c 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiJerseyImpl.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiJerseyImpl.java @@ -8,7 +8,10 @@ import com.inteligr8.rs.Client; import com.inteligr8.rs.ClientConfiguration; /** - * Alfresco Process Services Spring-ready API for Jersey + * This class provides the Jersey client to the JAX-RS API for the APS Public + * ReST API. + * + * @author brian@inteligr8.com */ @Component("aps.api.jersey") @Lazy From 2fa329bff9db0713bb0bc2a0fb8a462343e3cd23 Mon Sep 17 00:00:00 2001 From: "Brian M. Long" Date: Fri, 3 Sep 2021 13:23:50 -0400 Subject: [PATCH 5/5] minor sync fixes --- .../com/inteligr8/alfresco/activiti/ApsPublicRestApi.java | 8 ++++---- .../alfresco/activiti/ApsPublicRestApiCxfImpl.java | 4 ++-- .../alfresco/activiti/ApsPublicRestApiJerseyImpl.java | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java index 989a7d8..ce4ce6b 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java @@ -17,12 +17,12 @@ import com.inteligr8.rs.ClientConfiguration; */ public abstract class ApsPublicRestApi { - protected abstract ClientConfiguration getConfig(); + abstract ClientConfiguration getConfig(); - protected abstract Client getClient(); + abstract Client getClient(); - protected T getApi(Class apiClass) { - return this.getClient().getApi(apiClass); + protected final T getApi(Class apiClass) { + return this.getApi(null, apiClass); } protected T getApi(AuthorizationFilter authFilter, Class apiClass) { diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiCxfImpl.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiCxfImpl.java index 1a22736..68e3049 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiCxfImpl.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiCxfImpl.java @@ -34,12 +34,12 @@ public class ApsPublicRestApiCxfImpl extends ApsPublicRestApi { } @Override - protected ClientConfiguration getConfig() { + ClientConfiguration getConfig() { return this.client.getConfig(); } @Override - protected Client getClient() { + Client getClient() { return this.client; } diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiJerseyImpl.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiJerseyImpl.java index f44589c..7f8c364 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiJerseyImpl.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiJerseyImpl.java @@ -34,12 +34,12 @@ public class ApsPublicRestApiJerseyImpl extends ApsPublicRestApi { } @Override - protected ClientConfiguration getConfig() { + ClientConfiguration getConfig() { return this.client.getConfig(); } @Override - protected Client getClient() { + Client getClient() { return this.client; }