jgroups-extras / jgroups-aws

Discovery protocol for JGroups using AWS S3 buckets as cluster information store
http://jgroups.org
Apache License 2.0
13 stars 11 forks source link

SdkClientException with 3.0.0.Final #301

Closed vincentchalamon closed 8 months ago

vincentchalamon commented 8 months ago

Hi,

I'm trying to implement jgroups-aws-3.0.0.Final in Keycloak 22.0.5. Sadly, I cannot build Keycloak properly due to the following exception:

Caused by: software.amazon.awssdk.core.exception.SdkClientException: Unable to load an HTTP implementation from any provider in the chain. You must declare a dependency on an appropriate HTTP implementation or pass in an SdkHttpClient explicitly to the client builder.

Did I miss something in my configuration, or missed to install any required dependency?

Thanks for your feedback.

Reproducer: https://github.com/vincentchalamon/keycloak-jgroups-aws

Providers - aws-auth-2.21.16.jar - aws-core-2.21.16.jar - aws-endpoints-spi-2.21.16.jar - aws-http-auth-2.21.16.jar - aws-http-auth-aws-2.21.16.jar - aws-http-auth-spi-2.21.16.jar - aws-http-client-spi-2.21.16.jar - aws-identity-spi-2.21.16.jar - aws-profiles-2.21.16.jar - aws-regions-2.21.16.jar - aws-s3-2.21.16.jar - aws-sdk-core-2.21.16.jar - aws-sdk-java-2.21.16.jar - aws-utils-2.21.16.jar - jgroups-aws-3.0.1.Final.jar
Infinispan configuration ```xml ```
Full logs ``` ae-keycloak-keycloak-1 | Changes detected in configuration. Updating the server image. ae-keycloak-keycloak-1 | Updating the configuration and installing your custom providers, if any. Please wait. ae-keycloak-keycloak-1 | 2023-11-08 13:37:07,849 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2 (be.cronos.keycloak.credential.hash.Argon2PasswordHashProviderFactory) is implementing the internal SPI password-hashing. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:07,849 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: md5-ae-customer (com.keenetic.account.keycloak.anotherhashes.MD5AeCustomerPasswordHashProviderFactory) is implementing the internal SPI password-hashing. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:07,849 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: md5-ae-owner (com.keenetic.account.keycloak.anotherhashes.MD5AeOwnerPasswordHashProviderFactory) is implementing the internal SPI password-hashing. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:08,233 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2Iterations (be.cronos.keycloak.policy.Argon2IterationsPasswordPolicyProviderFactory) is implementing the internal SPI password-policy. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:08,233 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2Variant (be.cronos.keycloak.policy.Argon2VariantPasswordPolicyProviderFactory) is implementing the internal SPI password-policy. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:08,233 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2Version (be.cronos.keycloak.policy.Argon2VersionPasswordPolicyProviderFactory) is implementing the internal SPI password-policy. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:08,233 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2Parallelism (be.cronos.keycloak.policy.Argon2ParallelismPasswordPolicyProviderFactory) is implementing the internal SPI password-policy. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:08,233 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2HashLength (be.cronos.keycloak.policy.Argon2HashLengthPasswordPolicyProviderFactory) is implementing the internal SPI password-policy. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:08,233 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2SaltLength (be.cronos.keycloak.policy.Argon2SaltLengthPasswordPolicyProviderFactory) is implementing the internal SPI password-policy. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:08,233 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2MaxTime (be.cronos.keycloak.policy.Argon2MaxTimePasswordPolicyProviderFactory) is implementing the internal SPI password-policy. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:08,234 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2Memory (be.cronos.keycloak.policy.Argon2MemoryPasswordPolicyProviderFactory) is implementing the internal SPI password-policy. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:13,720 INFO [io.quarkus.deployment.QuarkusAugmentor] (main) Quarkus augmentation completed in 7283ms ae-keycloak-keycloak-1 | Server configuration updated and persisted. Run the following command to review the configuration: ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | kc.sh show-config ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | Next time you run the server, just run: ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | kc.sh start --optimized ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | 2023-11-08 13:37:14,480 INFO [org.keycloak.quarkus.runtime.hostname.DefaultHostnameProvider] (main) Hostname settings: Base URL: http://keycloak.docker.local, Hostname: keycloak.docker.local, Strict HTTPS: false, Path: /, Strict BackChannel: false, Admin URL: , Admin: , Port: -1, Proxied: true ae-keycloak-keycloak-1 | 2023-11-08 13:37:15,807 WARN [org.infinispan.PERSISTENCE] (keycloak-cache-init) ISPN000554: jboss-marshalling is deprecated and planned for removal ae-keycloak-keycloak-1 | 2023-11-08 13:37:15,939 INFO [org.infinispan.CONTAINER] (keycloak-cache-init) ISPN000556: Starting user marshaller 'org.infinispan.jboss.marshalling.core.JBossUserMarshaller' ae-keycloak-keycloak-1 | 2023-11-08 13:37:16,119 INFO [org.jgroups.protocols.aws.S3_PING] (keycloak-cache-init) Set Amazon S3 endpoint to http://s3.docker.local:9090 ae-keycloak-keycloak-1 | 2023-11-08 13:37:16,330 WARN [io.quarkus.vertx.http.runtime.VertxHttpRecorder] (main) The X-Forwarded-* and Forwarded headers will be considered when determining the proxy address. This configuration can cause a security issue as clients can forge requests and send a forwarded header that is not overwritten by the proxy. Please consider use one of these headers just to forward the proxy address in requests. ae-keycloak-keycloak-1 | 2023-11-08 13:37:16,334 INFO [org.keycloak.broker.provider.AbstractIdentityProviderMapper] (main) Registering class org.keycloak.broker.provider.mappersync.ConfigSyncEventListener ae-keycloak-keycloak-1 | 2023-11-08 13:37:16,333 ERROR [org.infinispan.CONFIG] (keycloak-cache-init) ISPN000660: DefaultCacheManager start failed, stopping any running components: org.infinispan.commons.CacheConfigurationException: ISPN000541: Error while trying to create a channel using the specified configuration '[TCP(send_buf_size=5M, thread_pool.max_threads=8, thread_pool.keep_alive_time=5000, thread_pool.enabled=true, bind_port=7800, recv_buf_size=5M, thread_pool.min_threads=2), aws.S3_PING(endpoint=http://s3.docker.local:9090, region_name=eu-central-1, path_style_access_enabled=true, bucket_name=keycloak), MERGE3(max_interval=30000, min_interval=10000), FD_SOCK(), FD_ALL(interval=5000, timeout=30000), VERIFY_SUSPECT(timeout=1500), pbcast.NAKACK2(discard_delivered_msgs=true, use_mcast_xmit=false), UNICAST3(), pbcast.STABLE(desired_avg_gossip=50000, max_bytes=4M), pbcast.GMS(join_timeout=2000, print_local_addr=true), MFC(min_threshold=0.4, max_credits=2M), FRAG2(frag_size=60K)]' ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.channelFromConfigurator(JGroupsTransport.java:779) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.buildChannel(JGroupsTransport.java:748) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.initChannel(JGroupsTransport.java:503) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.start(JGroupsTransport.java:484) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.CorePackageImpl$1.start(CorePackageImpl.java:42) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.CorePackageImpl$1.start(CorePackageImpl.java:27) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.invokeStart(BasicComponentRegistryImpl.java:616) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:607) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807) ae-keycloak-keycloak-1 | at org.infinispan.metrics.impl.MetricsCollector.start(MetricsCollector.java:84) ae-keycloak-keycloak-1 | at org.infinispan.metrics.impl.CorePackageImpl$1.start(CorePackageImpl.java:41) ae-keycloak-keycloak-1 | at org.infinispan.metrics.impl.CorePackageImpl$1.start(CorePackageImpl.java:34) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.invokeStart(BasicComponentRegistryImpl.java:616) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:607) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.startDependencies(BasicComponentRegistryImpl.java:634) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:598) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807) ae-keycloak-keycloak-1 | at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:379) ae-keycloak-keycloak-1 | at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:252) ae-keycloak-keycloak-1 | at org.infinispan.manager.DefaultCacheManager.internalStart(DefaultCacheManager.java:779) ae-keycloak-keycloak-1 | at org.infinispan.manager.DefaultCacheManager.start(DefaultCacheManager.java:747) ae-keycloak-keycloak-1 | at org.infinispan.manager.DefaultCacheManager.(DefaultCacheManager.java:411) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.storage.legacy.infinispan.CacheManagerFactory.startCacheManager(CacheManagerFactory.java:96) ae-keycloak-keycloak-1 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ae-keycloak-keycloak-1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ae-keycloak-keycloak-1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ae-keycloak-keycloak-1 | at java.base/java.lang.Thread.run(Thread.java:840) ae-keycloak-keycloak-1 | Caused by: software.amazon.awssdk.core.exception.SdkClientException: Unable to load an HTTP implementation from any provider in the chain. You must declare a dependency on an appropriate HTTP implementation or pass in an SdkHttpClient explicitly to the client builder. ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:111) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.internal.http.loader.DefaultSdkHttpClientBuilder.lambda$buildWithDefaults$1(DefaultSdkHttpClientBuilder.java:49) ae-keycloak-keycloak-1 | at java.base/java.util.Optional.orElseThrow(Optional.java:403) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.internal.http.loader.DefaultSdkHttpClientBuilder.buildWithDefaults(DefaultSdkHttpClientBuilder.java:43) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.lambda$resolveSyncHttpClient$7(SdkDefaultClientBuilder.java:450) ae-keycloak-keycloak-1 | at java.base/java.util.Optional.orElseGet(Optional.java:364) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.resolveSyncHttpClient(SdkDefaultClientBuilder.java:450) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.finalizeSyncConfiguration(SdkDefaultClientBuilder.java:380) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.syncClientConfiguration(SdkDefaultClientBuilder.java:194) ae-keycloak-keycloak-1 | at software.amazon.awssdk.services.s3.DefaultS3ClientBuilder.buildClient(DefaultS3ClientBuilder.java:39) ae-keycloak-keycloak-1 | at software.amazon.awssdk.services.s3.DefaultS3ClientBuilder.buildClient(DefaultS3ClientBuilder.java:28) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.build(SdkDefaultClientBuilder.java:157) ae-keycloak-keycloak-1 | at org.jgroups.protocols.aws.S3_PING.init(S3_PING.java:113) ae-keycloak-keycloak-1 | at org.jgroups.stack.ProtocolStack.initProtocolStack(ProtocolStack.java:802) ae-keycloak-keycloak-1 | at org.jgroups.stack.ProtocolStack.setup(ProtocolStack.java:442) ae-keycloak-keycloak-1 | at org.jgroups.JChannel.init(JChannel.java:901) ae-keycloak-keycloak-1 | at org.jgroups.JChannel.(JChannel.java:123) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.EmbeddedJGroupsChannelConfigurator.createChannel(EmbeddedJGroupsChannelConfigurator.java:80) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.channelFromConfigurator(JGroupsTransport.java:777) ae-keycloak-keycloak-1 | ... 30 more ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | 2023-11-08 13:37:16,339 INFO [com.arjuna.ats.jbossatx] (main) ARJUNA032014: Stopping transaction recovery manager ae-keycloak-keycloak-1 | 2023-11-08 13:37:16,358 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: Failed to start server in (production) mode ae-keycloak-keycloak-1 | 2023-11-08 13:37:16,358 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) Error details:: java.lang.RuntimeException: Failed to start caches ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.storage.legacy.infinispan.CacheManagerFactory.getOrCreate(CacheManagerFactory.java:61) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.storage.legacy.infinispan.CacheManagerFactory_9497dc12cf1c9738de11a9c4b512d17ae927dceb_Synthetic_ClientProxy.getOrCreate(Unknown Source) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.storage.legacy.infinispan.QuarkusCacheManagerProvider.getCacheManager(QuarkusCacheManagerProvider.java:32) ae-keycloak-keycloak-1 | at org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.lazyInit(DefaultInfinispanConnectionProviderFactory.java:143) ae-keycloak-keycloak-1 | at org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.create(DefaultInfinispanConnectionProviderFactory.java:83) ae-keycloak-keycloak-1 | at org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.create(DefaultInfinispanConnectionProviderFactory.java:67) ae-keycloak-keycloak-1 | at org.keycloak.services.DefaultKeycloakSession.getProvider(DefaultKeycloakSession.java:177) ae-keycloak-keycloak-1 | at org.keycloak.models.sessions.infinispan.InfinispanSingleUseObjectProviderFactory.getSingleUseObjectCache(InfinispanSingleUseObjectProviderFactory.java:53) ae-keycloak-keycloak-1 | at org.keycloak.models.sessions.infinispan.InfinispanSingleUseObjectProviderFactory.postInit(InfinispanSingleUseObjectProviderFactory.java:77) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.integration.QuarkusKeycloakSessionFactory.init(QuarkusKeycloakSessionFactory.java:105) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.integration.jaxrs.QuarkusKeycloakApplication.createSessionFactory(QuarkusKeycloakApplication.java:45) ae-keycloak-keycloak-1 | at org.keycloak.services.resources.KeycloakApplication.startup(KeycloakApplication.java:125) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.integration.QuarkusLifecycleObserver.onStartupEvent(QuarkusLifecycleObserver.java:37) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.integration.QuarkusLifecycleObserver_Observer_onStartupEvent_c9888fa6c2aa9208d4625ee9d83de6fd77e22c83.notify(Unknown Source) ae-keycloak-keycloak-1 | at io.quarkus.arc.impl.EventImpl$Notifier.notifyObservers(EventImpl.java:346) ae-keycloak-keycloak-1 | at io.quarkus.arc.impl.EventImpl$Notifier.notify(EventImpl.java:328) ae-keycloak-keycloak-1 | at io.quarkus.arc.impl.EventImpl.fire(EventImpl.java:82) ae-keycloak-keycloak-1 | at io.quarkus.arc.runtime.ArcRecorder.fireLifecycleEvent(ArcRecorder.java:155) ae-keycloak-keycloak-1 | at io.quarkus.arc.runtime.ArcRecorder.handleLifecycleEvents(ArcRecorder.java:106) ae-keycloak-keycloak-1 | at io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent1144526294.deploy_0(Unknown Source) ae-keycloak-keycloak-1 | at io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent1144526294.deploy(Unknown Source) ae-keycloak-keycloak-1 | at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source) ae-keycloak-keycloak-1 | at io.quarkus.runtime.Application.start(Application.java:101) ae-keycloak-keycloak-1 | at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:111) ae-keycloak-keycloak-1 | at io.quarkus.runtime.Quarkus.run(Quarkus.java:71) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.KeycloakMain.start(KeycloakMain.java:98) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.cli.command.AbstractStartCommand.run(AbstractStartCommand.java:37) ae-keycloak-keycloak-1 | at picocli.CommandLine.executeUserObject(CommandLine.java:2026) ae-keycloak-keycloak-1 | at picocli.CommandLine.access$1500(CommandLine.java:148) ae-keycloak-keycloak-1 | at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461) ae-keycloak-keycloak-1 | at picocli.CommandLine$RunLast.handle(CommandLine.java:2453) ae-keycloak-keycloak-1 | at picocli.CommandLine$RunLast.handle(CommandLine.java:2415) ae-keycloak-keycloak-1 | at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273) ae-keycloak-keycloak-1 | at picocli.CommandLine$RunLast.execute(CommandLine.java:2417) ae-keycloak-keycloak-1 | at picocli.CommandLine.execute(CommandLine.java:2170) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.cli.Picocli.parseAndRun(Picocli.java:100) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.KeycloakMain.main(KeycloakMain.java:88) ae-keycloak-keycloak-1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ae-keycloak-keycloak-1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ae-keycloak-keycloak-1 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ae-keycloak-keycloak-1 | at java.base/java.lang.reflect.Method.invoke(Method.java:568) ae-keycloak-keycloak-1 | at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doRun(QuarkusEntryPoint.java:61) ae-keycloak-keycloak-1 | at io.quarkus.bootstrap.runner.QuarkusEntryPoint.main(QuarkusEntryPoint.java:32) ae-keycloak-keycloak-1 | Caused by: java.util.concurrent.ExecutionException: org.infinispan.manager.EmbeddedCacheManagerStartupException: ISPN000541: Error while trying to create a channel using the specified configuration '[TCP(send_buf_size=5M, thread_pool.max_threads=8, thread_pool.keep_alive_time=5000, thread_pool.enabled=true, bind_port=7800, recv_buf_size=5M, thread_pool.min_threads=2), aws.S3_PING(endpoint=http://s3.docker.local:9090, region_name=eu-central-1, path_style_access_enabled=true, bucket_name=keycloak), MERGE3(max_interval=30000, min_interval=10000), FD_SOCK(), FD_ALL(interval=5000, timeout=30000), VERIFY_SUSPECT(timeout=1500), pbcast.NAKACK2(discard_delivered_msgs=true, use_mcast_xmit=false), UNICAST3(), pbcast.STABLE(desired_avg_gossip=50000, max_bytes=4M), pbcast.GMS(join_timeout=2000, print_local_addr=true), MFC(min_threshold=0.4, max_credits=2M), FRAG2(frag_size=60K)]' ae-keycloak-keycloak-1 | at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) ae-keycloak-keycloak-1 | at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:205) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.storage.legacy.infinispan.CacheManagerFactory.getOrCreate(CacheManagerFactory.java:59) ae-keycloak-keycloak-1 | ... 42 more ae-keycloak-keycloak-1 | Caused by: org.infinispan.manager.EmbeddedCacheManagerStartupException: ISPN000541: Error while trying to create a channel using the specified configuration '[TCP(send_buf_size=5M, thread_pool.max_threads=8, thread_pool.keep_alive_time=5000, thread_pool.enabled=true, bind_port=7800, recv_buf_size=5M, thread_pool.min_threads=2), aws.S3_PING(endpoint=http://s3.docker.local:9090, region_name=eu-central-1, path_style_access_enabled=true, bucket_name=keycloak), MERGE3(max_interval=30000, min_interval=10000), FD_SOCK(), FD_ALL(interval=5000, timeout=30000), VERIFY_SUSPECT(timeout=1500), pbcast.NAKACK2(discard_delivered_msgs=true, use_mcast_xmit=false), UNICAST3(), pbcast.STABLE(desired_avg_gossip=50000, max_bytes=4M), pbcast.GMS(join_timeout=2000, print_local_addr=true), MFC(min_threshold=0.4, max_credits=2M), FRAG2(frag_size=60K)]' ae-keycloak-keycloak-1 | at org.infinispan.manager.DefaultCacheManager.internalStart(DefaultCacheManager.java:782) ae-keycloak-keycloak-1 | at org.infinispan.manager.DefaultCacheManager.start(DefaultCacheManager.java:747) ae-keycloak-keycloak-1 | at org.infinispan.manager.DefaultCacheManager.(DefaultCacheManager.java:411) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.storage.legacy.infinispan.CacheManagerFactory.startCacheManager(CacheManagerFactory.java:96) ae-keycloak-keycloak-1 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ae-keycloak-keycloak-1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ae-keycloak-keycloak-1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ae-keycloak-keycloak-1 | at java.base/java.lang.Thread.run(Thread.java:840) ae-keycloak-keycloak-1 | Caused by: org.infinispan.commons.CacheConfigurationException: ISPN000541: Error while trying to create a channel using the specified configuration '[TCP(send_buf_size=5M, thread_pool.max_threads=8, thread_pool.keep_alive_time=5000, thread_pool.enabled=true, bind_port=7800, recv_buf_size=5M, thread_pool.min_threads=2), aws.S3_PING(endpoint=http://s3.docker.local:9090, region_name=eu-central-1, path_style_access_enabled=true, bucket_name=keycloak), MERGE3(max_interval=30000, min_interval=10000), FD_SOCK(), FD_ALL(interval=5000, timeout=30000), VERIFY_SUSPECT(timeout=1500), pbcast.NAKACK2(discard_delivered_msgs=true, use_mcast_xmit=false), UNICAST3(), pbcast.STABLE(desired_avg_gossip=50000, max_bytes=4M), pbcast.GMS(join_timeout=2000, print_local_addr=true), MFC(min_threshold=0.4, max_credits=2M), FRAG2(frag_size=60K)]' ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.channelFromConfigurator(JGroupsTransport.java:779) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.buildChannel(JGroupsTransport.java:748) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.initChannel(JGroupsTransport.java:503) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.start(JGroupsTransport.java:484) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.CorePackageImpl$1.start(CorePackageImpl.java:42) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.CorePackageImpl$1.start(CorePackageImpl.java:27) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.invokeStart(BasicComponentRegistryImpl.java:616) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:607) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807) ae-keycloak-keycloak-1 | at org.infinispan.metrics.impl.MetricsCollector.start(MetricsCollector.java:84) ae-keycloak-keycloak-1 | at org.infinispan.metrics.impl.CorePackageImpl$1.start(CorePackageImpl.java:41) ae-keycloak-keycloak-1 | at org.infinispan.metrics.impl.CorePackageImpl$1.start(CorePackageImpl.java:34) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.invokeStart(BasicComponentRegistryImpl.java:616) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:607) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.startDependencies(BasicComponentRegistryImpl.java:634) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:598) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807) ae-keycloak-keycloak-1 | at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:379) ae-keycloak-keycloak-1 | at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:252) ae-keycloak-keycloak-1 | at org.infinispan.manager.DefaultCacheManager.internalStart(DefaultCacheManager.java:779) ae-keycloak-keycloak-1 | ... 7 more ae-keycloak-keycloak-1 | Caused by: software.amazon.awssdk.core.exception.SdkClientException: Unable to load an HTTP implementation from any provider in the chain. You must declare a dependency on an appropriate HTTP implementation or pass in an SdkHttpClient explicitly to the client builder. ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:111) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.internal.http.loader.DefaultSdkHttpClientBuilder.lambda$buildWithDefaults$1(DefaultSdkHttpClientBuilder.java:49) ae-keycloak-keycloak-1 | at java.base/java.util.Optional.orElseThrow(Optional.java:403) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.internal.http.loader.DefaultSdkHttpClientBuilder.buildWithDefaults(DefaultSdkHttpClientBuilder.java:43) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.lambda$resolveSyncHttpClient$7(SdkDefaultClientBuilder.java:450) ae-keycloak-keycloak-1 | at java.base/java.util.Optional.orElseGet(Optional.java:364) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.resolveSyncHttpClient(SdkDefaultClientBuilder.java:450) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.finalizeSyncConfiguration(SdkDefaultClientBuilder.java:380) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.syncClientConfiguration(SdkDefaultClientBuilder.java:194) ae-keycloak-keycloak-1 | at software.amazon.awssdk.services.s3.DefaultS3ClientBuilder.buildClient(DefaultS3ClientBuilder.java:39) ae-keycloak-keycloak-1 | at software.amazon.awssdk.services.s3.DefaultS3ClientBuilder.buildClient(DefaultS3ClientBuilder.java:28) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.build(SdkDefaultClientBuilder.java:157) ae-keycloak-keycloak-1 | at org.jgroups.protocols.aws.S3_PING.init(S3_PING.java:113) ae-keycloak-keycloak-1 | at org.jgroups.stack.ProtocolStack.initProtocolStack(ProtocolStack.java:802) ae-keycloak-keycloak-1 | at org.jgroups.stack.ProtocolStack.setup(ProtocolStack.java:442) ae-keycloak-keycloak-1 | at org.jgroups.JChannel.init(JChannel.java:901) ae-keycloak-keycloak-1 | at org.jgroups.JChannel.(JChannel.java:123) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.EmbeddedJGroupsChannelConfigurator.createChannel(EmbeddedJGroupsChannelConfigurator.java:80) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.channelFromConfigurator(JGroupsTransport.java:777) ae-keycloak-keycloak-1 | ... 30 more ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 exited with code 1 ```
Docker Compose configuration example ```shell docker compose up -d && docker compose logs -f keycloak ``` ```yaml # compose.yaml version: "3.8" services: database: image: postgres:15-alpine environment: POSTGRES_DB: keycloak POSTGRES_USER: keycloak POSTGRES_PASSWORD: password volumes: - db_data:/var/lib/postgresql/data s3: image: adobe/s3mock environment: initialBuckets: keycloak debug: true # Nginx Proxy configuration (testing purpose only) VIRTUAL_HOST: s3.docker.local VIRTUAL_PORT: 9090 networks: default: aliases: - s3.docker.local ports: - target: 9090 published: 9090 protocol: tcp - target: 9091 published: 9091 protocol: tcp keycloak: image: keycloak/keycloak:22.0.5 working_dir: /opt/keycloak entrypoint: bin/kc.sh --verbose command: start environment: # https://www.keycloak.org/server/all-config#category-database KC_DB: postgres KC_DB_URL_HOST: database KC_DB_URL_PORT: 5432 KC_DB_URL_DATABASE: keycloak KC_DB_USERNAME: keycloak KC_DB_PASSWORD: password # https://www.keycloak.org/server/configuration#_creating_the_initial_admin_user KEYCLOAK_ADMIN: admin KEYCLOAK_ADMIN_PASSWORD: password # https://www.keycloak.org/server/all-config#category-hostname KC_HOSTNAME_URL: http://keycloak.docker.local KC_ADMIN_HOSTNAME_URL: http://keycloak.docker.local # https://www.keycloak.org/server/all-config#category-http KC_HTTP_ENABLED: true KC_HTTP_PORT: 80 # Custom cache options KC_CACHE_CONFIG_FILE: cache-ispn-s3.xml KC_CACHE_S3_REGION_NAME: eu-central-1 KC_CACHE_S3_BUCKET_NAME: keycloak KC_CACHE_S3_ENDPOINT: http://s3.docker.local:9090 KC_CACHE_S3_PATH_STYLE: true AWS_ACCESS_KEY_ID: aws_access_key AWS_SECRET_KEY: aws_secret_key # Nginx Proxy configuration (testing purpose only) VIRTUAL_HOST: keycloak.docker.local VIRTUAL_PORT: 80 KC_PROXY: edge depends_on: - database volumes: - ./conf:/opt/keycloak/conf:rw - ./providers:/opt/keycloak/providers:rw # use nginx-proxy to prevent port conflict when scaling keycloak service (testing purpose) nginx-proxy: image: nginxproxy/nginx-proxy volumes: - /var/run/docker.sock:/tmp/docker.sock:ro ports: - target: 80 published: 80 protocol: tcp volumes: db_data: ```
belaban commented 8 months ago

