From 4c98b04ab762cf8a0c259b4969abe62f9b20fb89 Mon Sep 17 00:00:00 2001 From: Stian Thorgersen Date: Mon, 15 Jun 2015 13:22:21 +0200 Subject: [PATCH] KEYCLOAK-1447 LinkageError deploying oauth-client-cdi to WildFly 8.2.0.Final --- .../as7-adapter-zip/assembly.xml | 2 +- .../as7-eap6-adapter/as7-modules/build.xml | 10 ++++------ .../as7-eap6-adapter/as7-modules/pom.xml | 8 ++------ .../org/apache/httpcomponents/4.3/module.xml | 14 -------------- .../keycloak-adapter-core/main/module.xml | 2 +- .../keycloak-as7-adapter/main/module.xml | 2 +- .../main/module.xml | 17 +++++++++++++++++ .../eap6-adapter-zip/assembly.xml | 2 +- .../wf8-adapter/wf8-adapter-zip/assembly.xml | 1 + .../adapters/wf8-adapter/wf8-modules/build.xml | 4 ++++ .../adapters/wf8-adapter/wf8-modules/pom.xml | 4 ++++ .../main/module.xml | 17 +++++++++++++++++ .../wf9-adapter/wf9-adapter-zip/assembly.xml | 1 + .../adapters/wf9-adapter/wf9-modules/build.xml | 4 ++++ .../adapters/wf9-adapter/wf9-modules/pom.xml | 4 ++++ .../main/module.xml | 17 +++++++++++++++++ examples/demo-template/third-party-cdi/pom.xml | 1 + .../keycloak/example/oauth/DatabaseClient.java | 3 ++- .../WEB-INF/jboss-deployment-structure.xml | 1 + .../example/oauth/ProductDatabaseClient.java | 3 ++- .../keycloak/servlet/ServletOAuthClient.java | 14 +++++++------- .../servlet/ServletOAuthClientBuilder.java | 3 +-- 22 files changed, 93 insertions(+), 41 deletions(-) delete mode 100644 distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/apache/httpcomponents/4.3/module.xml create mode 100755 distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml create mode 100755 distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml create mode 100755 distribution/adapters/wf9-adapter/wf9-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml diff --git a/distribution/adapters/as7-eap6-adapter/as7-adapter-zip/assembly.xml b/distribution/adapters/as7-eap6-adapter/as7-adapter-zip/assembly.xml index 814a591b83..094e4268d4 100755 --- a/distribution/adapters/as7-eap6-adapter/as7-adapter-zip/assembly.xml +++ b/distribution/adapters/as7-eap6-adapter/as7-adapter-zip/assembly.xml @@ -13,13 +13,13 @@ org/bouncycastle/** net/iharder/base64/** - org/apache/httpcomponents/** org/keycloak/keycloak-core/** org/keycloak/keycloak-adapter-core/** org/keycloak/keycloak-jboss-adapter-core/** org/keycloak/keycloak-as7-adapter/** org/keycloak/keycloak-as7-subsystem/** org/keycloak/keycloak-adapter-subsystem/** + org/keycloak/keycloak-servlet-oauth-client/** **/*.war diff --git a/distribution/adapters/as7-eap6-adapter/as7-modules/build.xml b/distribution/adapters/as7-eap6-adapter/as7-modules/build.xml index d4b4bebd20..9ab6fabade 100755 --- a/distribution/adapters/as7-eap6-adapter/as7-modules/build.xml +++ b/distribution/adapters/as7-eap6-adapter/as7-modules/build.xml @@ -38,12 +38,6 @@ - - - - - - @@ -76,6 +70,10 @@ + + + + diff --git a/distribution/adapters/as7-eap6-adapter/as7-modules/pom.xml b/distribution/adapters/as7-eap6-adapter/as7-modules/pom.xml index 6fb1671e3a..809717feab 100755 --- a/distribution/adapters/as7-eap6-adapter/as7-modules/pom.xml +++ b/distribution/adapters/as7-eap6-adapter/as7-modules/pom.xml @@ -42,12 +42,8 @@ keycloak-as7-subsystem - org.apache.httpcomponents - httpmime - - - org.apache.httpcomponents - httpcore + org.keycloak + keycloak-servlet-oauth-client net.iharder diff --git a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/apache/httpcomponents/4.3/module.xml b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/apache/httpcomponents/4.3/module.xml deleted file mode 100644 index a3e65f8dd0..0000000000 --- a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/apache/httpcomponents/4.3/module.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml index 1be1486fe2..5e3e5c34f0 100755 --- a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml +++ b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml @@ -11,7 +11,7 @@ - + diff --git a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-adapter/main/module.xml b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-adapter/main/module.xml index b5df10afb2..463ff43792 100755 --- a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-adapter/main/module.xml +++ b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-adapter/main/module.xml @@ -12,7 +12,7 @@ - + diff --git a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml new file mode 100755 index 0000000000..bc489889c9 --- /dev/null +++ b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/distribution/adapters/as7-eap6-adapter/eap6-adapter-zip/assembly.xml b/distribution/adapters/as7-eap6-adapter/eap6-adapter-zip/assembly.xml index 84fe8e2153..4e29b1b9c3 100755 --- a/distribution/adapters/as7-eap6-adapter/eap6-adapter-zip/assembly.xml +++ b/distribution/adapters/as7-eap6-adapter/eap6-adapter-zip/assembly.xml @@ -13,13 +13,13 @@ org/bouncycastle/** net/iharder/base64/** - org/apache/httpcomponents/** org/keycloak/keycloak-core/** org/keycloak/keycloak-adapter-core/** org/keycloak/keycloak-jboss-adapter-core/** org/keycloak/keycloak-as7-adapter/** org/keycloak/keycloak-as7-subsystem/** org/keycloak/keycloak-adapter-subsystem/** + org/keycloak/keycloak-servlet-oauth-client/** **/*.war diff --git a/distribution/adapters/wf8-adapter/wf8-adapter-zip/assembly.xml b/distribution/adapters/wf8-adapter/wf8-adapter-zip/assembly.xml index 205ade3640..3f5d8878d9 100755 --- a/distribution/adapters/wf8-adapter/wf8-adapter-zip/assembly.xml +++ b/distribution/adapters/wf8-adapter/wf8-adapter-zip/assembly.xml @@ -20,6 +20,7 @@ org/keycloak/keycloak-wildfly-adapter/** org/keycloak/keycloak-wf8-subsystem/** org/keycloak/keycloak-adapter-subsystem/** + org/keycloak/keycloak-servlet-oauth-client/** **/*.war diff --git a/distribution/adapters/wf8-adapter/wf8-modules/build.xml b/distribution/adapters/wf8-adapter/wf8-modules/build.xml index 0ede555b6e..30e02540e6 100755 --- a/distribution/adapters/wf8-adapter/wf8-modules/build.xml +++ b/distribution/adapters/wf8-adapter/wf8-modules/build.xml @@ -69,6 +69,10 @@ + + + + diff --git a/distribution/adapters/wf8-adapter/wf8-modules/pom.xml b/distribution/adapters/wf8-adapter/wf8-modules/pom.xml index 0f88bb7027..0de89fcaad 100755 --- a/distribution/adapters/wf8-adapter/wf8-modules/pom.xml +++ b/distribution/adapters/wf8-adapter/wf8-modules/pom.xml @@ -41,6 +41,10 @@ org.keycloak keycloak-wf8-subsystem + + org.keycloak + keycloak-servlet-oauth-client + org.apache.httpcomponents httpmime diff --git a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml new file mode 100755 index 0000000000..2d3876e266 --- /dev/null +++ b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/distribution/adapters/wf9-adapter/wf9-adapter-zip/assembly.xml b/distribution/adapters/wf9-adapter/wf9-adapter-zip/assembly.xml index 265264e2d2..e81d4e4e0f 100755 --- a/distribution/adapters/wf9-adapter/wf9-adapter-zip/assembly.xml +++ b/distribution/adapters/wf9-adapter/wf9-adapter-zip/assembly.xml @@ -19,6 +19,7 @@ org/keycloak/keycloak-wildfly-adapter/** org/keycloak/keycloak-wf9-subsystem/** org/keycloak/keycloak-adapter-subsystem/** + org/keycloak/keycloak-servlet-oauth-client/** **/*.war diff --git a/distribution/adapters/wf9-adapter/wf9-modules/build.xml b/distribution/adapters/wf9-adapter/wf9-modules/build.xml index e33da10efc..8c1d41a21b 100755 --- a/distribution/adapters/wf9-adapter/wf9-modules/build.xml +++ b/distribution/adapters/wf9-adapter/wf9-modules/build.xml @@ -69,6 +69,10 @@ + + + + diff --git a/distribution/adapters/wf9-adapter/wf9-modules/pom.xml b/distribution/adapters/wf9-adapter/wf9-modules/pom.xml index b408d53471..f4c63e7a0c 100755 --- a/distribution/adapters/wf9-adapter/wf9-modules/pom.xml +++ b/distribution/adapters/wf9-adapter/wf9-modules/pom.xml @@ -41,6 +41,10 @@ org.keycloak keycloak-wf9-subsystem + + org.keycloak + keycloak-servlet-oauth-client + org.apache.httpcomponents httpmime diff --git a/distribution/adapters/wf9-adapter/wf9-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml b/distribution/adapters/wf9-adapter/wf9-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml new file mode 100755 index 0000000000..bc489889c9 --- /dev/null +++ b/distribution/adapters/wf9-adapter/wf9-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/examples/demo-template/third-party-cdi/pom.xml b/examples/demo-template/third-party-cdi/pom.xml index d2f8da548b..d8b3f44324 100755 --- a/examples/demo-template/third-party-cdi/pom.xml +++ b/examples/demo-template/third-party-cdi/pom.xml @@ -52,6 +52,7 @@ org.keycloak keycloak-servlet-oauth-client + provided org.apache.httpcomponents diff --git a/examples/demo-template/third-party-cdi/src/main/java/org/keycloak/example/oauth/DatabaseClient.java b/examples/demo-template/third-party-cdi/src/main/java/org/keycloak/example/oauth/DatabaseClient.java index 01ede2eec9..6b96f6a97f 100755 --- a/examples/demo-template/third-party-cdi/src/main/java/org/keycloak/example/oauth/DatabaseClient.java +++ b/examples/demo-template/third-party-cdi/src/main/java/org/keycloak/example/oauth/DatabaseClient.java @@ -4,6 +4,7 @@ import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.DefaultHttpClient; import org.jboss.logging.Logger; import org.keycloak.servlet.ServletOAuthClient; import org.keycloak.util.JsonSerialization; @@ -69,7 +70,7 @@ public class DatabaseClient { } protected List sendRequestToDBApplication(String dbUri) { - HttpClient client = oauthClient.getClient(); + HttpClient client = new DefaultHttpClient(); HttpGet get = new HttpGet(dbUri); try { diff --git a/examples/demo-template/third-party-cdi/src/main/webapp/WEB-INF/jboss-deployment-structure.xml b/examples/demo-template/third-party-cdi/src/main/webapp/WEB-INF/jboss-deployment-structure.xml index 9c1bac9b36..2ee04e01a7 100755 --- a/examples/demo-template/third-party-cdi/src/main/webapp/WEB-INF/jboss-deployment-structure.xml +++ b/examples/demo-template/third-party-cdi/src/main/webapp/WEB-INF/jboss-deployment-structure.xml @@ -4,6 +4,7 @@ + \ No newline at end of file diff --git a/examples/demo-template/third-party/src/main/java/org/keycloak/example/oauth/ProductDatabaseClient.java b/examples/demo-template/third-party/src/main/java/org/keycloak/example/oauth/ProductDatabaseClient.java index 3f69ef91f1..e47716b616 100755 --- a/examples/demo-template/third-party/src/main/java/org/keycloak/example/oauth/ProductDatabaseClient.java +++ b/examples/demo-template/third-party/src/main/java/org/keycloak/example/oauth/ProductDatabaseClient.java @@ -4,6 +4,7 @@ import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.DefaultHttpClient; import org.keycloak.adapters.ServerRequest; import org.keycloak.representations.AccessTokenResponse; import org.keycloak.servlet.ServletOAuthClient; @@ -76,7 +77,7 @@ public class ProductDatabaseClient { // and obtain the ServletOAuthClient. I actually suggest downloading the ServletOAuthClient code // and take a look how it works. You can also take a look at third-party-cdi example ServletOAuthClient oAuthClient = (ServletOAuthClient) request.getServletContext().getAttribute(ServletOAuthClient.class.getName()); - HttpClient client = oAuthClient.getClient(); + HttpClient client = new DefaultHttpClient(); HttpGet get = new HttpGet(getBaseUrl(oAuthClient, request) + "/database/products"); get.addHeader("Authorization", "Bearer " + accessToken); diff --git a/integration/servlet-oauth-client/src/main/java/org/keycloak/servlet/ServletOAuthClient.java b/integration/servlet-oauth-client/src/main/java/org/keycloak/servlet/ServletOAuthClient.java index ad6c327a94..668bb02d3d 100755 --- a/integration/servlet-oauth-client/src/main/java/org/keycloak/servlet/ServletOAuthClient.java +++ b/integration/servlet-oauth-client/src/main/java/org/keycloak/servlet/ServletOAuthClient.java @@ -3,10 +3,12 @@ package org.keycloak.servlet; import org.apache.http.client.HttpClient; import org.keycloak.AbstractOAuthClient; import org.keycloak.OAuth2Constants; +import org.keycloak.adapters.HttpClientBuilder; import org.keycloak.adapters.ServerRequest; import org.keycloak.jose.jws.JWSInput; import org.keycloak.representations.AccessTokenResponse; import org.keycloak.representations.IDToken; +import org.keycloak.representations.adapters.config.AdapterConfig; import org.keycloak.util.KeycloakUriBuilder; import org.keycloak.util.UriUtils; @@ -22,8 +24,10 @@ import java.net.URI; */ public class ServletOAuthClient extends AbstractOAuthClient { protected HttpClient client; + protected AdapterConfig adapterConfig; public void start() { + client = new HttpClientBuilder().build(adapterConfig); } /** @@ -32,13 +36,6 @@ public class ServletOAuthClient extends AbstractOAuthClient { public void stop() { client.getConnectionManager().shutdown(); } - public HttpClient getClient() { - return client; - } - - public void setClient(HttpClient client) { - this.client = client; - } private AccessTokenResponse resolveBearerToken(HttpServletRequest request, String redirectUri, String code) throws IOException, ServerRequest.HttpFailure { // Don't send sessionId in oauth clients for now @@ -171,4 +168,7 @@ public class ServletOAuthClient extends AbstractOAuthClient { } } + public void setAdapterConfig(AdapterConfig adapterConfig) { + this.adapterConfig = adapterConfig; + } } diff --git a/integration/servlet-oauth-client/src/main/java/org/keycloak/servlet/ServletOAuthClientBuilder.java b/integration/servlet-oauth-client/src/main/java/org/keycloak/servlet/ServletOAuthClientBuilder.java index d642e5c78b..d650e93b4a 100755 --- a/integration/servlet-oauth-client/src/main/java/org/keycloak/servlet/ServletOAuthClientBuilder.java +++ b/integration/servlet-oauth-client/src/main/java/org/keycloak/servlet/ServletOAuthClientBuilder.java @@ -42,8 +42,7 @@ public class ServletOAuthClientBuilder { public static void build(AdapterConfig adapterConfig, ServletOAuthClient oauthClient) { - HttpClient client = new HttpClientBuilder().build(adapterConfig); - oauthClient.setClient(client); + oauthClient.setAdapterConfig(adapterConfig); oauthClient.setClientId(adapterConfig.getResource()); oauthClient.setPublicClient(adapterConfig.isPublicClient()); oauthClient.setCredentials(adapterConfig.getCredentials());