From 0042726dd8f93107cfa697bd5b5dda9fc35e4d75 Mon Sep 17 00:00:00 2001 From: Sebastian Laskawiec Date: Tue, 9 Apr 2019 11:51:18 +0200 Subject: [PATCH] KEYCLOAK-9601 KEYCLOAK-9602 Jetty 8.1 and 9.1 removal Co-Authored-By: mhajas --- adapters/oidc/jetty/jetty-core/pom.xml | 6 +- adapters/oidc/jetty/jetty8.1/pom.xml | 150 --------------- .../adapters/jetty/Jetty81SessionManager.java | 40 ---- .../jetty/JettyAdapterSessionStore.java | 111 ----------- .../jetty/KeycloakJettyAuthenticator.java | 69 ------- adapters/oidc/jetty/jetty9.1/pom.xml | 168 ---------------- .../jetty/Jetty91RequestAuthenticator.java | 47 ----- .../adapters/jetty/Jetty91SessionManager.java | 40 ---- .../jetty/JettyAdapterSessionStore.java | 111 ----------- .../jetty/KeycloakJettyAuthenticator.java | 78 -------- adapters/oidc/jetty/pom.xml | 2 - adapters/saml/jetty/jetty8.1/pom.xml | 147 -------------- .../saml/jetty/Jetty8SessionManager.java | 40 ---- .../saml/jetty/JettyAdapterSessionStore.java | 111 ----------- .../saml/jetty/KeycloakSamlAuthenticator.java | 67 ------- adapters/saml/jetty/jetty9.1/pom.xml | 162 ---------------- .../saml/jetty/Jetty9SamlSessionStore.java | 44 ----- .../saml/jetty/Jetty9SessionManager.java | 40 ---- .../saml/jetty/JettyAdapterSessionStore.java | 111 ----------- .../saml/jetty/KeycloakSamlAuthenticator.java | 76 -------- adapters/saml/jetty/pom.xml | 2 - boms/adapter/pom.xml | 10 - .../adapters/fuse-adapter-zip/pom.xml | 10 - .../adapters/jetty81-adapter-zip/assembly.xml | 43 ----- .../adapters/jetty81-adapter-zip/pom.xml | 68 ------- .../adapters/jetty91-adapter-zip/assembly.xml | 56 ------ .../adapters/jetty91-adapter-zip/keycloak.mod | 28 --- .../adapters/jetty91-adapter-zip/pom.xml | 68 ------- .../features/src/main/resources/features.xml | 9 - distribution/adapters/pom.xml | 2 - .../downloads/src/main/resources/files | 3 - .../jetty81-adapter-zip/assembly.xml | 43 ----- .../saml-adapters/jetty81-adapter-zip/pom.xml | 68 ------- .../jetty91-adapter-zip/assembly.xml | 56 ------ .../jetty91-adapter-zip/keycloak.mod | 28 --- .../saml-adapters/jetty91-adapter-zip/pom.xml | 68 ------- distribution/saml-adapters/pom.xml | 3 - pom.xml | 42 +--- .../integration-arquillian/HOW-TO-RUN.md | 3 +- .../arquillian/jetty/JettyAppProvider.java | 180 +----------------- .../JettyAppServerArquillianExtension.java | 2 - .../jetty/JettyAppServerConfiguration.java | 3 +- .../test-apps/spring-boot-adapter/pom.xml | 29 --- 43 files changed, 11 insertions(+), 2433 deletions(-) delete mode 100755 adapters/oidc/jetty/jetty8.1/pom.xml delete mode 100755 adapters/oidc/jetty/jetty8.1/src/main/java/org/keycloak/adapters/jetty/Jetty81SessionManager.java delete mode 100755 adapters/oidc/jetty/jetty8.1/src/main/java/org/keycloak/adapters/jetty/JettyAdapterSessionStore.java delete mode 100755 adapters/oidc/jetty/jetty8.1/src/main/java/org/keycloak/adapters/jetty/KeycloakJettyAuthenticator.java delete mode 100755 adapters/oidc/jetty/jetty9.1/pom.xml delete mode 100755 adapters/oidc/jetty/jetty9.1/src/main/java/org/keycloak/adapters/jetty/Jetty91RequestAuthenticator.java delete mode 100755 adapters/oidc/jetty/jetty9.1/src/main/java/org/keycloak/adapters/jetty/Jetty91SessionManager.java delete mode 100755 adapters/oidc/jetty/jetty9.1/src/main/java/org/keycloak/adapters/jetty/JettyAdapterSessionStore.java delete mode 100755 adapters/oidc/jetty/jetty9.1/src/main/java/org/keycloak/adapters/jetty/KeycloakJettyAuthenticator.java delete mode 100755 adapters/saml/jetty/jetty8.1/pom.xml delete mode 100755 adapters/saml/jetty/jetty8.1/src/main/java/org/keycloak/adapters/saml/jetty/Jetty8SessionManager.java delete mode 100755 adapters/saml/jetty/jetty8.1/src/main/java/org/keycloak/adapters/saml/jetty/JettyAdapterSessionStore.java delete mode 100755 adapters/saml/jetty/jetty8.1/src/main/java/org/keycloak/adapters/saml/jetty/KeycloakSamlAuthenticator.java delete mode 100755 adapters/saml/jetty/jetty9.1/pom.xml delete mode 100755 adapters/saml/jetty/jetty9.1/src/main/java/org/keycloak/adapters/saml/jetty/Jetty9SamlSessionStore.java delete mode 100755 adapters/saml/jetty/jetty9.1/src/main/java/org/keycloak/adapters/saml/jetty/Jetty9SessionManager.java delete mode 100755 adapters/saml/jetty/jetty9.1/src/main/java/org/keycloak/adapters/saml/jetty/JettyAdapterSessionStore.java delete mode 100755 adapters/saml/jetty/jetty9.1/src/main/java/org/keycloak/adapters/saml/jetty/KeycloakSamlAuthenticator.java delete mode 100755 distribution/adapters/jetty81-adapter-zip/assembly.xml delete mode 100755 distribution/adapters/jetty81-adapter-zip/pom.xml delete mode 100755 distribution/adapters/jetty91-adapter-zip/assembly.xml delete mode 100755 distribution/adapters/jetty91-adapter-zip/keycloak.mod delete mode 100755 distribution/adapters/jetty91-adapter-zip/pom.xml delete mode 100755 distribution/saml-adapters/jetty81-adapter-zip/assembly.xml delete mode 100755 distribution/saml-adapters/jetty81-adapter-zip/pom.xml delete mode 100755 distribution/saml-adapters/jetty91-adapter-zip/assembly.xml delete mode 100755 distribution/saml-adapters/jetty91-adapter-zip/keycloak.mod delete mode 100755 distribution/saml-adapters/jetty91-adapter-zip/pom.xml diff --git a/adapters/oidc/jetty/jetty-core/pom.xml b/adapters/oidc/jetty/jetty-core/pom.xml index 3792cd1cf17..09d21c038a1 100755 --- a/adapters/oidc/jetty/jetty-core/pom.xml +++ b/adapters/oidc/jetty/jetty-core/pom.xml @@ -88,21 +88,21 @@ org.eclipse.jetty jetty-server - ${jetty81.version} + ${jetty92.version} provided org.eclipse.jetty jetty-util - ${jetty81.version} + ${jetty92.version} provided org.eclipse.jetty jetty-security - ${jetty81.version} + ${jetty92.version} provided diff --git a/adapters/oidc/jetty/jetty8.1/pom.xml b/adapters/oidc/jetty/jetty8.1/pom.xml deleted file mode 100755 index 9b61b51f550..00000000000 --- a/adapters/oidc/jetty/jetty8.1/pom.xml +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - keycloak-parent - org.keycloak - 6.0.0-SNAPSHOT - ../../../../pom.xml - - 4.0.0 - - keycloak-jetty81-adapter - Keycloak Jetty 8.1.x Integration - - 1.7 - 1.7 - - org.keycloak.adapters.jetty.* - - - javax.servlet.*;version="[2.5,4)";resolution:=optional, - org.keycloak.*;version="${project.version}", - *;resolution:=optional - - - - - - - org.jboss.logging - jboss-logging - - - org.keycloak - keycloak-core - - - org.keycloak - keycloak-adapter-core - - - org.keycloak - keycloak-adapter-spi - - - org.keycloak - keycloak-jetty-core - - - org.apache.httpcomponents - httpclient - - - org.bouncycastle - bcprov-jdk15on - - - com.fasterxml.jackson.core - jackson-core - - - com.fasterxml.jackson.core - jackson-databind - - - com.fasterxml.jackson.core - jackson-annotations - - - org.eclipse.jetty - jetty-server - ${jetty81.version} - provided - - - - org.eclipse.jetty - jetty-util - ${jetty81.version} - provided - - - - org.eclipse.jetty - jetty-security - ${jetty81.version} - provided - - - - junit - junit - test - - - - - - - maven-jar-plugin - - - ${project.build.outputDirectory}/META-INF/MANIFEST.MF - - - - - org.apache.felix - maven-bundle-plugin - true - - - bundle-manifest - process-classes - - manifest - - - - - - . - ${project.name} - ${project.groupId}.${project.artifactId} - ${keycloak.osgi.import} - ${keycloak.osgi.export} - - - - - - - diff --git a/adapters/oidc/jetty/jetty8.1/src/main/java/org/keycloak/adapters/jetty/Jetty81SessionManager.java b/adapters/oidc/jetty/jetty8.1/src/main/java/org/keycloak/adapters/jetty/Jetty81SessionManager.java deleted file mode 100755 index 1f71df1b534..00000000000 --- a/adapters/oidc/jetty/jetty8.1/src/main/java/org/keycloak/adapters/jetty/Jetty81SessionManager.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.keycloak.adapters.jetty; - -import org.eclipse.jetty.server.SessionManager; -import org.keycloak.adapters.jetty.spi.JettySessionManager; - -import javax.servlet.http.HttpSession; - -/** - * @author Bill Burke - * @version $Revision: 1 $ - */ -public class Jetty81SessionManager implements JettySessionManager { - protected SessionManager sessionManager; - - public Jetty81SessionManager(SessionManager sessionManager) { - this.sessionManager = sessionManager; - } - - @Override - public HttpSession getHttpSession(String id) { - return sessionManager.getHttpSession(id); - } -} diff --git a/adapters/oidc/jetty/jetty8.1/src/main/java/org/keycloak/adapters/jetty/JettyAdapterSessionStore.java b/adapters/oidc/jetty/jetty8.1/src/main/java/org/keycloak/adapters/jetty/JettyAdapterSessionStore.java deleted file mode 100755 index 58d3fcb55c7..00000000000 --- a/adapters/oidc/jetty/jetty8.1/src/main/java/org/keycloak/adapters/jetty/JettyAdapterSessionStore.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.keycloak.adapters.jetty; - -import org.eclipse.jetty.security.authentication.FormAuthenticator; -import org.eclipse.jetty.server.Request; -import org.eclipse.jetty.util.MultiMap; -import org.keycloak.adapters.jetty.spi.JettyHttpFacade; -import org.keycloak.adapters.spi.AdapterSessionStore; -import org.keycloak.common.util.MultivaluedHashMap; - -import javax.servlet.http.HttpSession; - -/** - * @author Bill Burke - * @version $Revision: 1 $ - */ -public class JettyAdapterSessionStore implements AdapterSessionStore { - public static final String CACHED_FORM_PARAMETERS = "__CACHED_FORM_PARAMETERS"; - protected Request myRequest; - - public JettyAdapterSessionStore(Request request) { - this.myRequest = request; // for IDE/compilation purposes - } - - protected MultiMap extractFormParameters(Request base_request) { - MultiMap formParameters = new MultiMap(); - base_request.extractParameters(); - return base_request.getParameters(); - } - protected void restoreFormParameters(MultiMap j_post, Request base_request) { - base_request.setParameters(j_post); - } - - public boolean restoreRequest() { - HttpSession session = myRequest.getSession(false); - if (session == null) return false; - synchronized (session) { - String j_uri = (String) session.getAttribute(FormAuthenticator.__J_URI); - if (j_uri != null) { - // check if the request is for the same url as the original and restore - // params if it was a post - StringBuffer buf = myRequest.getRequestURL(); - if (myRequest.getQueryString() != null) - buf.append("?").append(myRequest.getQueryString()); - if (j_uri.equals(buf.toString())) { - String method = (String)session.getAttribute(JettyHttpFacade.__J_METHOD); - myRequest.setMethod(method); - MultivaluedHashMap j_post = (MultivaluedHashMap) session.getAttribute(CACHED_FORM_PARAMETERS); - if (j_post != null) { - myRequest.setContentType("application/x-www-form-urlencoded"); - MultiMap map = new MultiMap(); - for (String key : j_post.keySet()) { - for (String val : j_post.getList(key)) { - map.add(key, val); - } - } - restoreFormParameters(map, myRequest); - } - session.removeAttribute(FormAuthenticator.__J_URI); - session.removeAttribute(JettyHttpFacade.__J_METHOD); - session.removeAttribute(FormAuthenticator.__J_POST); - } - return true; - } - } - return false; - } - - public void saveRequest() { - // remember the current URI - HttpSession session = myRequest.getSession(); - synchronized (session) { - // But only if it is not set already, or we save every uri that leads to a login form redirect - if (session.getAttribute(FormAuthenticator.__J_URI) == null) { - StringBuffer buf = myRequest.getRequestURL(); - if (myRequest.getQueryString() != null) - buf.append("?").append(myRequest.getQueryString()); - session.setAttribute(FormAuthenticator.__J_URI, buf.toString()); - session.setAttribute(JettyHttpFacade.__J_METHOD, myRequest.getMethod()); - - if ("application/x-www-form-urlencoded".equals(myRequest.getContentType()) && "POST".equalsIgnoreCase(myRequest.getMethod())) { - MultiMap formParameters = extractFormParameters(myRequest); - MultivaluedHashMap map = new MultivaluedHashMap(); - for (String key : formParameters.keySet()) { - for (Object value : formParameters.getValues(key)) { - map.add(key, (String) value); - } - } - session.setAttribute(CACHED_FORM_PARAMETERS, map); - } - } - } - } - -} diff --git a/adapters/oidc/jetty/jetty8.1/src/main/java/org/keycloak/adapters/jetty/KeycloakJettyAuthenticator.java b/adapters/oidc/jetty/jetty8.1/src/main/java/org/keycloak/adapters/jetty/KeycloakJettyAuthenticator.java deleted file mode 100755 index 2130cea2242..00000000000 --- a/adapters/oidc/jetty/jetty8.1/src/main/java/org/keycloak/adapters/jetty/KeycloakJettyAuthenticator.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.keycloak.adapters.jetty; - -import org.eclipse.jetty.server.AbstractHttpConnection; -import org.eclipse.jetty.server.Authentication; -import org.eclipse.jetty.server.Request; -import org.eclipse.jetty.server.UserIdentity; -import org.keycloak.adapters.AdapterTokenStore; -import org.keycloak.adapters.KeycloakDeployment; -import org.keycloak.adapters.jetty.core.AbstractKeycloakJettyAuthenticator; -import org.keycloak.adapters.jetty.core.JettySessionTokenStore; -import org.keycloak.adapters.jetty.spi.JettyUserSessionManagement; - -import javax.servlet.ServletRequest; - -/** - * @author Bill Burke - * @version $Revision: 1 $ - */ -public class KeycloakJettyAuthenticator extends AbstractKeycloakJettyAuthenticator { - - public KeycloakJettyAuthenticator() { - super(); - } - - - @Override - public AdapterTokenStore createSessionTokenStore(Request request, KeycloakDeployment resolvedDeployment) { - return new JettySessionTokenStore(request, resolvedDeployment, new JettyAdapterSessionStore(request)); - } - - @Override - public JettyUserSessionManagement createSessionManagement(Request request) { - return new JettyUserSessionManagement(new Jetty81SessionManager(request.getSessionManager())); - } - - @Override - protected Request resolveRequest(ServletRequest req) { - return (req instanceof Request)?(Request)req: AbstractHttpConnection.getCurrentConnection().getRequest(); - } - - @Override - protected Authentication createAuthentication(UserIdentity userIdentity, Request request) { - return new KeycloakAuthentication(getAuthMethod(), userIdentity) { - @Override - public void logout() { - logoutCurrent(AbstractHttpConnection.getCurrentConnection().getRequest()); - } - }; - } - - -} diff --git a/adapters/oidc/jetty/jetty9.1/pom.xml b/adapters/oidc/jetty/jetty9.1/pom.xml deleted file mode 100755 index 2712c730935..00000000000 --- a/adapters/oidc/jetty/jetty9.1/pom.xml +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - keycloak-parent - org.keycloak - 6.0.0-SNAPSHOT - ../../../../pom.xml - - 4.0.0 - - keycloak-jetty91-adapter - Keycloak Jetty 9.1.x Integration - - - org.keycloak.adapters.jetty.* - - - org.eclipse.jetty.*;version="[9.1,9.2)";resolution:=optional, - javax.servlet.*;version="[3.0,4)";resolution:=optional, - org.keycloak.*;version="${project.version}", - *;resolution:=optional - - - - - - - org.jboss.logging - jboss-logging - - - org.keycloak - keycloak-core - - - org.keycloak - keycloak-adapter-core - - - org.keycloak - keycloak-jetty-core - - - org.eclipse.jetty - jetty-server - - - org.eclipse.jetty - jetty-util - - - org.eclipse.jetty - jetty-security - - - - - org.apache.httpcomponents - httpclient - - - org.bouncycastle - bcprov-jdk15on - - - com.fasterxml.jackson.core - jackson-core - - - com.fasterxml.jackson.core - jackson-databind - - - com.fasterxml.jackson.core - jackson-annotations - - - org.eclipse.jetty - jetty-server - ${jetty91.version} - provided - - - - org.eclipse.jetty - jetty-util - ${jetty91.version} - provided - - - - org.eclipse.jetty - jetty-security - ${jetty91.version} - provided - - - - junit - junit - test - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - 1.6 - 1.6 - - - - - - maven-jar-plugin - - - ${project.build.outputDirectory}/META-INF/MANIFEST.MF - - - - - org.apache.felix - maven-bundle-plugin - true - - - bundle-manifest - process-classes - - manifest - - - - - - . - ${project.name} - ${project.groupId}.${project.artifactId} - ${keycloak.osgi.import} - ${keycloak.osgi.export} - - - - - - - diff --git a/adapters/oidc/jetty/jetty9.1/src/main/java/org/keycloak/adapters/jetty/Jetty91RequestAuthenticator.java b/adapters/oidc/jetty/jetty9.1/src/main/java/org/keycloak/adapters/jetty/Jetty91RequestAuthenticator.java deleted file mode 100755 index bee3a1d6ebe..00000000000 --- a/adapters/oidc/jetty/jetty9.1/src/main/java/org/keycloak/adapters/jetty/Jetty91RequestAuthenticator.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.keycloak.adapters.jetty; - -import org.eclipse.jetty.server.Request; -import org.keycloak.adapters.AdapterTokenStore; -import org.keycloak.adapters.KeycloakDeployment; -import org.keycloak.adapters.jetty.core.JettyRequestAuthenticator; -import org.keycloak.adapters.spi.HttpFacade; - -import javax.servlet.http.HttpSession; - -/** - * @author Bill Burke - * @version $Revision: 1 $ - */ -public class Jetty91RequestAuthenticator extends JettyRequestAuthenticator { - public Jetty91RequestAuthenticator(HttpFacade facade, KeycloakDeployment deployment, AdapterTokenStore tokenStore, int sslRedirectPort, Request request) { - super(facade, deployment, tokenStore, sslRedirectPort, request); - } - - @Override - protected String changeHttpSessionId(boolean create) { - Request request = this.request; - HttpSession session = request.getSession(false); - if (session == null) { - return request.getSession(true).getId(); - } - if (!deployment.isTurnOffChangeSessionIdOnLogin()) return request.changeSessionId(); - else return session.getId(); - } -} diff --git a/adapters/oidc/jetty/jetty9.1/src/main/java/org/keycloak/adapters/jetty/Jetty91SessionManager.java b/adapters/oidc/jetty/jetty9.1/src/main/java/org/keycloak/adapters/jetty/Jetty91SessionManager.java deleted file mode 100755 index d0df0a134c8..00000000000 --- a/adapters/oidc/jetty/jetty9.1/src/main/java/org/keycloak/adapters/jetty/Jetty91SessionManager.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.keycloak.adapters.jetty; - -import org.eclipse.jetty.server.SessionManager; -import org.keycloak.adapters.jetty.spi.JettySessionManager; - -import javax.servlet.http.HttpSession; - -/** - * @author Bill Burke - * @version $Revision: 1 $ - */ -public class Jetty91SessionManager implements JettySessionManager { - protected SessionManager sessionManager; - - public Jetty91SessionManager(SessionManager sessionManager) { - this.sessionManager = sessionManager; - } - - @Override - public HttpSession getHttpSession(String id) { - return sessionManager.getHttpSession(id); - } -} diff --git a/adapters/oidc/jetty/jetty9.1/src/main/java/org/keycloak/adapters/jetty/JettyAdapterSessionStore.java b/adapters/oidc/jetty/jetty9.1/src/main/java/org/keycloak/adapters/jetty/JettyAdapterSessionStore.java deleted file mode 100755 index 87fcd308b91..00000000000 --- a/adapters/oidc/jetty/jetty9.1/src/main/java/org/keycloak/adapters/jetty/JettyAdapterSessionStore.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.keycloak.adapters.jetty; - -import org.eclipse.jetty.http.HttpMethod; -import org.eclipse.jetty.security.authentication.FormAuthenticator; -import org.eclipse.jetty.server.Request; -import org.eclipse.jetty.util.MultiMap; -import org.keycloak.adapters.jetty.spi.JettyHttpFacade; -import org.keycloak.adapters.spi.AdapterSessionStore; -import org.keycloak.common.util.MultivaluedHashMap; - -import javax.servlet.http.HttpSession; - -/** - * @author Bill Burke - * @version $Revision: 1 $ - */ -public class JettyAdapterSessionStore implements AdapterSessionStore { - public static final String CACHED_FORM_PARAMETERS = "__CACHED_FORM_PARAMETERS"; - protected Request myRequest; - - public JettyAdapterSessionStore(Request request) { - this.myRequest = request; // for IDE/compilation purposes - } - - protected MultiMap extractFormParameters(Request base_request) { - base_request.extractParameters(); - return base_request.getParameters(); - } - protected void restoreFormParameters(MultiMap j_post, Request base_request) { - base_request.setParameters(j_post); - } - - public boolean restoreRequest() { - HttpSession session = myRequest.getSession(false); - if (session == null) return false; - synchronized (session) { - String j_uri = (String) session.getAttribute(FormAuthenticator.__J_URI); - if (j_uri != null) { - // check if the request is for the same url as the original and restore - // params if it was a post - StringBuffer buf = myRequest.getRequestURL(); - if (myRequest.getQueryString() != null) - buf.append("?").append(myRequest.getQueryString()); - if (j_uri.equals(buf.toString())) { - String method = (String)session.getAttribute(JettyHttpFacade.__J_METHOD); - myRequest.setMethod(HttpMethod.valueOf(method.toUpperCase()), method); - MultivaluedHashMap j_post = (MultivaluedHashMap) session.getAttribute(CACHED_FORM_PARAMETERS); - if (j_post != null) { - myRequest.setContentType("application/x-www-form-urlencoded"); - MultiMap map = new MultiMap(); - for (String key : j_post.keySet()) { - for (String val : j_post.getList(key)) { - map.add(key, val); - } - } - restoreFormParameters(map, myRequest); - } - session.removeAttribute(FormAuthenticator.__J_URI); - session.removeAttribute(JettyHttpFacade.__J_METHOD); - session.removeAttribute(FormAuthenticator.__J_POST); - } - return true; - } - } - return false; - } - - public void saveRequest() { - // remember the current URI - HttpSession session = myRequest.getSession(); - synchronized (session) { - // But only if it is not set already, or we save every uri that leads to a login form redirect - if (session.getAttribute(FormAuthenticator.__J_URI) == null) { - StringBuffer buf = myRequest.getRequestURL(); - if (myRequest.getQueryString() != null) - buf.append("?").append(myRequest.getQueryString()); - session.setAttribute(FormAuthenticator.__J_URI, buf.toString()); - session.setAttribute(JettyHttpFacade.__J_METHOD, myRequest.getMethod()); - - if ("application/x-www-form-urlencoded".equals(myRequest.getContentType()) && "POST".equalsIgnoreCase(myRequest.getMethod())) { - MultiMap formParameters = extractFormParameters(myRequest); - MultivaluedHashMap map = new MultivaluedHashMap(); - for (String key : formParameters.keySet()) { - for (Object value : formParameters.getValues(key)) { - map.add(key, (String) value); - } - } - session.setAttribute(CACHED_FORM_PARAMETERS, map); - } - } - } - } - -} diff --git a/adapters/oidc/jetty/jetty9.1/src/main/java/org/keycloak/adapters/jetty/KeycloakJettyAuthenticator.java b/adapters/oidc/jetty/jetty9.1/src/main/java/org/keycloak/adapters/jetty/KeycloakJettyAuthenticator.java deleted file mode 100755 index c08f91fddab..00000000000 --- a/adapters/oidc/jetty/jetty9.1/src/main/java/org/keycloak/adapters/jetty/KeycloakJettyAuthenticator.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.keycloak.adapters.jetty; - -import org.eclipse.jetty.server.Authentication; -import org.eclipse.jetty.server.HttpChannel; -import org.eclipse.jetty.server.Request; -import org.eclipse.jetty.server.UserIdentity; -import org.keycloak.adapters.AdapterTokenStore; -import org.keycloak.adapters.KeycloakDeployment; -import org.keycloak.adapters.jetty.core.AbstractKeycloakJettyAuthenticator; -import org.keycloak.adapters.jetty.core.JettyRequestAuthenticator; -import org.keycloak.adapters.jetty.core.JettySessionTokenStore; -import org.keycloak.adapters.jetty.spi.JettyHttpFacade; -import org.keycloak.adapters.jetty.spi.JettyUserSessionManagement; - -import javax.servlet.ServletRequest; - -/** - * @author Bill Burke - * @version $Revision: 1 $ - */ -public class KeycloakJettyAuthenticator extends AbstractKeycloakJettyAuthenticator { - - public KeycloakJettyAuthenticator() { - super(); - } - - - @Override - public AdapterTokenStore createSessionTokenStore(Request request, KeycloakDeployment resolvedDeployment) { - return new JettySessionTokenStore(request, resolvedDeployment, new JettyAdapterSessionStore(request)); - } - - @Override - public JettyUserSessionManagement createSessionManagement(Request request) { - return new JettyUserSessionManagement(new Jetty91SessionManager(request.getSessionManager())); - } - - @Override - protected Request resolveRequest(ServletRequest req) { - return (req instanceof Request) ? (Request)req : HttpChannel.getCurrentHttpChannel().getRequest(); - } - - @Override - protected Authentication createAuthentication(UserIdentity userIdentity, Request request) { - return new KeycloakAuthentication(getAuthMethod(), userIdentity) { - @Override - public void logout() { - logoutCurrent(HttpChannel.getCurrentHttpChannel().getRequest()); - } - }; - } - - @Override - protected JettyRequestAuthenticator createRequestAuthenticator(Request request, JettyHttpFacade facade, - KeycloakDeployment deployment, AdapterTokenStore tokenStore) { - return new Jetty91RequestAuthenticator(facade, deployment, tokenStore, -1, request); - } - - - -} diff --git a/adapters/oidc/jetty/pom.xml b/adapters/oidc/jetty/pom.xml index 854fcaf4b09..1560cc10ab0 100755 --- a/adapters/oidc/jetty/pom.xml +++ b/adapters/oidc/jetty/pom.xml @@ -32,8 +32,6 @@ jetty-core - jetty8.1 - jetty9.1 jetty9.2 jetty9.3 diff --git a/adapters/saml/jetty/jetty8.1/pom.xml b/adapters/saml/jetty/jetty8.1/pom.xml deleted file mode 100755 index 27b89f66cd5..00000000000 --- a/adapters/saml/jetty/jetty8.1/pom.xml +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - keycloak-parent - org.keycloak - 6.0.0-SNAPSHOT - ../../../../pom.xml - - 4.0.0 - - keycloak-saml-jetty81-adapter - Keycloak Jetty 8.1.x SAML Integration - - 8.1.17.v20150415 - - org.keycloak.adapters.jetty.* - - - javax.servlet.*;version="[2.5,4)";resolution:=optional, - org.keycloak.*;version="${project.version}", - *;resolution:=optional - - - - - - - org.jboss.logging - jboss-logging - ${jboss.logging.version} - - - org.keycloak - keycloak-common - - - org.keycloak - keycloak-saml-adapter-api-public - - - org.keycloak - keycloak-saml-adapter-core - - - org.keycloak - keycloak-adapter-spi - - - org.keycloak - keycloak-saml-jetty-adapter-core - - - org.bouncycastle - bcprov-jdk15on - - - org.eclipse.jetty - jetty-server - ${jetty9.version} - provided - - - - org.eclipse.jetty - jetty-util - ${jetty9.version} - provided - - - - org.eclipse.jetty - jetty-security - ${jetty9.version} - provided - - - - junit - junit - test - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - 1.6 - 1.6 - - - - - - maven-jar-plugin - - - ${project.build.outputDirectory}/META-INF/MANIFEST.MF - - - - - org.apache.felix - maven-bundle-plugin - true - - - bundle-manifest - process-classes - - manifest - - - - - - . - ${project.name} - ${project.groupId}.${project.artifactId} - ${keycloak.osgi.import} - ${keycloak.osgi.export} - - - - - - - diff --git a/adapters/saml/jetty/jetty8.1/src/main/java/org/keycloak/adapters/saml/jetty/Jetty8SessionManager.java b/adapters/saml/jetty/jetty8.1/src/main/java/org/keycloak/adapters/saml/jetty/Jetty8SessionManager.java deleted file mode 100755 index 0ca8a212493..00000000000 --- a/adapters/saml/jetty/jetty8.1/src/main/java/org/keycloak/adapters/saml/jetty/Jetty8SessionManager.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.keycloak.adapters.saml.jetty; - -import org.eclipse.jetty.server.SessionManager; -import org.keycloak.adapters.jetty.spi.JettySessionManager; - -import javax.servlet.http.HttpSession; - -/** - * @author Bill Burke - * @version $Revision: 1 $ - */ -public class Jetty8SessionManager implements JettySessionManager { - protected SessionManager sessionManager; - - public Jetty8SessionManager(SessionManager sessionManager) { - this.sessionManager = sessionManager; - } - - @Override - public HttpSession getHttpSession(String id) { - return sessionManager.getHttpSession(id); - } -} diff --git a/adapters/saml/jetty/jetty8.1/src/main/java/org/keycloak/adapters/saml/jetty/JettyAdapterSessionStore.java b/adapters/saml/jetty/jetty8.1/src/main/java/org/keycloak/adapters/saml/jetty/JettyAdapterSessionStore.java deleted file mode 100755 index c93a1ae5fae..00000000000 --- a/adapters/saml/jetty/jetty8.1/src/main/java/org/keycloak/adapters/saml/jetty/JettyAdapterSessionStore.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.keycloak.adapters.saml.jetty; - -import org.eclipse.jetty.security.authentication.FormAuthenticator; -import org.eclipse.jetty.server.Request; -import org.eclipse.jetty.util.MultiMap; -import org.keycloak.adapters.jetty.spi.JettyHttpFacade; -import org.keycloak.adapters.spi.AdapterSessionStore; -import org.keycloak.common.util.MultivaluedHashMap; - -import javax.servlet.http.HttpSession; - -/** - * @author Bill Burke - * @version $Revision: 1 $ - */ -public class JettyAdapterSessionStore implements AdapterSessionStore { - public static final String CACHED_FORM_PARAMETERS = "__CACHED_FORM_PARAMETERS"; - protected Request myRequest; - - public JettyAdapterSessionStore(Request request) { - this.myRequest = request; // for IDE/compilation purposes - } - - protected MultiMap extractFormParameters(Request base_request) { - MultiMap formParameters = new MultiMap(); - base_request.extractParameters(); - return base_request.getParameters(); - } - protected void restoreFormParameters(MultiMap j_post, Request base_request) { - base_request.setParameters(j_post); - } - - public boolean restoreRequest() { - HttpSession session = myRequest.getSession(false); - if (session == null) return false; - synchronized (session) { - String j_uri = (String) session.getAttribute(FormAuthenticator.__J_URI); - if (j_uri != null) { - // check if the request is for the same url as the original and restore - // params if it was a post - StringBuffer buf = myRequest.getRequestURL(); - if (myRequest.getQueryString() != null) - buf.append("?").append(myRequest.getQueryString()); - if (j_uri.equals(buf.toString())) { - String method = (String)session.getAttribute(JettyHttpFacade.__J_METHOD); - myRequest.setMethod(method); - MultivaluedHashMap j_post = (MultivaluedHashMap) session.getAttribute(CACHED_FORM_PARAMETERS); - if (j_post != null) { - myRequest.setContentType("application/x-www-form-urlencoded"); - MultiMap map = new MultiMap(); - for (String key : j_post.keySet()) { - for (String val : j_post.getList(key)) { - map.add(key, val); - } - } - restoreFormParameters(map, myRequest); - } - session.removeAttribute(FormAuthenticator.__J_URI); - session.removeAttribute(JettyHttpFacade.__J_METHOD); - session.removeAttribute(FormAuthenticator.__J_POST); - } - return true; - } - } - return false; - } - - public void saveRequest() { - // remember the current URI - HttpSession session = myRequest.getSession(); - synchronized (session) { - // But only if it is not set already, or we save every uri that leads to a login form redirect - if (session.getAttribute(FormAuthenticator.__J_URI) == null) { - StringBuffer buf = myRequest.getRequestURL(); - if (myRequest.getQueryString() != null) - buf.append("?").append(myRequest.getQueryString()); - session.setAttribute(FormAuthenticator.__J_URI, buf.toString()); - session.setAttribute(JettyHttpFacade.__J_METHOD, myRequest.getMethod()); - - if ("application/x-www-form-urlencoded".equals(myRequest.getContentType()) && "POST".equalsIgnoreCase(myRequest.getMethod())) { - MultiMap formParameters = extractFormParameters(myRequest); - MultivaluedHashMap map = new MultivaluedHashMap(); - for (String key : formParameters.keySet()) { - for (Object value : formParameters.getValues(key)) { - map.add(key, (String) value); - } - } - session.setAttribute(CACHED_FORM_PARAMETERS, map); - } - } - } - } - -} diff --git a/adapters/saml/jetty/jetty8.1/src/main/java/org/keycloak/adapters/saml/jetty/KeycloakSamlAuthenticator.java b/adapters/saml/jetty/jetty8.1/src/main/java/org/keycloak/adapters/saml/jetty/KeycloakSamlAuthenticator.java deleted file mode 100755 index 381731b22a4..00000000000 --- a/adapters/saml/jetty/jetty8.1/src/main/java/org/keycloak/adapters/saml/jetty/KeycloakSamlAuthenticator.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.keycloak.adapters.saml.jetty; - -import org.eclipse.jetty.server.AbstractHttpConnection; -import org.eclipse.jetty.server.Authentication; -import org.eclipse.jetty.server.Request; -import org.eclipse.jetty.server.UserIdentity; -import org.keycloak.adapters.jetty.spi.JettyUserSessionManagement; -import org.keycloak.adapters.saml.SamlDeployment; -import org.keycloak.adapters.spi.AdapterSessionStore; - -import javax.servlet.ServletRequest; - -/** - * @author Bill Burke - * @version $Revision: 1 $ - */ -public class KeycloakSamlAuthenticator extends AbstractSamlAuthenticator { - - public KeycloakSamlAuthenticator() { - super(); - } - - - @Override - public AdapterSessionStore createSessionTokenStore(Request request, SamlDeployment resolvedDeployment) { - return new JettyAdapterSessionStore(request); - } - - @Override - public JettyUserSessionManagement createSessionManagement(Request request) { - return new JettyUserSessionManagement(new Jetty8SessionManager(request.getSessionManager())); - } - - @Override - protected Request resolveRequest(ServletRequest req) { - return (req instanceof Request)?(Request)req: AbstractHttpConnection.getCurrentConnection().getRequest(); - } - - @Override - public Authentication createAuthentication(UserIdentity userIdentity, Request request) { - return new KeycloakAuthentication(getAuthMethod(), userIdentity) { - @Override - public void logout() { - logoutCurrent(AbstractHttpConnection.getCurrentConnection().getRequest()); - } - }; - } - - -} diff --git a/adapters/saml/jetty/jetty9.1/pom.xml b/adapters/saml/jetty/jetty9.1/pom.xml deleted file mode 100755 index fd85c410e02..00000000000 --- a/adapters/saml/jetty/jetty9.1/pom.xml +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - keycloak-parent - org.keycloak - 6.0.0-SNAPSHOT - ../../../../pom.xml - - 4.0.0 - - keycloak-saml-jetty91-adapter - Keycloak Jetty 9.1.x SAML Integration - - 9.1.5.v20140505 - - org.keycloak.adapters.jetty.* - - - org.eclipse.jetty.*;version="[9.1,9.2)";resolution:=optional, - javax.servlet.*;version="[3.0,4)";resolution:=optional, - org.keycloak.*;version="${project.version}", - *;resolution:=optional - - - - - - - org.jboss.logging - jboss-logging - ${jboss.logging.version} - - - org.keycloak - keycloak-common - - - org.keycloak - keycloak-saml-adapter-api-public - - - org.keycloak - keycloak-saml-adapter-core - - - org.keycloak - keycloak-adapter-spi - - - org.keycloak - keycloak-saml-jetty-adapter-core - - - org.eclipse.jetty - jetty-server - - - org.eclipse.jetty - jetty-util - - - org.eclipse.jetty - jetty-security - - - - - org.bouncycastle - bcprov-jdk15on - - - org.eclipse.jetty - jetty-server - ${jetty9.version} - provided - - - - org.eclipse.jetty - jetty-util - ${jetty9.version} - provided - - - - org.eclipse.jetty - jetty-security - ${jetty9.version} - provided - - - - junit - junit - test - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - 1.6 - 1.6 - - - - - - maven-jar-plugin - - - ${project.build.outputDirectory}/META-INF/MANIFEST.MF - - - - - org.apache.felix - maven-bundle-plugin - true - - - bundle-manifest - process-classes - - manifest - - - - - - . - ${project.name} - ${project.groupId}.${project.artifactId} - ${keycloak.osgi.import} - ${keycloak.osgi.export} - - - - - - - diff --git a/adapters/saml/jetty/jetty9.1/src/main/java/org/keycloak/adapters/saml/jetty/Jetty9SamlSessionStore.java b/adapters/saml/jetty/jetty9.1/src/main/java/org/keycloak/adapters/saml/jetty/Jetty9SamlSessionStore.java deleted file mode 100755 index fa618cb5737..00000000000 --- a/adapters/saml/jetty/jetty9.1/src/main/java/org/keycloak/adapters/saml/jetty/Jetty9SamlSessionStore.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.keycloak.adapters.saml.jetty; - -import org.eclipse.jetty.server.Request; -import org.keycloak.adapters.jetty.spi.JettyUserSessionManagement; -import org.keycloak.adapters.saml.SamlDeployment; -import org.keycloak.adapters.spi.AdapterSessionStore; -import org.keycloak.adapters.spi.HttpFacade; -import org.keycloak.adapters.spi.SessionIdMapper; - -import javax.servlet.http.HttpSession; - -/** - * @author Bill Burke - * @version $Revision: 1 $ - */ -public class Jetty9SamlSessionStore extends JettySamlSessionStore { - public Jetty9SamlSessionStore(Request request, AdapterSessionStore sessionStore, HttpFacade facade, SessionIdMapper idMapper, JettyUserSessionManagement sessionManagement, SamlDeployment deployment) { - super(request, sessionStore, facade, idMapper, sessionManagement, deployment); - } - - @Override - protected String changeSessionId(HttpSession session) { - Request request = this.request; - if (!deployment.turnOffChangeSessionIdOnLogin()) return request.changeSessionId(); - else return session.getId(); - } -} diff --git a/adapters/saml/jetty/jetty9.1/src/main/java/org/keycloak/adapters/saml/jetty/Jetty9SessionManager.java b/adapters/saml/jetty/jetty9.1/src/main/java/org/keycloak/adapters/saml/jetty/Jetty9SessionManager.java deleted file mode 100755 index 7df883840ea..00000000000 --- a/adapters/saml/jetty/jetty9.1/src/main/java/org/keycloak/adapters/saml/jetty/Jetty9SessionManager.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.keycloak.adapters.saml.jetty; - -import org.eclipse.jetty.server.SessionManager; -import org.keycloak.adapters.jetty.spi.JettySessionManager; - -import javax.servlet.http.HttpSession; - -/** - * @author Bill Burke - * @version $Revision: 1 $ - */ -public class Jetty9SessionManager implements JettySessionManager { - protected SessionManager sessionManager; - - public Jetty9SessionManager(SessionManager sessionManager) { - this.sessionManager = sessionManager; - } - - @Override - public HttpSession getHttpSession(String id) { - return sessionManager.getHttpSession(id); - } -} diff --git a/adapters/saml/jetty/jetty9.1/src/main/java/org/keycloak/adapters/saml/jetty/JettyAdapterSessionStore.java b/adapters/saml/jetty/jetty9.1/src/main/java/org/keycloak/adapters/saml/jetty/JettyAdapterSessionStore.java deleted file mode 100755 index 13f82f76081..00000000000 --- a/adapters/saml/jetty/jetty9.1/src/main/java/org/keycloak/adapters/saml/jetty/JettyAdapterSessionStore.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.keycloak.adapters.saml.jetty; - -import org.eclipse.jetty.http.HttpMethod; -import org.eclipse.jetty.security.authentication.FormAuthenticator; -import org.eclipse.jetty.server.Request; -import org.eclipse.jetty.util.MultiMap; -import org.keycloak.adapters.jetty.spi.JettyHttpFacade; -import org.keycloak.adapters.spi.AdapterSessionStore; -import org.keycloak.common.util.MultivaluedHashMap; - -import javax.servlet.http.HttpSession; - -/** - * @author Bill Burke - * @version $Revision: 1 $ - */ -public class JettyAdapterSessionStore implements AdapterSessionStore { - public static final String CACHED_FORM_PARAMETERS = "__CACHED_FORM_PARAMETERS"; - protected Request myRequest; - - public JettyAdapterSessionStore(Request request) { - this.myRequest = request; // for IDE/compilation purposes - } - - protected MultiMap extractFormParameters(Request base_request) { - base_request.extractParameters(); - return base_request.getParameters(); - } - protected void restoreFormParameters(MultiMap j_post, Request base_request) { - base_request.setParameters(j_post); - } - - public boolean restoreRequest() { - HttpSession session = myRequest.getSession(false); - if (session == null) return false; - synchronized (session) { - String j_uri = (String) session.getAttribute(FormAuthenticator.__J_URI); - if (j_uri != null) { - // check if the request is for the same url as the original and restore - // params if it was a post - StringBuffer buf = myRequest.getRequestURL(); - if (myRequest.getQueryString() != null) - buf.append("?").append(myRequest.getQueryString()); - if (j_uri.equals(buf.toString())) { - String method = (String)session.getAttribute(JettyHttpFacade.__J_METHOD); - myRequest.setMethod(HttpMethod.valueOf(method.toUpperCase()), method); - MultivaluedHashMap j_post = (MultivaluedHashMap) session.getAttribute(CACHED_FORM_PARAMETERS); - if (j_post != null) { - myRequest.setContentType("application/x-www-form-urlencoded"); - MultiMap map = new MultiMap(); - for (String key : j_post.keySet()) { - for (String val : j_post.getList(key)) { - map.add(key, val); - } - } - restoreFormParameters(map, myRequest); - } - session.removeAttribute(FormAuthenticator.__J_URI); - session.removeAttribute(JettyHttpFacade.__J_METHOD); - session.removeAttribute(FormAuthenticator.__J_POST); - } - return true; - } - } - return false; - } - - public void saveRequest() { - // remember the current URI - HttpSession session = myRequest.getSession(); - synchronized (session) { - // But only if it is not set already, or we save every uri that leads to a login form redirect - if (session.getAttribute(FormAuthenticator.__J_URI) == null) { - StringBuffer buf = myRequest.getRequestURL(); - if (myRequest.getQueryString() != null) - buf.append("?").append(myRequest.getQueryString()); - session.setAttribute(FormAuthenticator.__J_URI, buf.toString()); - session.setAttribute(JettyHttpFacade.__J_METHOD, myRequest.getMethod()); - - if ("application/x-www-form-urlencoded".equals(myRequest.getContentType()) && "POST".equalsIgnoreCase(myRequest.getMethod())) { - MultiMap formParameters = extractFormParameters(myRequest); - MultivaluedHashMap map = new MultivaluedHashMap(); - for (String key : formParameters.keySet()) { - for (Object value : formParameters.getValues(key)) { - map.add(key, (String) value); - } - } - session.setAttribute(CACHED_FORM_PARAMETERS, map); - } - } - } - } - -} diff --git a/adapters/saml/jetty/jetty9.1/src/main/java/org/keycloak/adapters/saml/jetty/KeycloakSamlAuthenticator.java b/adapters/saml/jetty/jetty9.1/src/main/java/org/keycloak/adapters/saml/jetty/KeycloakSamlAuthenticator.java deleted file mode 100755 index 54b97a8047e..00000000000 --- a/adapters/saml/jetty/jetty9.1/src/main/java/org/keycloak/adapters/saml/jetty/KeycloakSamlAuthenticator.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.keycloak.adapters.saml.jetty; - -import org.eclipse.jetty.server.Authentication; -import org.eclipse.jetty.server.HttpChannel; -import org.eclipse.jetty.server.Request; -import org.eclipse.jetty.server.UserIdentity; -import org.keycloak.adapters.jetty.spi.JettyUserSessionManagement; -import org.keycloak.adapters.saml.SamlDeployment; -import org.keycloak.adapters.spi.AdapterSessionStore; -import org.keycloak.adapters.spi.HttpFacade; - -import javax.servlet.ServletRequest; - -/** - * @author Bill Burke - * @version $Revision: 1 $ - */ -public class KeycloakSamlAuthenticator extends AbstractSamlAuthenticator { - - public KeycloakSamlAuthenticator() { - super(); - } - - - @Override - public AdapterSessionStore createSessionTokenStore(Request request, SamlDeployment resolvedDeployment) { - return new JettyAdapterSessionStore(request); - } - - @Override - public JettyUserSessionManagement createSessionManagement(Request request) { - return new JettyUserSessionManagement(new Jetty9SessionManager(request.getSessionManager())); - } - - @Override - protected Request resolveRequest(ServletRequest req) { - return (req instanceof Request) ? (Request)req : HttpChannel.getCurrentHttpChannel().getRequest(); - } - - @Override - public Authentication createAuthentication(UserIdentity userIdentity, Request request) { - return new KeycloakAuthentication(getAuthMethod(), userIdentity) { - @Override - public void logout() { - logoutCurrent(HttpChannel.getCurrentHttpChannel().getRequest()); - } - }; - } - - @Override - protected JettySamlSessionStore createJettySamlSessionStore(Request request, HttpFacade facade, SamlDeployment resolvedDeployment) { - JettySamlSessionStore store; - store = new Jetty9SamlSessionStore(request, createSessionTokenStore(request, resolvedDeployment), facade, idMapper, createSessionManagement(request), resolvedDeployment); - return store; - } - - - -} diff --git a/adapters/saml/jetty/pom.xml b/adapters/saml/jetty/pom.xml index 2a0fc01ab45..7ac181d25c3 100755 --- a/adapters/saml/jetty/pom.xml +++ b/adapters/saml/jetty/pom.xml @@ -32,8 +32,6 @@ jetty-core - jetty8.1 - jetty9.1 jetty9.2 jetty9.3 jetty9.4 diff --git a/boms/adapter/pom.xml b/boms/adapter/pom.xml index 0f1b359af0f..68a781a38d9 100644 --- a/boms/adapter/pom.xml +++ b/boms/adapter/pom.xml @@ -79,16 +79,6 @@ keycloak-tomcat6-adapter 6.0.0-SNAPSHOT - - org.keycloak - keycloak-jetty81-adapter - 6.0.0-SNAPSHOT - - - org.keycloak - keycloak-jetty91-adapter - 6.0.0-SNAPSHOT - org.keycloak keycloak-jetty92-adapter diff --git a/distribution/adapters/fuse-adapter-zip/pom.xml b/distribution/adapters/fuse-adapter-zip/pom.xml index 0b3ea4acc4d..f7182193e65 100644 --- a/distribution/adapters/fuse-adapter-zip/pom.xml +++ b/distribution/adapters/fuse-adapter-zip/pom.xml @@ -214,16 +214,6 @@ - - org.keycloak - keycloak-jetty81-adapter - - - * - * - - - org.keycloak keycloak-osgi-jaas diff --git a/distribution/adapters/jetty81-adapter-zip/assembly.xml b/distribution/adapters/jetty81-adapter-zip/assembly.xml deleted file mode 100755 index 1ddc5c41977..00000000000 --- a/distribution/adapters/jetty81-adapter-zip/assembly.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - war-dist - - - zip - tar.gz - - false - - - - false - true - true - - org.keycloak:keycloak-jetty81-adapter - - - org.eclipse.jetty:jetty-server - org.eclipse.jetty:jetty-util - org.eclipse.jetty:jetty-security - - lib/keycloak - - - diff --git a/distribution/adapters/jetty81-adapter-zip/pom.xml b/distribution/adapters/jetty81-adapter-zip/pom.xml deleted file mode 100755 index 0e223a96515..00000000000 --- a/distribution/adapters/jetty81-adapter-zip/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - 4.0.0 - - keycloak-parent - org.keycloak - 6.0.0-SNAPSHOT - ../../../pom.xml - - - keycloak-jetty81-adapter-dist - pom - Keycloak Jetty 8.1.x Adapter Distro - - - - - org.keycloak - keycloak-jetty81-adapter - - - - - - maven-assembly-plugin - - - assemble - package - - single - - - - assembly.xml - - - target - - - target/assembly/work - - false - - - - - - - - diff --git a/distribution/adapters/jetty91-adapter-zip/assembly.xml b/distribution/adapters/jetty91-adapter-zip/assembly.xml deleted file mode 100755 index 5e226ade015..00000000000 --- a/distribution/adapters/jetty91-adapter-zip/assembly.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - war-dist - - - zip - tar.gz - - false - - - - - - keycloak.mod - - modules - - - ${project.build.directory}/modules - - - - - - false - true - true - - org.keycloak:keycloak-jetty91-adapter - - - org.eclipse.jetty:jetty-server - org.eclipse.jetty:jetty-util - org.eclipse.jetty:jetty-security - - lib/keycloak - - - diff --git a/distribution/adapters/jetty91-adapter-zip/keycloak.mod b/distribution/adapters/jetty91-adapter-zip/keycloak.mod deleted file mode 100755 index 4da630848fd..00000000000 --- a/distribution/adapters/jetty91-adapter-zip/keycloak.mod +++ /dev/null @@ -1,28 +0,0 @@ -# -# Keycloak Jetty Adapter -# - -[depend] -server -security - -[lib] - - -lib/keycloak/*.jar - diff --git a/distribution/adapters/jetty91-adapter-zip/pom.xml b/distribution/adapters/jetty91-adapter-zip/pom.xml deleted file mode 100755 index c46f01e4954..00000000000 --- a/distribution/adapters/jetty91-adapter-zip/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - 4.0.0 - - keycloak-parent - org.keycloak - 6.0.0-SNAPSHOT - ../../../pom.xml - - - keycloak-jetty91-adapter-dist - pom - Keycloak Jetty 9.1.x Adapter Distro - - - - - org.keycloak - keycloak-jetty91-adapter - - - - - - maven-assembly-plugin - - - assemble - package - - single - - - - assembly.xml - - - target - - - target/assembly/work - - false - - - - - - - - diff --git a/distribution/adapters/osgi/features/src/main/resources/features.xml b/distribution/adapters/osgi/features/src/main/resources/features.xml index e315767ee9e..d1990eda7a5 100755 --- a/distribution/adapters/osgi/features/src/main/resources/features.xml +++ b/distribution/adapters/osgi/features/src/main/resources/features.xml @@ -45,15 +45,6 @@ mvn:org.keycloak/keycloak-osgi-adapter/${project.version} - -
The keycloak Jetty8 adapter
- keycloak-adapter-core - jetty - mvn:org.keycloak/keycloak-jetty-adapter-spi/${project.version} - mvn:org.keycloak/keycloak-jetty-core/${project.version} - mvn:org.keycloak/keycloak-jetty81-adapter/${project.version} -
-
The keycloak Jetty 9.2 adapter (Fuse 6.3)
keycloak-adapter-core diff --git a/distribution/adapters/pom.xml b/distribution/adapters/pom.xml index 9c7dadf95c8..7ca0e91606f 100755 --- a/distribution/adapters/pom.xml +++ b/distribution/adapters/pom.xml @@ -51,8 +51,6 @@ tomcat6-adapter-zip tomcat7-adapter-zip tomcat8-adapter-zip - jetty81-adapter-zip - jetty91-adapter-zip jetty92-adapter-zip jetty93-adapter-zip jetty94-adapter-zip diff --git a/distribution/downloads/src/main/resources/files b/distribution/downloads/src/main/resources/files index eeaa4c539fb..34b6486f1dc 100644 --- a/distribution/downloads/src/main/resources/files +++ b/distribution/downloads/src/main/resources/files @@ -7,8 +7,6 @@ ./adapters/keycloak-oidc keycloak-as7-adapter-dist keycloak-eap6-adapter-dist - keycloak-jetty81-adapter-dist - keycloak-jetty91-adapter-dist keycloak-jetty92-adapter-dist keycloak-jetty93-adapter-dist keycloak-jetty94-adapter-dist @@ -23,7 +21,6 @@ ./adapters/saml keycloak-saml-as7-adapter-dist keycloak-saml-eap6-adapter-dist - keycloak-saml-jetty81-adapter-dist keycloak-saml-jetty92-adapter-dist keycloak-saml-jetty93-adapter-dist keycloak-saml-jetty94-adapter-dist diff --git a/distribution/saml-adapters/jetty81-adapter-zip/assembly.xml b/distribution/saml-adapters/jetty81-adapter-zip/assembly.xml deleted file mode 100755 index 39051932047..00000000000 --- a/distribution/saml-adapters/jetty81-adapter-zip/assembly.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - war-dist - - - zip - tar.gz - - false - - - - false - true - true - - org.keycloak:keycloak-saml-jetty81-adapter - - - org.eclipse.jetty:jetty-server - org.eclipse.jetty:jetty-util - org.eclipse.jetty:jetty-security - - lib/keycloak - - - diff --git a/distribution/saml-adapters/jetty81-adapter-zip/pom.xml b/distribution/saml-adapters/jetty81-adapter-zip/pom.xml deleted file mode 100755 index 8a3ceddcff9..00000000000 --- a/distribution/saml-adapters/jetty81-adapter-zip/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - 4.0.0 - - keycloak-parent - org.keycloak - 6.0.0-SNAPSHOT - ../../../pom.xml - - - keycloak-saml-jetty81-adapter-dist - pom - Keycloak SAML Jetty 8.1.x Adapter Distro - - - - - org.keycloak - keycloak-saml-jetty81-adapter - - - - - - maven-assembly-plugin - - - assemble - package - - single - - - - assembly.xml - - - target - - - target/assembly/work - - false - - - - - - - - diff --git a/distribution/saml-adapters/jetty91-adapter-zip/assembly.xml b/distribution/saml-adapters/jetty91-adapter-zip/assembly.xml deleted file mode 100755 index f53f046154e..00000000000 --- a/distribution/saml-adapters/jetty91-adapter-zip/assembly.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - war-dist - - - zip - tar.gz - - false - - - - - - keycloak.mod - - modules - - - ${project.build.directory}/modules - - - - - - false - true - true - - org.keycloak:keycloak-saml-jetty91-adapter - - - org.eclipse.jetty:jetty-server - org.eclipse.jetty:jetty-util - org.eclipse.jetty:jetty-security - - lib/keycloak - - - diff --git a/distribution/saml-adapters/jetty91-adapter-zip/keycloak.mod b/distribution/saml-adapters/jetty91-adapter-zip/keycloak.mod deleted file mode 100755 index 4da630848fd..00000000000 --- a/distribution/saml-adapters/jetty91-adapter-zip/keycloak.mod +++ /dev/null @@ -1,28 +0,0 @@ -# -# Keycloak Jetty Adapter -# - -[depend] -server -security - -[lib] - - -lib/keycloak/*.jar - diff --git a/distribution/saml-adapters/jetty91-adapter-zip/pom.xml b/distribution/saml-adapters/jetty91-adapter-zip/pom.xml deleted file mode 100755 index 4f0ab19d7c7..00000000000 --- a/distribution/saml-adapters/jetty91-adapter-zip/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - 4.0.0 - - keycloak-parent - org.keycloak - - ../../../pom.xml - - - keycloak-saml-jetty91-adapter-dist - pom - Keycloak SAML Jetty 9.1.x Adapter Distro - - - - - org.keycloak - keycloak-saml-jetty91-adapter - - - - - - maven-assembly-plugin - - - assemble - package - - single - - - - assembly.xml - - - target - - - target/assembly/work - - false - - - - - - - - diff --git a/distribution/saml-adapters/pom.xml b/distribution/saml-adapters/pom.xml index 3c794565ff5..f79d291940d 100755 --- a/distribution/saml-adapters/pom.xml +++ b/distribution/saml-adapters/pom.xml @@ -44,9 +44,6 @@ - jetty81-adapter-zip - jetty92-adapter-zip jetty93-adapter-zip jetty94-adapter-zip diff --git a/pom.xml b/pom.xml index 0491fa5154d..95072d33d98 100755 --- a/pom.xml +++ b/pom.xml @@ -87,8 +87,6 @@ 2.0.19.Final 1.8.0.Final 1.4.0.Final - 8.1.17.v20150415 - 9.1.5.v20140505 9.2.4.v20141103 9.3.9.v20160517 9.4.2.v20170220 @@ -111,7 +109,7 @@ 3.2.1 2.3.26-incubating - 9.1.0.v20131115 + ${jetty92.version} 3.5.5 5.1.29 4.2.0 @@ -895,16 +893,6 @@ keycloak-jetty-core ${project.version}
- - org.keycloak - keycloak-jetty81-adapter - ${project.version} - - - org.keycloak - keycloak-jetty91-adapter - ${project.version} - org.keycloak keycloak-jetty92-adapter @@ -1125,16 +1113,6 @@ keycloak-saml-jetty-adapter-core ${project.version} - - org.keycloak - keycloak-saml-jetty81-adapter - ${project.version} - - - org.keycloak - keycloak-saml-jetty91-adapter - ${project.version} - org.keycloak keycloak-saml-wildfly-adapter @@ -1308,18 +1286,6 @@ ${project.version} zip - - org.keycloak - keycloak-jetty81-adapter-dist - ${project.version} - zip - - - org.keycloak - keycloak-jetty91-adapter-dist - ${project.version} - zip - org.keycloak keycloak-jetty92-adapter-dist @@ -1386,12 +1352,6 @@ ${project.version} zip - - org.keycloak - keycloak-saml-jetty81-adapter-dist - ${project.version} - zip - org.keycloak keycloak-saml-jetty92-adapter-dist diff --git a/testsuite/integration-arquillian/HOW-TO-RUN.md b/testsuite/integration-arquillian/HOW-TO-RUN.md index 8cac65f732d..91aa0e6dae8 100644 --- a/testsuite/integration-arquillian/HOW-TO-RUN.md +++ b/testsuite/integration-arquillian/HOW-TO-RUN.md @@ -87,10 +87,9 @@ TODO: Add info about Wildfly logging ### Jetty -At the moment we can run the testsuite with Jetty `9.1`, `9.2` and `9.4`. +At the moment we can run the testsuite with Jetty `9.2` and `9.4`. Each version has its corresponding profile: -* Jetty `9.1`: `app-server-jetty91` * Jetty `9.2`: `app-server-jetty92` * Jetty `9.4`: `app-server-jetty94` diff --git a/testsuite/integration-arquillian/servers/app-server/jetty/common/src/main/java/org/keycloak/testsuite/arquillian/jetty/JettyAppProvider.java b/testsuite/integration-arquillian/servers/app-server/jetty/common/src/main/java/org/keycloak/testsuite/arquillian/jetty/JettyAppProvider.java index c2f1ea54a7e..9ffca1a2266 100644 --- a/testsuite/integration-arquillian/servers/app-server/jetty/common/src/main/java/org/keycloak/testsuite/arquillian/jetty/JettyAppProvider.java +++ b/testsuite/integration-arquillian/servers/app-server/jetty/common/src/main/java/org/keycloak/testsuite/arquillian/jetty/JettyAppProvider.java @@ -1,187 +1,15 @@ package org.keycloak.testsuite.arquillian.jetty; -import org.eclipse.jetty.deploy.App; -import org.eclipse.jetty.deploy.AppProvider; -import org.eclipse.jetty.deploy.DeploymentManager; -import org.eclipse.jetty.deploy.util.FileID; -import org.eclipse.jetty.server.handler.ContextHandler; -import org.eclipse.jetty.util.URIUtil; -import org.eclipse.jetty.util.component.AbstractLifeCycle; -import org.eclipse.jetty.util.resource.Resource; -import org.eclipse.jetty.webapp.WebAppContext; -import org.jboss.logging.Logger; +import org.jboss.arquillian.container.jetty.embedded_9.ArquillianAppProvider; import org.jboss.shrinkwrap.api.Archive; -import org.jboss.shrinkwrap.api.exporter.ZipExporter; -import java.io.File; -import java.io.IOException; -import java.lang.invoke.MethodHandles; -import java.net.URI; -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.util.Locale; - -/** - * Most of the bits of this class have been copied from org.jboss.arquillian.container.jetty.embedded_9.ArquillianAppProvider. - * - * Unfortunately Arquillian extension for Jetty 8 and 9 uses totally different mechanism, so we need to implement - * all the bits ourselves. - * - * @author Sebastian Ɓaskawiec - */ -class JettyAppProvider extends AbstractLifeCycle implements AppProvider { - - private static final Logger log = Logger.getLogger(MethodHandles.lookup().lookupClass()); - - /** - * The prefix assigned to the temporary file where the archive is exported - */ - private static final String EXPORT_FILE_PREFIX = "export"; - - /** - * Directory into which we'll extract export the war files - */ - private static final File EXPORT_DIR; - - static { - /* - * Use of java.io.tmpdir Should be a last-resort fallback for temp directory. - * - * Use of java.io.tmpdir on CI systems is dangerous (overwrite possibility is extremely high) - * - * Use of java.io.tmpdir on Unix systems is unreliable (due to common /tmp dir cleanup processes) - */ - File systemDefaultTmpDir = new File(AccessController.doPrivileged(new PrivilegedAction() { - @Override - public String run() { - return System.getProperty("java.io.tmpdir"); - } - })); - - // If running under maven + surefire, use information provided by surefire. - String baseDirVal = AccessController.doPrivileged(new PrivilegedAction() { - @Override - public String run() { - return System.getProperty("basedir"); - } - }); - - File mavenTmpDir = null; - if (baseDirVal != null) { - File baseDir = new File(baseDirVal); - if (baseDir.exists() && baseDir.isDirectory()) { - File targetDir = new File(baseDir, "target"); - if (targetDir.exists() && targetDir.isDirectory()) { - mavenTmpDir = new File(targetDir, "arquillian-jetty-temp"); - mavenTmpDir.mkdirs(); - } - } - } - - if ((mavenTmpDir != null) && mavenTmpDir.exists() && mavenTmpDir.isDirectory()) { - EXPORT_DIR = mavenTmpDir; - } else { - EXPORT_DIR = systemDefaultTmpDir; - } - - // If the temp location doesn't exist or isn't a directory - if (!EXPORT_DIR.exists() || !EXPORT_DIR.isDirectory()) { - throw new IllegalStateException("Could not obtain export directory \"" + EXPORT_DIR.getAbsolutePath() + "\""); - } - } - - private final JettyAppServerConfiguration config; - private DeploymentManager deploymentManager; +class JettyAppProvider extends ArquillianAppProvider { public JettyAppProvider(JettyAppServerConfiguration config) { - this.config = config; + super(config); } protected KeycloakAdapterApp createApp(final Archive archive) { - String name = archive.getName(); - int extOff = name.lastIndexOf('.'); - if (extOff <= 0) { - throw new RuntimeException("Not a valid Web Archive filename: " + name); - } - String ext = name.substring(extOff).toLowerCase(); - if (!ext.equals(".war")) { - throw new RuntimeException("Not a recognized Web Archive: " + name); - } - name = name.substring(0, extOff); - - final File exported; - try { - // If this method returns successfully then it is guaranteed that: - // 1. The file denoted by the returned abstract pathname did not exist before this method was invoked, and - // 2. Neither this method nor any of its variants will return the same abstract pathname again in the current invocation of the virtual machine. - exported = File.createTempFile(EXPORT_FILE_PREFIX, archive.getName(), EXPORT_DIR); - } catch (IOException e) { - throw new RuntimeException("Could not create temporary File in " + EXPORT_DIR + " to write exported archive", e); - } - // We are overwriting the temporary file placeholder reserved by File#createTemplateFile() - archive.as(ZipExporter.class).exportTo(exported, true); - - // Mark to delete when we come down - // exported.deleteOnExit(); - - // Add the context - URI uri = exported.toURI(); - log.debug("Webapp archive location: " + uri.toASCIIString()); - - return new KeycloakAdapterApp(new App(deploymentManager, this, uri.toASCIIString()), archive); - } - - @Override - public ContextHandler createContextHandler(final App app) throws Exception { - Resource resource = Resource.newResource(app.getOriginId()); - File file = resource.getFile(); - if (!resource.exists()) - throw new IllegalStateException("App resouce does not exist " + resource); - - String context = file.getName(); - - if (FileID.isWebArchiveFile(file)) { - // Context Path is the same as the archive. - context = context.substring(0, context.length() - 4); - } else { - throw new IllegalStateException("unable to create ContextHandler for " + app); - } - - // Ensure "/" is Not Trailing in context paths. - if (context.endsWith("/") && context.length() > 0) { - context = context.substring(0, context.length() - 1); - } - - // Start building the webapplication - WebAppContext webAppContext = new WebAppContext(); - webAppContext.setDisplayName(context); - webAppContext.setLogUrlOnStart(true); - - // special case of archive (or dir) named "root" is / context - if (context.equalsIgnoreCase("root")) { - context = URIUtil.SLASH; - } else if (context.toLowerCase(Locale.ENGLISH).startsWith("root-")) { - int dash = context.toLowerCase(Locale.ENGLISH).indexOf('-'); - String virtual = context.substring(dash + 1); - webAppContext.setVirtualHosts(new String[]{virtual}); - context = URIUtil.SLASH; - } - - // Ensure "/" is Prepended to all context paths. - if (context.charAt(0) != '/') { - context = "/" + context; - } - - webAppContext.setContextPath(context); - webAppContext.setWar(file.getAbsolutePath()); - webAppContext.setExtractWAR(true); - webAppContext.setParentLoaderPriority(true); - - return webAppContext; - } - - @Override - public void setDeploymentManager(DeploymentManager deploymentManager) { - this.deploymentManager = deploymentManager; + return new KeycloakAdapterApp(super.createApp(archive), archive); } } diff --git a/testsuite/integration-arquillian/servers/app-server/jetty/common/src/main/java/org/keycloak/testsuite/arquillian/jetty/JettyAppServerArquillianExtension.java b/testsuite/integration-arquillian/servers/app-server/jetty/common/src/main/java/org/keycloak/testsuite/arquillian/jetty/JettyAppServerArquillianExtension.java index d2b56f14af8..54d21e9de7d 100644 --- a/testsuite/integration-arquillian/servers/app-server/jetty/common/src/main/java/org/keycloak/testsuite/arquillian/jetty/JettyAppServerArquillianExtension.java +++ b/testsuite/integration-arquillian/servers/app-server/jetty/common/src/main/java/org/keycloak/testsuite/arquillian/jetty/JettyAppServerArquillianExtension.java @@ -29,8 +29,6 @@ public class JettyAppServerArquillianExtension implements LoadableExtension { builder .service(DeployableContainer.class, JettyAppServer.class) .service(ApplicationArchiveProcessor.class, JettyDeploymentArchiveProcessor.class); - } - } diff --git a/testsuite/integration-arquillian/servers/app-server/jetty/common/src/main/java/org/keycloak/testsuite/arquillian/jetty/JettyAppServerConfiguration.java b/testsuite/integration-arquillian/servers/app-server/jetty/common/src/main/java/org/keycloak/testsuite/arquillian/jetty/JettyAppServerConfiguration.java index e5008e29899..6acbd4185a7 100644 --- a/testsuite/integration-arquillian/servers/app-server/jetty/common/src/main/java/org/keycloak/testsuite/arquillian/jetty/JettyAppServerConfiguration.java +++ b/testsuite/integration-arquillian/servers/app-server/jetty/common/src/main/java/org/keycloak/testsuite/arquillian/jetty/JettyAppServerConfiguration.java @@ -17,10 +17,11 @@ package org.keycloak.testsuite.arquillian.jetty; +import org.jboss.arquillian.container.jetty.embedded_9.JettyEmbeddedConfiguration; import org.jboss.arquillian.container.spi.ConfigurationException; import org.jboss.arquillian.container.spi.client.container.ContainerConfiguration; -public class JettyAppServerConfiguration implements ContainerConfiguration { +public class JettyAppServerConfiguration extends JettyEmbeddedConfiguration { private int bindHttpPortOffset = 0; private int bindHttpsPortOffset = 0; diff --git a/testsuite/integration-arquillian/test-apps/spring-boot-adapter/pom.xml b/testsuite/integration-arquillian/test-apps/spring-boot-adapter/pom.xml index f1356840ac9..9f0d48771a1 100644 --- a/testsuite/integration-arquillian/test-apps/spring-boot-adapter/pom.xml +++ b/testsuite/integration-arquillian/test-apps/spring-boot-adapter/pom.xml @@ -128,35 +128,6 @@ - - jetty-version-81 - - - jetty.adapter.version - 81 - - - - 8.1.22.v20160922 - - - - org.keycloak - keycloak-jetty81-adapter - - - org.springframework.boot - spring-boot-starter-jetty - - - org.eclipse.jetty.websocket - * - - - - - - jetty-version-92