I'm not super familiar with aws, but the error message seems pretty obvious. Googling "Unable to load an HTTP implementation from any provider " suggests a solution. Have you tried this? Cheers

On 08.11.23 14:51, Vincent wrote:

Hi,

I'm trying to implement jgroups-aws-3.0.0.Final in Keycloak 22.0.5. Sadly, I cannot build Keycloak properly due to the following exception:

Caused by: software.amazon.awssdk.core.exception.SdkClientException:
Unable to load an HTTP implementation from any provider in the
chain. You must declare a dependency on an appropriate HTTP
implementation or pass in an SdkHttpClient explicitly to the client
builder.

Did I miss something in my configuration, or missed to install any required dependency?

Thanks for your feedback.

Providers:

  • aws-auth-2.21.16.jar
  • aws-core-2.21.16.jar
  • aws-endpoints-spi-2.21.16.jar
  • aws-http-auth-2.21.16.jar
  • aws-http-auth-aws-2.21.16.jar
  • aws-http-auth-spi-2.21.16.jar
  • aws-http-client-spi-2.21.16.jar
  • aws-identity-spi-2.21.16.jar
  • aws-profiles-2.21.16.jar
  • aws-regions-2.21.16.jar
  • aws-s3-2.21.16.jar
  • aws-sdk-core-2.21.16.jar
  • aws-sdk-java-2.21.16.jar
  • aws-utils-2.21.16.jar
  • jgroups-aws-3.0.1.Final.jar

