From 302e152f862c581f0efab81e7049dc6094225b28 Mon Sep 17 00:00:00 2001 From: Stian Thorgersen Date: Thu, 28 Apr 2022 10:59:31 +0200 Subject: [PATCH] Remove Spring Boot 1 adapter (#11691) Closes #11690 --- adapters/oidc/pom.xml | 2 - .../oidc/spring-boot-adapter-core/pom.xml | 9 +- .../pom.xml | 75 ---------- adapters/oidc/spring-boot/pom.xml | 131 ------------------ .../springboot/KeycloakAutoConfiguration.java | 117 ---------------- .../KeycloakRestTemplateCustomizer.java | 24 ---- ...curityContextClientRequestInterceptor.java | 55 -------- .../main/resources/META-INF/spring.factories | 2 - .../KeycloakRestTemplateCustomizerTest.java | 28 ---- ...tyContextClientRequestInterceptorTest.java | 87 ------------ boms/adapter/pom.xml | 15 -- misc/pom.xml | 1 - .../pom.xml | 36 ----- misc/spring-legacy-boot-starter/pom.xml | 29 ---- pom.xml | 5 - 15 files changed, 1 insertion(+), 615 deletions(-) delete mode 100644 adapters/oidc/spring-boot-legacy-container-bundle/pom.xml delete mode 100755 adapters/oidc/spring-boot/pom.xml delete mode 100755 adapters/oidc/spring-boot/src/main/java/org/keycloak/adapters/springboot/KeycloakAutoConfiguration.java delete mode 100644 adapters/oidc/spring-boot/src/main/java/org/keycloak/adapters/springboot/client/KeycloakRestTemplateCustomizer.java delete mode 100644 adapters/oidc/spring-boot/src/main/java/org/keycloak/adapters/springboot/client/KeycloakSecurityContextClientRequestInterceptor.java delete mode 100644 adapters/oidc/spring-boot/src/main/resources/META-INF/spring.factories delete mode 100644 adapters/oidc/spring-boot/src/test/java/org/keycloak/adapters/springboot/client/KeycloakRestTemplateCustomizerTest.java delete mode 100644 adapters/oidc/spring-boot/src/test/java/org/keycloak/adapters/springboot/client/KeycloakSecurityContextClientRequestInterceptorTest.java delete mode 100644 misc/spring-legacy-boot-starter/keycloak-legacy-spring-boot-starter/pom.xml delete mode 100644 misc/spring-legacy-boot-starter/pom.xml diff --git a/adapters/oidc/pom.xml b/adapters/oidc/pom.xml index dfd0f4d79e6..58fdf0b42c2 100755 --- a/adapters/oidc/pom.xml +++ b/adapters/oidc/pom.xml @@ -39,11 +39,9 @@ js osgi-adapter servlet-filter - spring-boot spring-boot2 spring-boot-adapter-core spring-boot-container-bundle - spring-boot-legacy-container-bundle spring-security tomcat undertow diff --git a/adapters/oidc/spring-boot-adapter-core/pom.xml b/adapters/oidc/spring-boot-adapter-core/pom.xml index 579a7c540b3..719e7b50d7e 100755 --- a/adapters/oidc/spring-boot-adapter-core/pom.xml +++ b/adapters/oidc/spring-boot-adapter-core/pom.xml @@ -31,7 +31,7 @@ - 1.5.16.RELEASE + 2.0.5.RELEASE @@ -50,13 +50,6 @@ true compile - - org.keycloak - spring-boot-legacy-container-bundle - ${project.version} - true - compile - org.keycloak keycloak-spring-security-adapter diff --git a/adapters/oidc/spring-boot-legacy-container-bundle/pom.xml b/adapters/oidc/spring-boot-legacy-container-bundle/pom.xml deleted file mode 100644 index 25a3d050280..00000000000 --- a/adapters/oidc/spring-boot-legacy-container-bundle/pom.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - 4.0.0 - - keycloak-parent - org.keycloak - 999-SNAPSHOT - ../../../pom.xml - - spring-boot-legacy-container-bundle - jar - - - org.keycloak - keycloak-adapter-core - compile - - - org.keycloak - keycloak-tomcat-adapter - compile - - - org.keycloak - keycloak-undertow-adapter - compile - - - org.keycloak - keycloak-jetty93-adapter - compile - - - - - - org.apache.maven.plugins - maven-shade-plugin - 2.4.3 - - - package - - shade - - - - - org.keycloak:keycloak-tomcat-adapter - org.keycloak:keycloak-undertow-adapter - org.keycloak:keycloak-jetty93-adapter - org.keycloak:keycloak-tomcat-core-adapter - org.keycloak:keycloak-tomcat-adapter-spi - org.keycloak:keycloak-undertow-adapter - org.keycloak:keycloak-undertow-adapter-spi - org.keycloak:keycloak-jetty-core - org.keycloak:keycloak-jetty-adapter-spi - - - true - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - - true - org.keycloak:keycloak-adapter-core - - - - - diff --git a/adapters/oidc/spring-boot/pom.xml b/adapters/oidc/spring-boot/pom.xml deleted file mode 100755 index abe3c2a4d00..00000000000 --- a/adapters/oidc/spring-boot/pom.xml +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - keycloak-parent - org.keycloak - 999-SNAPSHOT - ../../../pom.xml - - 4.0.0 - - keycloak-spring-boot-adapter - Keycloak Spring Boot Integration - - - - 1.8 - 1.8 - 1.5.16.RELEASE - 4.1.6.RELEASE - 1.9.5 - - - - - - org.keycloak - keycloak-spring-boot-adapter-core - - - - org.jboss.logging - jboss-logging - - - org.keycloak - keycloak-core - - - org.keycloak - spring-boot-legacy-container-bundle - ${project.version} - true - compile - - - org.keycloak - keycloak-spring-security-adapter - ${project.version} - compile - - - - org.springframework.boot - spring-boot-starter-web - ${spring-boot.version} - compile - true - - - io.undertow - undertow-servlet - compile - true - - - org.eclipse.jetty - jetty-server - ${jetty9.version} - compile - true - - - - org.eclipse.jetty - jetty-security - ${jetty9.version} - compile - true - - - - org.eclipse.jetty - jetty-webapp - ${jetty9.version} - compile - true - - - junit - junit - test - - - org.springframework - spring-test - ${spring.version} - test - - - org.mockito - mockito-all - ${mockito.version} - test - - - org.springframework.boot - spring-boot-configuration-processor - true - ${spring-boot.version} - - - - diff --git a/adapters/oidc/spring-boot/src/main/java/org/keycloak/adapters/springboot/KeycloakAutoConfiguration.java b/adapters/oidc/spring-boot/src/main/java/org/keycloak/adapters/springboot/KeycloakAutoConfiguration.java deleted file mode 100755 index 4d6e5a7e606..00000000000 --- a/adapters/oidc/spring-boot/src/main/java/org/keycloak/adapters/springboot/KeycloakAutoConfiguration.java +++ /dev/null @@ -1,117 +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.springboot; - -import org.keycloak.adapters.tomcat.KeycloakAuthenticatorValve; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; -import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer; -import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; -import org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainerFactory; -import org.springframework.boot.context.embedded.jetty.JettyServerCustomizer; -import org.springframework.boot.context.embedded.tomcat.TomcatContextCustomizer; -import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; -import org.springframework.boot.context.embedded.undertow.UndertowDeploymentInfoCustomizer; -import org.springframework.boot.context.embedded.undertow.UndertowEmbeddedServletContainerFactory; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - - -/** - * Keycloak authentication integration for Spring Boot - * - * @author Jimmi Dyson - * @version $Revision: 1 $ - */ -@Configuration -@ConditionalOnWebApplication -@EnableConfigurationProperties(KeycloakSpringBootProperties.class) -@ConditionalOnProperty(value = "keycloak.enabled", matchIfMissing = true) -public class KeycloakAutoConfiguration extends KeycloakBaseSpringBootConfiguration { - - @Bean - public EmbeddedServletContainerCustomizer getKeycloakContainerCustomizer() { - return new EmbeddedServletContainerCustomizer() { - @Override - public void customize(ConfigurableEmbeddedServletContainer configurableEmbeddedServletContainer) { - - if (configurableEmbeddedServletContainer instanceof TomcatEmbeddedServletContainerFactory) { - - TomcatEmbeddedServletContainerFactory container = (TomcatEmbeddedServletContainerFactory) configurableEmbeddedServletContainer; - container.addContextValves(new KeycloakAuthenticatorValve()); - container.addContextCustomizers(tomcatKeycloakContextCustomizer()); - - } else if (configurableEmbeddedServletContainer instanceof UndertowEmbeddedServletContainerFactory) { - - UndertowEmbeddedServletContainerFactory container = (UndertowEmbeddedServletContainerFactory) configurableEmbeddedServletContainer; - container.addDeploymentInfoCustomizers(undertowKeycloakContextCustomizer()); - - } else if (configurableEmbeddedServletContainer instanceof JettyEmbeddedServletContainerFactory) { - - JettyEmbeddedServletContainerFactory container = (JettyEmbeddedServletContainerFactory) configurableEmbeddedServletContainer; - container.addServerCustomizers(jettyKeycloakServerCustomizer()); - } - } - }; - } - - @Bean - @ConditionalOnClass(name = {"org.eclipse.jetty.webapp.WebAppContext"}) - public JettyServerCustomizer jettyKeycloakServerCustomizer() { - return new KeycloakJettyServerCustomizer(keycloakProperties); - } - - @Bean - @ConditionalOnClass(name = {"org.apache.catalina.startup.Tomcat"}) - public TomcatContextCustomizer tomcatKeycloakContextCustomizer() { - return new KeycloakTomcatContextCustomizer(keycloakProperties); - } - - @Bean - @ConditionalOnClass(name = {"io.undertow.Undertow"}) - public UndertowDeploymentInfoCustomizer undertowKeycloakContextCustomizer() { - return new KeycloakUndertowDeploymentInfoCustomizer(keycloakProperties); - } - - static class KeycloakUndertowDeploymentInfoCustomizer extends KeycloakBaseUndertowDeploymentInfoCustomizer implements UndertowDeploymentInfoCustomizer { - - public KeycloakUndertowDeploymentInfoCustomizer(KeycloakSpringBootProperties keycloakProperties) { - super(keycloakProperties); - } - - } - - static class KeycloakJettyServerCustomizer extends KeycloakBaseJettyServerCustomizer implements JettyServerCustomizer { - - public KeycloakJettyServerCustomizer(KeycloakSpringBootProperties keycloakProperties) { - super(keycloakProperties); - } - - } - - static class KeycloakTomcatContextCustomizer extends KeycloakBaseTomcatContextCustomizer implements TomcatContextCustomizer { - - public KeycloakTomcatContextCustomizer(KeycloakSpringBootProperties keycloakProperties) { - super(keycloakProperties); - } - - } -} diff --git a/adapters/oidc/spring-boot/src/main/java/org/keycloak/adapters/springboot/client/KeycloakRestTemplateCustomizer.java b/adapters/oidc/spring-boot/src/main/java/org/keycloak/adapters/springboot/client/KeycloakRestTemplateCustomizer.java deleted file mode 100644 index ae4836c7139..00000000000 --- a/adapters/oidc/spring-boot/src/main/java/org/keycloak/adapters/springboot/client/KeycloakRestTemplateCustomizer.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.keycloak.adapters.springboot.client; - -import org.springframework.boot.web.client.RestTemplateCustomizer; -import org.springframework.web.client.RestTemplate; - -public class KeycloakRestTemplateCustomizer implements RestTemplateCustomizer { - - private final KeycloakSecurityContextClientRequestInterceptor keycloakInterceptor; - - public KeycloakRestTemplateCustomizer() { - this(new KeycloakSecurityContextClientRequestInterceptor()); - } - - protected KeycloakRestTemplateCustomizer( - KeycloakSecurityContextClientRequestInterceptor keycloakInterceptor - ) { - this.keycloakInterceptor = keycloakInterceptor; - } - - @Override - public void customize(RestTemplate restTemplate) { - restTemplate.getInterceptors().add(keycloakInterceptor); - } -} diff --git a/adapters/oidc/spring-boot/src/main/java/org/keycloak/adapters/springboot/client/KeycloakSecurityContextClientRequestInterceptor.java b/adapters/oidc/spring-boot/src/main/java/org/keycloak/adapters/springboot/client/KeycloakSecurityContextClientRequestInterceptor.java deleted file mode 100644 index 200a9035f1e..00000000000 --- a/adapters/oidc/spring-boot/src/main/java/org/keycloak/adapters/springboot/client/KeycloakSecurityContextClientRequestInterceptor.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.keycloak.adapters.springboot.client; - -import org.keycloak.KeycloakPrincipal; -import org.keycloak.KeycloakSecurityContext; -import org.springframework.http.HttpRequest; -import org.springframework.http.client.ClientHttpRequestExecution; -import org.springframework.http.client.ClientHttpRequestInterceptor; -import org.springframework.http.client.ClientHttpResponse; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import java.io.IOException; -import java.security.Principal; - -/** - * Interceptor for {@link ClientHttpRequestExecution} objects created for server to server secured - * communication using OAuth2 bearer tokens issued by Keycloak. - * - * @author James McShane - * @version $Revision: 1 $ - */ -public class KeycloakSecurityContextClientRequestInterceptor implements ClientHttpRequestInterceptor { - - private static final String AUTHORIZATION_HEADER = "Authorization"; - - /** - * Returns the {@link KeycloakSecurityContext} from the Spring {@link ServletRequestAttributes}'s {@link Principal}. - * - * The principal must support retrieval of the KeycloakSecurityContext, so at this point, only {@link KeycloakPrincipal} - * values are supported - * - * @return the current KeycloakSecurityContext - */ - protected KeycloakSecurityContext getKeycloakSecurityContext() { - ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - Principal principal = attributes.getRequest().getUserPrincipal(); - if (principal == null) { - throw new IllegalStateException("Cannot set authorization header because there is no authenticated principal"); - } - if (!(principal instanceof KeycloakPrincipal)) { - throw new IllegalStateException( - String.format( - "Cannot set authorization header because the principal type %s does not provide the KeycloakSecurityContext", - principal.getClass())); - } - return ((KeycloakPrincipal) principal).getKeycloakSecurityContext(); - } - - @Override - public ClientHttpResponse intercept(HttpRequest httpRequest, byte[] bytes, ClientHttpRequestExecution clientHttpRequestExecution) throws IOException { - KeycloakSecurityContext context = this.getKeycloakSecurityContext(); - httpRequest.getHeaders().set(AUTHORIZATION_HEADER, "Bearer " + context.getTokenString()); - return clientHttpRequestExecution.execute(httpRequest, bytes); - } -} diff --git a/adapters/oidc/spring-boot/src/main/resources/META-INF/spring.factories b/adapters/oidc/spring-boot/src/main/resources/META-INF/spring.factories deleted file mode 100644 index 0c80e3bd8b2..00000000000 --- a/adapters/oidc/spring-boot/src/main/resources/META-INF/spring.factories +++ /dev/null @@ -1,2 +0,0 @@ -org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ -org.keycloak.adapters.springboot.KeycloakAutoConfiguration \ No newline at end of file diff --git a/adapters/oidc/spring-boot/src/test/java/org/keycloak/adapters/springboot/client/KeycloakRestTemplateCustomizerTest.java b/adapters/oidc/spring-boot/src/test/java/org/keycloak/adapters/springboot/client/KeycloakRestTemplateCustomizerTest.java deleted file mode 100644 index e8e599e40d3..00000000000 --- a/adapters/oidc/spring-boot/src/test/java/org/keycloak/adapters/springboot/client/KeycloakRestTemplateCustomizerTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.keycloak.adapters.springboot.client; - -import org.junit.Before; -import org.junit.Test; -import org.springframework.web.client.RestTemplate; - -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.mock; - -public class KeycloakRestTemplateCustomizerTest { - - private KeycloakRestTemplateCustomizer customizer; - private KeycloakSecurityContextClientRequestInterceptor interceptor = - mock(KeycloakSecurityContextClientRequestInterceptor.class); - - @Before - public void setup() { - customizer = new KeycloakRestTemplateCustomizer(interceptor); - } - - @Test - public void interceptorIsAddedToRequest() { - RestTemplate restTemplate = new RestTemplate(); - customizer.customize(restTemplate); - assertTrue(restTemplate.getInterceptors().contains(interceptor)); - } - -} diff --git a/adapters/oidc/spring-boot/src/test/java/org/keycloak/adapters/springboot/client/KeycloakSecurityContextClientRequestInterceptorTest.java b/adapters/oidc/spring-boot/src/test/java/org/keycloak/adapters/springboot/client/KeycloakSecurityContextClientRequestInterceptorTest.java deleted file mode 100644 index 689cc65274d..00000000000 --- a/adapters/oidc/spring-boot/src/test/java/org/keycloak/adapters/springboot/client/KeycloakSecurityContextClientRequestInterceptorTest.java +++ /dev/null @@ -1,87 +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.springboot.client; - -import org.junit.Before; -import org.junit.Test; -import org.keycloak.KeycloakPrincipal; -import org.keycloak.KeycloakSecurityContext; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.mockito.Spy; -import org.springframework.mock.web.MockHttpServletRequest; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import java.security.Principal; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.mockito.Mockito.when; - -/** - * Keycloak spring boot client request factory tests. - */ -public class KeycloakSecurityContextClientRequestInterceptorTest { - - @Spy - private KeycloakSecurityContextClientRequestInterceptor factory; - - private MockHttpServletRequest servletRequest; - - @Mock - private KeycloakSecurityContext keycloakSecurityContext; - - @Mock - private KeycloakPrincipal keycloakPrincipal; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - servletRequest = new MockHttpServletRequest(); - RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(servletRequest)); - servletRequest.setUserPrincipal(keycloakPrincipal); - when(keycloakPrincipal.getKeycloakSecurityContext()).thenReturn(keycloakSecurityContext); - } - - @Test - public void testGetKeycloakSecurityContext() throws Exception { - KeycloakSecurityContext context = factory.getKeycloakSecurityContext(); - assertNotNull(context); - assertEquals(keycloakSecurityContext, context); - } - - @Test(expected = IllegalStateException.class) - public void testGetKeycloakSecurityContextInvalidPrincipal() throws Exception { - servletRequest.setUserPrincipal(new MarkerPrincipal()); - factory.getKeycloakSecurityContext(); - } - - @Test(expected = IllegalStateException.class) - public void testGetKeycloakSecurityContextNullAuthentication() throws Exception { - servletRequest.setUserPrincipal(null); - factory.getKeycloakSecurityContext(); - } - - private static class MarkerPrincipal implements Principal { - @Override - public String getName() { - return null; - } - } -} diff --git a/boms/adapter/pom.xml b/boms/adapter/pom.xml index 833d6ce9850..8bd86f53b27 100644 --- a/boms/adapter/pom.xml +++ b/boms/adapter/pom.xml @@ -79,11 +79,6 @@ keycloak-undertow-adapter ${project.version} - - org.keycloak - keycloak-spring-boot-adapter - ${project.version} - org.keycloak keycloak-spring-boot-2-adapter @@ -94,11 +89,6 @@ spring-boot-container-bundle ${project.version} - - org.keycloak - spring-boot-legacy-container-bundle - ${project.version} - org.keycloak keycloak-spring-security-adapter @@ -109,11 +99,6 @@ keycloak-spring-boot-starter ${project.version} - - org.keycloak - keycloak-legacy-spring-boot-starter - ${project.version} - org.keycloak keycloak-authz-client diff --git a/misc/pom.xml b/misc/pom.xml index c8c1942f288..73512576e9a 100644 --- a/misc/pom.xml +++ b/misc/pom.xml @@ -13,7 +13,6 @@ pom spring-boot-starter - spring-legacy-boot-starter keycloak-test-helper diff --git a/misc/spring-legacy-boot-starter/keycloak-legacy-spring-boot-starter/pom.xml b/misc/spring-legacy-boot-starter/keycloak-legacy-spring-boot-starter/pom.xml deleted file mode 100644 index d91ca2d611c..00000000000 --- a/misc/spring-legacy-boot-starter/keycloak-legacy-spring-boot-starter/pom.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - 4.0.0 - - org.keycloak - keycloak-legacy-spring-boot-starter-parent - 999-SNAPSHOT - - keycloak-legacy-spring-boot-starter - Keycloak :: Legacy :: Spring :: Boot :: Default :: Starter - Spring Boot Default Starter for Keycloak - - - - org.keycloak - keycloak-spring-boot-adapter - - - org.keycloak - keycloak-authz-client - - - org.springframework.boot - spring-boot-starter - 1.5.14.RELEASE - - - org.keycloak - spring-boot-legacy-container-bundle - - - org.keycloak - keycloak-spring-security-adapter - - - diff --git a/misc/spring-legacy-boot-starter/pom.xml b/misc/spring-legacy-boot-starter/pom.xml deleted file mode 100644 index bdb74290713..00000000000 --- a/misc/spring-legacy-boot-starter/pom.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - 4.0.0 - - keycloak-misc-parent - org.keycloak - 999-SNAPSHOT - - org.keycloak - keycloak-legacy-spring-boot-starter-parent - Keycloak :: Spring :: Boot - Support for using Keycloak in Spring Boot 1.x applications. - pom - - keycloak-legacy-spring-boot-starter - - - - - org.keycloak.bom - keycloak-adapter-bom - ${project.version} - pom - import - - - - diff --git a/pom.xml b/pom.xml index d7e5e94e72e..cfb8063ede4 100644 --- a/pom.xml +++ b/pom.xml @@ -1178,11 +1178,6 @@ keycloak-spring-boot-adapter-core ${project.version} - - org.keycloak - keycloak-spring-boot-adapter - ${project.version} - org.keycloak keycloak-spring-boot-2-adapter