Loading pom.xml +3 −18 Original line number Diff line number Diff line Loading @@ -25,9 +25,9 @@ <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> <groupId>com.inteligr8</groupId> <artifactId>common-rest-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>io.swagger</groupId> Loading @@ -40,21 +40,6 @@ </exclusion> </exclusions> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> <version>2.12.2</version> </dependency> <dependency> <groupId>jakarta.ws.rs</groupId> <artifactId>jakarta.ws.rs-api</artifactId> <version>2.1.6</version> </dependency> <dependency> <groupId>org.glassfish.jersey.ext</groupId> <artifactId>jersey-proxy-client</artifactId> Loading src/main/java/com/inteligr8/alfresco/acs/AccessTokenRequestFilter.javadeleted 100644 → 0 +0 −20 Original line number Diff line number Diff line package com.inteligr8.alfresco.acs; import javax.ws.rs.client.ClientRequestContext; import javax.ws.rs.client.ClientRequestFilter; import javax.ws.rs.core.HttpHeaders; public class AccessTokenRequestFilter implements ClientRequestFilter { private final String token; public AccessTokenRequestFilter(String token) { this.token = token; } @Override public void filter(ClientRequestContext requestContext) { requestContext.getHeaders().add(HttpHeaders.AUTHORIZATION, "Bearer " + this.token); } } src/main/java/com/inteligr8/alfresco/acs/AcsClientConfiguration.java +63 −12 Original line number Diff line number Diff line package com.inteligr8.alfresco.acs; import javax.ws.rs.client.ClientRequestFilter; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import com.inteligr8.rs.ClientConfiguration; @Configuration @ComponentScan public class AcsClientConfiguration { public class AcsClientConfiguration extends ClientConfiguration { @Value("${content.service.baseUrl:http://localhost:8080/alfresco}") private String baseUrl; Loading @@ -22,18 +22,69 @@ public class AcsClientConfiguration { @Value("${content.service.security.accessToken:#{null}}") private String accessToken; @Value("${content.service.security.oauth.tokenUrl:#{null}}") private String oAuthTokenUrl; @Value("${content.service.security.oauth.clientId:#{null}}") private String oAuthClientId; @Value("${content.service.security.oauth.clientSecret:#{null}}") private String oAuthClientSecret; @Value("${content.service.security.oauth.authCode:#{null}}") private String oAuthAuthCode; @Value("${content.service.security.oauth.authRedirectUri:#{null}}") private String oAuthAuthRedirectUri; @Value("${content.service.security.oauth.grantUsername:#{null}}") private String oAuthUsername; @Value("${content.service.security.oauth.grantPassword:#{null}}") private String oAuthPassword; public String getBaseUrl() { return this.baseUrl; } public ClientRequestFilter getAuthorizationFilter() { if (this.accessToken != null) { return new AccessTokenRequestFilter(this.accessToken); } else if (this.basicAuthUsername != null) { return new BasicAuthRequestFilter(this.basicAuthUsername, this.basicAuthPassword); } else { return null; public String getBasicAuthUsername() { return this.basicAuthUsername; } public String getBasicAuthPassword() { return this.basicAuthPassword; } public String getAccessToken() { return this.accessToken; } public String getOAuthTokenUrl() { return this.oAuthTokenUrl; } public String getOAuthClientId() { return this.oAuthClientId; } public String getOAuthClientSecret() { return this.oAuthClientSecret; } public String getOAuthAuthCode() { return this.oAuthAuthCode; } public String getOAuthAuthRedirectUri() { return this.oAuthAuthRedirectUri; } public String getOAuthUsername() { return this.oAuthUsername; } public String getOAuthPassword() { return this.oAuthPassword; } } src/main/java/com/inteligr8/alfresco/acs/AcsClientCxfImpl.java +10 −43 Original line number Diff line number Diff line package com.inteligr8.alfresco.acs; import java.util.LinkedList; import java.util.List; import javax.ws.rs.client.ClientRequestFilter; import javax.ws.rs.ext.RuntimeDelegate; import org.apache.cxf.jaxrs.client.JAXRSClientFactory; import org.apache.cxf.jaxrs.client.WebClient; import org.apache.cxf.jaxrs.impl.RuntimeDelegateImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; import com.inteligr8.rs.ClientConfiguration; import com.inteligr8.rs.ClientCxfImpl; /** * Alfresco Content Services Spring Client for CXF * Configured JAX-RS Client & WebTarget for ACS & CXF */ @Component("acsClient.cxf") @Component("acs.client.cxf") @Lazy public class AcsClientCxfImpl extends AcsClient implements InitializingBean { private final Logger logger = LoggerFactory.getLogger(AcsClientCxfImpl.class); @Override public void afterPropertiesSet() { if (RuntimeDelegate.getInstance() == null) { this.logger.info("Setting JAX-RS runtime delegate to the CXF library"); RuntimeDelegate.setInstance(new RuntimeDelegateImpl()); } else if (RuntimeDelegate.getInstance() instanceof RuntimeDelegateImpl) { this.logger.info("JAX-RS runtime delegate already the CXF library"); } else { this.logger.warn("Setting JAX-RS runtime delegate to the CXF library; was: " + RuntimeDelegate.getInstance().getClass().getName()); RuntimeDelegate.setInstance(new RuntimeDelegateImpl()); } } public WebClient getCxfClient() { List<Object> providersAndFilters = new LinkedList<Object>(); providersAndFilters.add(new JacksonJaxbJsonProvider()); public class AcsClientCxfImpl extends ClientCxfImpl { ClientRequestFilter authFilter = this.getConfig().getAuthorizationFilter(); if (authFilter != null) providersAndFilters.add(authFilter); return WebClient.create(this.getConfig().getBaseUrl(), providersAndFilters); } @Autowired private AcsClientConfiguration config; @Override protected <T> T getApi(Class<T> apiClass) { return JAXRSClientFactory.fromClient(this.getCxfClient(), apiClass); protected ClientConfiguration getConfig() { return this.config; } } src/main/java/com/inteligr8/alfresco/acs/AcsClientJerseyImpl.java +11 −26 Original line number Diff line number Diff line package com.inteligr8.alfresco.acs; import javax.ws.rs.ext.RuntimeDelegate; import org.glassfish.jersey.client.proxy.WebResourceFactory; import org.glassfish.jersey.internal.RuntimeDelegateImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import com.inteligr8.rs.ClientConfiguration; import com.inteligr8.rs.ClientJerseyImpl; /** * Alfresco Content Services Spring Client for Jersey * Configured JAX-RS Client & WebTarget for ACS & Jersey */ @Component("acsClient.jersey") @Component("acs.client.jersey") @Lazy public class AcsClientJerseyImpl extends AcsClient implements InitializingBean { private final Logger logger = LoggerFactory.getLogger(AcsClientJerseyImpl.class); public class AcsClientJerseyImpl extends ClientJerseyImpl { @Override public void afterPropertiesSet() { if (RuntimeDelegate.getInstance() == null) { this.logger.info("Setting JAX-RS runtime delegate to the Jersey library"); RuntimeDelegate.setInstance(new RuntimeDelegateImpl()); } else if (RuntimeDelegate.getInstance() instanceof RuntimeDelegateImpl) { this.logger.info("JAX-RS runtime delegate already the Jersey library"); } else { this.logger.warn("Setting JAX-RS runtime delegate to the Jersey library; was: " + RuntimeDelegate.getInstance().getClass().getName()); RuntimeDelegate.setInstance(new RuntimeDelegateImpl()); } } @Autowired private AcsClientConfiguration config; @Override protected <T> T getApi(Class<T> apiClass) { return WebResourceFactory.newResource(apiClass, this.getTarget()); protected ClientConfiguration getConfig() { return this.config; } } Loading
pom.xml +3 −18 Original line number Diff line number Diff line Loading @@ -25,9 +25,9 @@ <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> <groupId>com.inteligr8</groupId> <artifactId>common-rest-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>io.swagger</groupId> Loading @@ -40,21 +40,6 @@ </exclusion> </exclusions> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> <version>2.12.2</version> </dependency> <dependency> <groupId>jakarta.ws.rs</groupId> <artifactId>jakarta.ws.rs-api</artifactId> <version>2.1.6</version> </dependency> <dependency> <groupId>org.glassfish.jersey.ext</groupId> <artifactId>jersey-proxy-client</artifactId> Loading
src/main/java/com/inteligr8/alfresco/acs/AccessTokenRequestFilter.javadeleted 100644 → 0 +0 −20 Original line number Diff line number Diff line package com.inteligr8.alfresco.acs; import javax.ws.rs.client.ClientRequestContext; import javax.ws.rs.client.ClientRequestFilter; import javax.ws.rs.core.HttpHeaders; public class AccessTokenRequestFilter implements ClientRequestFilter { private final String token; public AccessTokenRequestFilter(String token) { this.token = token; } @Override public void filter(ClientRequestContext requestContext) { requestContext.getHeaders().add(HttpHeaders.AUTHORIZATION, "Bearer " + this.token); } }
src/main/java/com/inteligr8/alfresco/acs/AcsClientConfiguration.java +63 −12 Original line number Diff line number Diff line package com.inteligr8.alfresco.acs; import javax.ws.rs.client.ClientRequestFilter; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import com.inteligr8.rs.ClientConfiguration; @Configuration @ComponentScan public class AcsClientConfiguration { public class AcsClientConfiguration extends ClientConfiguration { @Value("${content.service.baseUrl:http://localhost:8080/alfresco}") private String baseUrl; Loading @@ -22,18 +22,69 @@ public class AcsClientConfiguration { @Value("${content.service.security.accessToken:#{null}}") private String accessToken; @Value("${content.service.security.oauth.tokenUrl:#{null}}") private String oAuthTokenUrl; @Value("${content.service.security.oauth.clientId:#{null}}") private String oAuthClientId; @Value("${content.service.security.oauth.clientSecret:#{null}}") private String oAuthClientSecret; @Value("${content.service.security.oauth.authCode:#{null}}") private String oAuthAuthCode; @Value("${content.service.security.oauth.authRedirectUri:#{null}}") private String oAuthAuthRedirectUri; @Value("${content.service.security.oauth.grantUsername:#{null}}") private String oAuthUsername; @Value("${content.service.security.oauth.grantPassword:#{null}}") private String oAuthPassword; public String getBaseUrl() { return this.baseUrl; } public ClientRequestFilter getAuthorizationFilter() { if (this.accessToken != null) { return new AccessTokenRequestFilter(this.accessToken); } else if (this.basicAuthUsername != null) { return new BasicAuthRequestFilter(this.basicAuthUsername, this.basicAuthPassword); } else { return null; public String getBasicAuthUsername() { return this.basicAuthUsername; } public String getBasicAuthPassword() { return this.basicAuthPassword; } public String getAccessToken() { return this.accessToken; } public String getOAuthTokenUrl() { return this.oAuthTokenUrl; } public String getOAuthClientId() { return this.oAuthClientId; } public String getOAuthClientSecret() { return this.oAuthClientSecret; } public String getOAuthAuthCode() { return this.oAuthAuthCode; } public String getOAuthAuthRedirectUri() { return this.oAuthAuthRedirectUri; } public String getOAuthUsername() { return this.oAuthUsername; } public String getOAuthPassword() { return this.oAuthPassword; } }
src/main/java/com/inteligr8/alfresco/acs/AcsClientCxfImpl.java +10 −43 Original line number Diff line number Diff line package com.inteligr8.alfresco.acs; import java.util.LinkedList; import java.util.List; import javax.ws.rs.client.ClientRequestFilter; import javax.ws.rs.ext.RuntimeDelegate; import org.apache.cxf.jaxrs.client.JAXRSClientFactory; import org.apache.cxf.jaxrs.client.WebClient; import org.apache.cxf.jaxrs.impl.RuntimeDelegateImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; import com.inteligr8.rs.ClientConfiguration; import com.inteligr8.rs.ClientCxfImpl; /** * Alfresco Content Services Spring Client for CXF * Configured JAX-RS Client & WebTarget for ACS & CXF */ @Component("acsClient.cxf") @Component("acs.client.cxf") @Lazy public class AcsClientCxfImpl extends AcsClient implements InitializingBean { private final Logger logger = LoggerFactory.getLogger(AcsClientCxfImpl.class); @Override public void afterPropertiesSet() { if (RuntimeDelegate.getInstance() == null) { this.logger.info("Setting JAX-RS runtime delegate to the CXF library"); RuntimeDelegate.setInstance(new RuntimeDelegateImpl()); } else if (RuntimeDelegate.getInstance() instanceof RuntimeDelegateImpl) { this.logger.info("JAX-RS runtime delegate already the CXF library"); } else { this.logger.warn("Setting JAX-RS runtime delegate to the CXF library; was: " + RuntimeDelegate.getInstance().getClass().getName()); RuntimeDelegate.setInstance(new RuntimeDelegateImpl()); } } public WebClient getCxfClient() { List<Object> providersAndFilters = new LinkedList<Object>(); providersAndFilters.add(new JacksonJaxbJsonProvider()); public class AcsClientCxfImpl extends ClientCxfImpl { ClientRequestFilter authFilter = this.getConfig().getAuthorizationFilter(); if (authFilter != null) providersAndFilters.add(authFilter); return WebClient.create(this.getConfig().getBaseUrl(), providersAndFilters); } @Autowired private AcsClientConfiguration config; @Override protected <T> T getApi(Class<T> apiClass) { return JAXRSClientFactory.fromClient(this.getCxfClient(), apiClass); protected ClientConfiguration getConfig() { return this.config; } }
src/main/java/com/inteligr8/alfresco/acs/AcsClientJerseyImpl.java +11 −26 Original line number Diff line number Diff line package com.inteligr8.alfresco.acs; import javax.ws.rs.ext.RuntimeDelegate; import org.glassfish.jersey.client.proxy.WebResourceFactory; import org.glassfish.jersey.internal.RuntimeDelegateImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import com.inteligr8.rs.ClientConfiguration; import com.inteligr8.rs.ClientJerseyImpl; /** * Alfresco Content Services Spring Client for Jersey * Configured JAX-RS Client & WebTarget for ACS & Jersey */ @Component("acsClient.jersey") @Component("acs.client.jersey") @Lazy public class AcsClientJerseyImpl extends AcsClient implements InitializingBean { private final Logger logger = LoggerFactory.getLogger(AcsClientJerseyImpl.class); public class AcsClientJerseyImpl extends ClientJerseyImpl { @Override public void afterPropertiesSet() { if (RuntimeDelegate.getInstance() == null) { this.logger.info("Setting JAX-RS runtime delegate to the Jersey library"); RuntimeDelegate.setInstance(new RuntimeDelegateImpl()); } else if (RuntimeDelegate.getInstance() instanceof RuntimeDelegateImpl) { this.logger.info("JAX-RS runtime delegate already the Jersey library"); } else { this.logger.warn("Setting JAX-RS runtime delegate to the Jersey library; was: " + RuntimeDelegate.getInstance().getClass().getName()); RuntimeDelegate.setInstance(new RuntimeDelegateImpl()); } } @Autowired private AcsClientConfiguration config; @Override protected <T> T getApi(Class<T> apiClass) { return WebResourceFactory.newResource(apiClass, this.getTarget()); protected ClientConfiguration getConfig() { return this.config; } }