Infinispan configuration

<?xmlversion="1.0"encoding="UTF-8"?>

<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:infinispan:config:14.0 http://www.infinispan.org/schemas/infinispan-config-14.0.xsd" xmlns="urn:infinispan:config:14.0">

 <jgroups>
     <stack  name="s3">
         <TCP  bind_port="7800"
              recv_buf_size="${tcp.recv_buf_size:5M}"
              send_buf_size="${tcp.send_buf_size:5M}"
              thread_pool.enabled="true"
              thread_pool.min_threads="2"
              thread_pool.max_threads="8"
              thread_pool.keep_alive_time="5000"/>

         <aws.S3_PINGregion_name="${env.KC_CACHE_S3_REGION_NAME:eu-central-1}"
                      bucket_name="${env.KC_CACHE_S3_BUCKET_NAME:keycloak-cache}"
                      path_style_access_enabled="${env.KC_CACHE_S3_PATH_STYLE:false}"
                      endpoint="${env.KC_CACHE_S3_ENDPOINT:https://cellar-c2.services.clever-cloud.com}"/>

         <MERGE3  min_interval="10000"  max_interval="30000"/>

         <FD_SOCK/>
         <FD_ALL  timeout="30000"  interval="5000"/>
         <VERIFY_SUSPECT  timeout="1500"/>
         <pbcast.NAKACK2use_mcast_xmit="false"  discard_delivered_msgs="true"/>

         <UNICAST3/>

         <pbcast.STABLEdesired_avg_gossip="50000"  max_bytes="4M"/>
         <pbcast.GMSprint_local_addr="true"  join_timeout="2000"/>
         <MFC  max_credits="2M"  min_threshold="0.4"/>
         <FRAG2  frag_size="60K"/>
     </stack>
 </jgroups>

 <cache-container  name="keycloak">
     <transport  lock-timeout="60000"  stack="s3"/>
     <local-cache  name="realms"  simple-cache="true">
         <encoding>
             <key  media-type="application/x-java-object"/>
             <value  media-type="application/x-java-object"/>
         </encoding>
         <memory  max-count="10000"/>
     </local-cache>
     <local-cache  name="users"  simple-cache="true">
         <encoding>
             <key  media-type="application/x-java-object"/>
             <value  media-type="application/x-java-object"/>
         </encoding>
         <memory  max-count="10000"/>
     </local-cache>
     <distributed-cache  name="sessions"  owners="${env.KC_CACHE_OWNERS:2}">
         <expiration  lifespan="-1"/>
     </distributed-cache>
     <distributed-cache  name="authenticationSessions"  owners="${env.KC_CACHE_OWNERS:2}">
         <expiration  lifespan="-1"/>
     </distributed-cache>
     <distributed-cache  name="offlineSessions"  owners="${env.KC_CACHE_OWNERS:2}">
         <expiration  lifespan="-1"/>
     </distributed-cache>
     <distributed-cache  name="clientSessions"  owners="${env.KC_CACHE_OWNERS:2}">
         <expiration  lifespan="-1"/>
     </distributed-cache>
     <distributed-cache  name="offlineClientSessions"  owners="${env.KC_CACHE_OWNERS:2}">
         <expiration  lifespan="-1"/>
     </distributed-cache>
     <distributed-cache  name="loginFailures"  owners="${env.KC_CACHE_OWNERS:2}">
         <expiration  lifespan="-1"/>
     </distributed-cache>
     <local-cache  name="authorization"  simple-cache="true">
         <encoding>
             <key  media-type="application/x-java-object"/>
             <value  media-type="application/x-java-object"/>
         </encoding>
         <memory  max-count="10000"/>
     </local-cache>
     <replicated-cache  name="work">
         <expiration  lifespan="-1"/>
     </replicated-cache>
     <local-cache  name="keys"  simple-cache="true">
         <encoding>
             <key  media-type="application/x-java-object"/>
             <value  media-type="application/x-java-object"/>
         </encoding>
         <expiration  max-idle="3600000"/>
         <memory  max-count="1000"/>
     </local-cache>
     <distributed-cache  name="actionTokens"  owners="${env.KC_CACHE_OWNERS:2}">
         <encoding>
             <key  media-type="application/x-java-object"/>
             <value  media-type="application/x-java-object"/>
         </encoding>
         <expiration  max-idle="-1"  lifespan="-1"  interval="300000"/>
         <memory  max-count="-1"/>
     </distributed-cache>
 </cache-container>

Full logs

|ae-keycloak-keycloak-1 | Changes detected in configuration. Updating the server image. ae-keycloak-keycloak-1 | Updating the configuration and installing your custom providers, if any. Please wait. ae-keycloak-keycloak-1 | 2023-11-08 13:37:07,849 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2 (be.cronos.keycloak.credential.hash.Argon2PasswordHashProviderFactory) is implementing the internal SPI password-hashing. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:07,849 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: md5-ae-customer (com.keenetic.account.keycloak.anotherhashes.MD5AeCustomerPasswordHashProviderFactory) is implementing the internal SPI password-hashing. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:07,849 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: md5-ae-owner (com.keenetic.account.keycloak.anotherhashes.MD5AeOwnerPasswordHashProviderFactory) is implementing the internal SPI password-hashing. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:08,233 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2Iterations (be.cronos.keycloak.policy.Argon2IterationsPasswordPolicyProviderFactory) is implementing the internal SPI password-policy. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:08,233 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2Variant (be.cronos.keycloak.policy.Argon2VariantPasswordPolicyProviderFactory) is implementing the internal SPI password-policy. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:08,233 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2Version (be.cronos.keycloak.policy.Argon2VersionPasswordPolicyProviderFactory) is implementing the internal SPI password-policy. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:08,233 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2Parallelism (be.cronos.keycloak.policy.Argon2ParallelismPasswordPolicyProviderFactory) is implementing the internal SPI password-policy. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:08,233 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2HashLength (be.cronos.keycloak.policy.Argon2HashLengthPasswordPolicyProviderFactory) is implementing the internal SPI password-policy. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:08,233 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2SaltLength (be.cronos.keycloak.policy.Argon2SaltLengthPasswordPolicyProviderFactory) is implementing the internal SPI password-policy. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:08,233 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2MaxTime (be.cronos.keycloak.policy.Argon2MaxTimePasswordPolicyProviderFactory) is implementing the internal SPI password-policy. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:08,234 WARN [org.keycloak.services] (build-34) KC-SERVICES0047: argon2Memory (be.cronos.keycloak.policy.Argon2MemoryPasswordPolicyProviderFactory) is implementing the internal SPI password-policy. This SPI is internal and may change without notice ae-keycloak-keycloak-1 | 2023-11-08 13:37:13,720 INFO [io.quarkus.deployment.QuarkusAugmentor] (main) Quarkus augmentation completed in 7283ms ae-keycloak-keycloak-1 | Server configuration updated and persisted. Run the following command to review the configuration: ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | kc.sh show-config ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | Next time you run the server, just run: ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | kc.sh start --optimized ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | 2023-11-08 13:37:14,480 INFO [org.keycloak.quarkus.runtime.hostname.DefaultHostnameProvider] (main) Hostname settings: Base URL: http://keycloak.docker.local, Hostname: keycloak.docker.local, Strict HTTPS: false, Path: /, Strict BackChannel: false, Admin URL: , Admin: , Port: -1, Proxied: true ae-keycloak-keycloak-1 | 2023-11-08 13:37:15,807 WARN [org.infinispan.PERSISTENCE] (keycloak-cache-init) ISPN000554: jboss-marshalling is deprecated and planned for removal ae-keycloak-keycloak-1 | 2023-11-08 13:37:15,939 INFO [org.infinispan.CONTAINER] (keycloak-cache-init) ISPN000556: Starting user marshaller 'org.infinispan.jboss.marshalling.core.JBossUserMarshaller' ae-keycloak-keycloak-1 | 2023-11-08 13:37:16,119 INFO [org.jgroups.protocols.aws.S3_PING] (keycloak-cache-init) Set Amazon S3 endpoint to http://s3.docker.local:9090 ae-keycloak-keycloak-1 | 2023-11-08 13:37:16,330 WARN [io.quarkus.vertx.http.runtime.VertxHttpRecorder] (main) The X-Forwarded-* and Forwarded headers will be considered when determining the proxy address. This configuration can cause a security issue as clients can forge requests and send a forwarded header that is not overwritten by the proxy. Please consider use one of these headers just to forward the proxy address in requests. ae-keycloak-keycloak-1 | 2023-11-08 13:37:16,334 INFO [org.keycloak.broker.provider.AbstractIdentityProviderMapper] (main) Registering class org.keycloak.broker.provider.mappersync.ConfigSyncEventListener ae-keycloak-keycloak-1 | 2023-11-08 13:37:16,333 ERROR [org.infinispan.CONFIG] (keycloak-cache-init) ISPN000660: DefaultCacheManager start failed, stopping any running components: org.infinispan.commons.CacheConfigurationException: ISPN000541: Error while trying to create a channel using the specified configuration '[TCP(send_buf_size=5M, thread_pool.max_threads=8, thread_pool.keep_alive_time=5000, thread_pool.enabled=true, bind_port=7800, recv_buf_size=5M, thread_pool.min_threads=2), aws.S3_PING(endpoint=http://s3.docker.local:9090, region_name=eu-central-1, path_style_access_enabled=true, bucket_name=keycloak), MERGE3(max_interval=30000, min_interval=10000), FD_SOCK(), FD_ALL(interval=5000, timeout=30000), VERIFY_SUSPECT(timeout=1500), pbcast.NAKACK2(discard_delivered_msgs=true, use_mcast_xmit=false), UNICAST3(), pbcast.STABLE(desired_avg_gossip=50000, max_bytes=4M), pbcast.GMS(join_timeout=2000, print_local_addr=true), MFC(min_threshold=0.4, max_credits=2M), FRAG2(frag_size=60K)]' ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.channelFromConfigurator(JGroupsTransport.java:779) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.buildChannel(JGroupsTransport.java:748) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.initChannel(JGroupsTransport.java:503) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.start(JGroupsTransport.java:484) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.CorePackageImpl$1.start(CorePackageImpl.java:42) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.CorePackageImpl$1.start(CorePackageImpl.java:27) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.invokeStart(BasicComponentRegistryImpl.java:616) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:607) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807) ae-keycloak-keycloak-1 | at org.infinispan.metrics.impl.MetricsCollector.start(MetricsCollector.java:84) ae-keycloak-keycloak-1 | at org.infinispan.metrics.impl.CorePackageImpl$1.start(CorePackageImpl.java:41) ae-keycloak-keycloak-1 | at org.infinispan.metrics.impl.CorePackageImpl$1.start(CorePackageImpl.java:34) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.invokeStart(BasicComponentRegistryImpl.java:616) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:607) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.startDependencies(BasicComponentRegistryImpl.java:634) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:598) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807) ae-keycloak-keycloak-1 | at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:379) ae-keycloak-keycloak-1 | at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:252) ae-keycloak-keycloak-1 | at org.infinispan.manager.DefaultCacheManager.internalStart(DefaultCacheManager.java:779) ae-keycloak-keycloak-1 | at org.infinispan.manager.DefaultCacheManager.start(DefaultCacheManager.java:747) ae-keycloak-keycloak-1 | at org.infinispan.manager.DefaultCacheManager.(DefaultCacheManager.java:411) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.storage.legacy.infinispan.CacheManagerFactory.startCacheManager(CacheManagerFactory.java:96) ae-keycloak-keycloak-1 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ae-keycloak-keycloak-1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ae-keycloak-keycloak-1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ae-keycloak-keycloak-1 | at java.base/java.lang.Thread.run(Thread.java:840) ae-keycloak-keycloak-1 | Caused by: software.amazon.awssdk.core.exception.SdkClientException: Unable to load an HTTP implementation from any provider in the chain. You must declare a dependency on an appropriate HTTP implementation or pass in an SdkHttpClient explicitly to the client builder. ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:111) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.internal.http.loader.DefaultSdkHttpClientBuilder.lambda$buildWithDefaults$1(DefaultSdkHttpClientBuilder.java:49) ae-keycloak-keycloak-1 | at java.base/java.util.Optional.orElseThrow(Optional.java:403) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.internal.http.loader.DefaultSdkHttpClientBuilder.buildWithDefaults(DefaultSdkHttpClientBuilder.java:43) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.lambda$resolveSyncHttpClient$7(SdkDefaultClientBuilder.java:450) ae-keycloak-keycloak-1 | at java.base/java.util.Optional.orElseGet(Optional.java:364) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.resolveSyncHttpClient(SdkDefaultClientBuilder.java:450) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.finalizeSyncConfiguration(SdkDefaultClientBuilder.java:380) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.syncClientConfiguration(SdkDefaultClientBuilder.java:194) ae-keycloak-keycloak-1 | at software.amazon.awssdk.services.s3.DefaultS3ClientBuilder.buildClient(DefaultS3ClientBuilder.java:39) ae-keycloak-keycloak-1 | at software.amazon.awssdk.services.s3.DefaultS3ClientBuilder.buildClient(DefaultS3ClientBuilder.java:28) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.build(SdkDefaultClientBuilder.java:157) ae-keycloak-keycloak-1 | at org.jgroups.protocols.aws.S3_PING.init(S3_PING.java:113) ae-keycloak-keycloak-1 | at org.jgroups.stack.ProtocolStack.initProtocolStack(ProtocolStack.java:802) ae-keycloak-keycloak-1 | at org.jgroups.stack.ProtocolStack.setup(ProtocolStack.java:442) ae-keycloak-keycloak-1 | at org.jgroups.JChannel.init(JChannel.java:901) ae-keycloak-keycloak-1 | at org.jgroups.JChannel.(JChannel.java:123) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.EmbeddedJGroupsChannelConfigurator.createChannel(EmbeddedJGroupsChannelConfigurator.java:80) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.channelFromConfigurator(JGroupsTransport.java:777) ae-keycloak-keycloak-1 | ... 30 more ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | 2023-11-08 13:37:16,339 INFO [com.arjuna.ats.jbossatx] (main) ARJUNA032014: Stopping transaction recovery manager ae-keycloak-keycloak-1 | 2023-11-08 13:37:16,358 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: Failed to start server in (production) mode ae-keycloak-keycloak-1 | 2023-11-08 13:37:16,358 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) Error details:: java.lang.RuntimeException: Failed to start caches ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.storage.legacy.infinispan.CacheManagerFactory.getOrCreate(CacheManagerFactory.java:61) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.storage.legacy.infinispan.CacheManagerFactory_9497dc12cf1c9738de11a9c4b512d17ae927dceb_Synthetic_ClientProxy.getOrCreate(Unknown Source) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.storage.legacy.infinispan.QuarkusCacheManagerProvider.getCacheManager(QuarkusCacheManagerProvider.java:32) ae-keycloak-keycloak-1 | at org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.lazyInit(DefaultInfinispanConnectionProviderFactory.java:143) ae-keycloak-keycloak-1 | at org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.create(DefaultInfinispanConnectionProviderFactory.java:83) ae-keycloak-keycloak-1 | at org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.create(DefaultInfinispanConnectionProviderFactory.java:67) ae-keycloak-keycloak-1 | at org.keycloak.services.DefaultKeycloakSession.getProvider(DefaultKeycloakSession.java:177) ae-keycloak-keycloak-1 | at org.keycloak.models.sessions.infinispan.InfinispanSingleUseObjectProviderFactory.getSingleUseObjectCache(InfinispanSingleUseObjectProviderFactory.java:53) ae-keycloak-keycloak-1 | at org.keycloak.models.sessions.infinispan.InfinispanSingleUseObjectProviderFactory.postInit(InfinispanSingleUseObjectProviderFactory.java:77) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.integration.QuarkusKeycloakSessionFactory.init(QuarkusKeycloakSessionFactory.java:105) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.integration.jaxrs.QuarkusKeycloakApplication.createSessionFactory(QuarkusKeycloakApplication.java:45) ae-keycloak-keycloak-1 | at org.keycloak.services.resources.KeycloakApplication.startup(KeycloakApplication.java:125) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.integration.QuarkusLifecycleObserver.onStartupEvent(QuarkusLifecycleObserver.java:37) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.integration.QuarkusLifecycleObserver_Observer_onStartupEvent_c9888fa6c2aa9208d4625ee9d83de6fd77e22c83.notify(Unknown Source) ae-keycloak-keycloak-1 | at io.quarkus.arc.impl.EventImpl$Notifier.notifyObservers(EventImpl.java:346) ae-keycloak-keycloak-1 | at io.quarkus.arc.impl.EventImpl$Notifier.notify(EventImpl.java:328) ae-keycloak-keycloak-1 | at io.quarkus.arc.impl.EventImpl.fire(EventImpl.java:82) ae-keycloak-keycloak-1 | at io.quarkus.arc.runtime.ArcRecorder.fireLifecycleEvent(ArcRecorder.java:155) ae-keycloak-keycloak-1 | at io.quarkus.arc.runtime.ArcRecorder.handleLifecycleEvents(ArcRecorder.java:106) ae-keycloak-keycloak-1 | at io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent1144526294.deploy_0(Unknown Source) ae-keycloak-keycloak-1 | at io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent1144526294.deploy(Unknown Source) ae-keycloak-keycloak-1 | at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source) ae-keycloak-keycloak-1 | at io.quarkus.runtime.Application.start(Application.java:101) ae-keycloak-keycloak-1 | at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:111) ae-keycloak-keycloak-1 | at io.quarkus.runtime.Quarkus.run(Quarkus.java:71) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.KeycloakMain.start(KeycloakMain.java:98) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.cli.command.AbstractStartCommand.run(AbstractStartCommand.java:37) ae-keycloak-keycloak-1 | at picocli.CommandLine.executeUserObject(CommandLine.java:2026) ae-keycloak-keycloak-1 | at picocli.CommandLine.access$1500(CommandLine.java:148) ae-keycloak-keycloak-1 | at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461) ae-keycloak-keycloak-1 | at picocli.CommandLine$RunLast.handle(CommandLine.java:2453) ae-keycloak-keycloak-1 | at picocli.CommandLine$RunLast.handle(CommandLine.java:2415) ae-keycloak-keycloak-1 | at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273) ae-keycloak-keycloak-1 | at picocli.CommandLine$RunLast.execute(CommandLine.java:2417) ae-keycloak-keycloak-1 | at picocli.CommandLine.execute(CommandLine.java:2170) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.cli.Picocli.parseAndRun(Picocli.java:100) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.KeycloakMain.main(KeycloakMain.java:88) ae-keycloak-keycloak-1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ae-keycloak-keycloak-1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ae-keycloak-keycloak-1 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ae-keycloak-keycloak-1 | at java.base/java.lang.reflect.Method.invoke(Method.java:568) ae-keycloak-keycloak-1 | at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doRun(QuarkusEntryPoint.java:61) ae-keycloak-keycloak-1 | at io.quarkus.bootstrap.runner.QuarkusEntryPoint.main(QuarkusEntryPoint.java:32) ae-keycloak-keycloak-1 | Caused by: java.util.concurrent.ExecutionException: org.infinispan.manager.EmbeddedCacheManagerStartupException: ISPN000541: Error while trying to create a channel using the specified configuration '[TCP(send_buf_size=5M, thread_pool.max_threads=8, thread_pool.keep_alive_time=5000, thread_pool.enabled=true, bind_port=7800, recv_buf_size=5M, thread_pool.min_threads=2), aws.S3_PING(endpoint=http://s3.docker.local:9090, region_name=eu-central-1, path_style_access_enabled=true, bucket_name=keycloak), MERGE3(max_interval=30000, min_interval=10000), FD_SOCK(), FD_ALL(interval=5000, timeout=30000), VERIFY_SUSPECT(timeout=1500), pbcast.NAKACK2(discard_delivered_msgs=true, use_mcast_xmit=false), UNICAST3(), pbcast.STABLE(desired_avg_gossip=50000, max_bytes=4M), pbcast.GMS(join_timeout=2000, print_local_addr=true), MFC(min_threshold=0.4, max_credits=2M), FRAG2(frag_size=60K)]' ae-keycloak-keycloak-1 | at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) ae-keycloak-keycloak-1 | at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:205) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.storage.legacy.infinispan.CacheManagerFactory.getOrCreate(CacheManagerFactory.java:59) ae-keycloak-keycloak-1 | ... 42 more ae-keycloak-keycloak-1 | Caused by: org.infinispan.manager.EmbeddedCacheManagerStartupException: ISPN000541: Error while trying to create a channel using the specified configuration '[TCP(send_buf_size=5M, thread_pool.max_threads=8, thread_pool.keep_alive_time=5000, thread_pool.enabled=true, bind_port=7800, recv_buf_size=5M, thread_pool.min_threads=2), aws.S3_PING(endpoint=http://s3.docker.local:9090, region_name=eu-central-1, path_style_access_enabled=true, bucket_name=keycloak), MERGE3(max_interval=30000, min_interval=10000), FD_SOCK(), FD_ALL(interval=5000, timeout=30000), VERIFY_SUSPECT(timeout=1500), pbcast.NAKACK2(discard_delivered_msgs=true, use_mcast_xmit=false), UNICAST3(), pbcast.STABLE(desired_avg_gossip=50000, max_bytes=4M), pbcast.GMS(join_timeout=2000, print_local_addr=true), MFC(min_threshold=0.4, max_credits=2M), FRAG2(frag_size=60K)]' ae-keycloak-keycloak-1 | at org.infinispan.manager.DefaultCacheManager.internalStart(DefaultCacheManager.java:782) ae-keycloak-keycloak-1 | at org.infinispan.manager.DefaultCacheManager.start(DefaultCacheManager.java:747) ae-keycloak-keycloak-1 | at org.infinispan.manager.DefaultCacheManager.(DefaultCacheManager.java:411) ae-keycloak-keycloak-1 | at org.keycloak.quarkus.runtime.storage.legacy.infinispan.CacheManagerFactory.startCacheManager(CacheManagerFactory.java:96) ae-keycloak-keycloak-1 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ae-keycloak-keycloak-1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ae-keycloak-keycloak-1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ae-keycloak-keycloak-1 | at java.base/java.lang.Thread.run(Thread.java:840) ae-keycloak-keycloak-1 | Caused by: org.infinispan.commons.CacheConfigurationException: ISPN000541: Error while trying to create a channel using the specified configuration '[TCP(send_buf_size=5M, thread_pool.max_threads=8, thread_pool.keep_alive_time=5000, thread_pool.enabled=true, bind_port=7800, recv_buf_size=5M, thread_pool.min_threads=2), aws.S3_PING(endpoint=http://s3.docker.local:9090, region_name=eu-central-1, path_style_access_enabled=true, bucket_name=keycloak), MERGE3(max_interval=30000, min_interval=10000), FD_SOCK(), FD_ALL(interval=5000, timeout=30000), VERIFY_SUSPECT(timeout=1500), pbcast.NAKACK2(discard_delivered_msgs=true, use_mcast_xmit=false), UNICAST3(), pbcast.STABLE(desired_avg_gossip=50000, max_bytes=4M), pbcast.GMS(join_timeout=2000, print_local_addr=true), MFC(min_threshold=0.4, max_credits=2M), FRAG2(frag_size=60K)]' ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.channelFromConfigurator(JGroupsTransport.java:779) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.buildChannel(JGroupsTransport.java:748) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.initChannel(JGroupsTransport.java:503) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.start(JGroupsTransport.java:484) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.CorePackageImpl$1.start(CorePackageImpl.java:42) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.CorePackageImpl$1.start(CorePackageImpl.java:27) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.invokeStart(BasicComponentRegistryImpl.java:616) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:607) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807) ae-keycloak-keycloak-1 | at org.infinispan.metrics.impl.MetricsCollector.start(MetricsCollector.java:84) ae-keycloak-keycloak-1 | at org.infinispan.metrics.impl.CorePackageImpl$1.start(CorePackageImpl.java:41) ae-keycloak-keycloak-1 | at org.infinispan.metrics.impl.CorePackageImpl$1.start(CorePackageImpl.java:34) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.invokeStart(BasicComponentRegistryImpl.java:616) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:607) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.startDependencies(BasicComponentRegistryImpl.java:634) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:598) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576) ae-keycloak-keycloak-1 | at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807) ae-keycloak-keycloak-1 | at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:379) ae-keycloak-keycloak-1 | at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:252) ae-keycloak-keycloak-1 | at org.infinispan.manager.DefaultCacheManager.internalStart(DefaultCacheManager.java:779) ae-keycloak-keycloak-1 | ... 7 more ae-keycloak-keycloak-1 | Caused by: software.amazon.awssdk.core.exception.SdkClientException: Unable to load an HTTP implementation from any provider in the chain. You must declare a dependency on an appropriate HTTP implementation or pass in an SdkHttpClient explicitly to the client builder. ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:111) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.internal.http.loader.DefaultSdkHttpClientBuilder.lambda$buildWithDefaults$1(DefaultSdkHttpClientBuilder.java:49) ae-keycloak-keycloak-1 | at java.base/java.util.Optional.orElseThrow(Optional.java:403) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.internal.http.loader.DefaultSdkHttpClientBuilder.buildWithDefaults(DefaultSdkHttpClientBuilder.java:43) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.lambda$resolveSyncHttpClient$7(SdkDefaultClientBuilder.java:450) ae-keycloak-keycloak-1 | at java.base/java.util.Optional.orElseGet(Optional.java:364) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.resolveSyncHttpClient(SdkDefaultClientBuilder.java:450) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.finalizeSyncConfiguration(SdkDefaultClientBuilder.java:380) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.syncClientConfiguration(SdkDefaultClientBuilder.java:194) ae-keycloak-keycloak-1 | at software.amazon.awssdk.services.s3.DefaultS3ClientBuilder.buildClient(DefaultS3ClientBuilder.java:39) ae-keycloak-keycloak-1 | at software.amazon.awssdk.services.s3.DefaultS3ClientBuilder.buildClient(DefaultS3ClientBuilder.java:28) ae-keycloak-keycloak-1 | at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.build(SdkDefaultClientBuilder.java:157) ae-keycloak-keycloak-1 | at org.jgroups.protocols.aws.S3_PING.init(S3_PING.java:113) ae-keycloak-keycloak-1 | at org.jgroups.stack.ProtocolStack.initProtocolStack(ProtocolStack.java:802) ae-keycloak-keycloak-1 | at org.jgroups.stack.ProtocolStack.setup(ProtocolStack.java:442) ae-keycloak-keycloak-1 | at org.jgroups.JChannel.init(JChannel.java:901) ae-keycloak-keycloak-1 | at org.jgroups.JChannel.(JChannel.java:123) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.EmbeddedJGroupsChannelConfigurator.createChannel(EmbeddedJGroupsChannelConfigurator.java:80) ae-keycloak-keycloak-1 | at org.infinispan.remoting.transport.jgroups.JGroupsTransport.channelFromConfigurator(JGroupsTransport.java:777) ae-keycloak-keycloak-1 | ... 30 more ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 | ae-keycloak-keycloak-1 exited with code 1 |

Docker Compose configuration example

docker compose up -d&& docker compose logs -f keycloak

compose.yaml

version:"3.8"

services: database: image:postgres:15-alpine environment: POSTGRES_DB:keycloak POSTGRES_USER:keycloak POSTGRES_PASSWORD:password volumes: -db_data:/var/lib/postgresql/data

s3: image:adobe/s3mock environment: initialBuckets:keycloak debug:true

Nginx Proxy configuration (testing purpose only)

   VIRTUAL_HOST:s3.docker.local
   VIRTUAL_PORT:9090
 networks:
   default:
     aliases:
       -s3.docker.local
 ports:
   -target:9090
     published:9090
     protocol:tcp
   -target:9091
     published:9091
     protocol:tcp

keycloak: image:keycloak/keycloak:22.0.5 working_dir:/opt/keycloak entrypoint:bin/kc.sh --verbose command:start environment:

https://www.keycloak.org/server/all-config#category-database

   KC_DB:postgres
   KC_DB_URL_HOST:database
   KC_DB_URL_PORT:5432
   KC_DB_URL_DATABASE:keycloak
   KC_DB_USERNAME:keycloak
   KC_DB_PASSWORD:password
   # 

https://www.keycloak.org/server/configuration#_creating_the_initial_admin_user KEYCLOAK_ADMIN:admin KEYCLOAK_ADMIN_PASSWORD:password

https://www.keycloak.org/server/all-config#category-hostname

   KC_HOSTNAME_URL:http://keycloak.docker.local
   KC_ADMIN_HOSTNAME_URL:http://keycloak.docker.local
   # https://www.keycloak.org/server/all-config#category-http
   KC_HTTP_ENABLED:true
   KC_HTTP_PORT:80
   # Custom cache options
   KC_CACHE_CONFIG_FILE:cache-ispn-s3.xml
   KC_CACHE_S3_REGION_NAME:eu-central-1
   KC_CACHE_S3_BUCKET_NAME:keycloak
   KC_CACHE_S3_ENDPOINT:http://s3.docker.local:9090
   KC_CACHE_S3_PATH_STYLE:true
   AWS_ACCESS_KEY_ID:aws_access_key
   AWS_SECRET_KEY:aws_secret_key
   # Nginx Proxy configuration (testing purpose only)
   VIRTUAL_HOST:keycloak.docker.local
   VIRTUAL_PORT:80
   KC_PROXY:edge
 depends_on:
   -database
 volumes:
   -./conf:/opt/keycloak/conf:rw
   -./providers:/opt/keycloak/providers:rw

use nginx-proxy to prevent port conflict when scaling keycloak service

(testing purpose) nginx-proxy: image:nginxproxy/nginx-proxy volumes: -/var/run/docker.sock:/tmp/docker.sock:ro ports: -target:80 published:80 protocol:tcp

volumes: db_data:

— Reply to this email directly, view it on GitHub https://github.com/jgroups-extras/jgroups-aws/issues/301, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADPZXJ3LJFTCIGIU7THSHTYDOE5LAVCNFSM6AAAAAA7C5LV26VHI2DSMVQWIX3LMV43ASLTON2WKOZRHE4DGNRWGIZDONY. You are receiving this because you are subscribed to this thread.Message ID: @.***>

-- Bela Ban | http://www.jgroups.org

vincentchalamon commented 8 months ago

Sorry, I'm not a JAVA developer and don't know how those libraries work together. I already included the aws-httpclient and expected it to fix it, but it's not enough. Adding aws-apache-client fixed it. Thanks!

rhusar commented 7 months ago

@vincentchalamon Perhaps we are missing information in docs on how to do this easily. Opened https://github.com/jgroups-extras/jgroups-aws/issues/305 to track this.