so I have some containers that work together. this setup is meant as a local development environment for our micro-services . I use keycloak for authentication . this simple request to get user_info
curl -H "Authorization: Bearer TOKEN" http://localhost:8080/auth/realms/main/protocol/openid-connect/userinfo
works if the request was done from my machine"host" to keycloak container but if I do it from any of my API containers to keyclaok it dose not work I have to change the host in the URL from localhost to the container name. and from the logs I think it's something to do the CORS.
those are the logs for the ok call "host->keycloak container"
09:30:27,702 TRACE [org.keycloak.services.resources.Cors] (default task-1) No origin header ignoring
09:30:27,702 DEBUG [org.keycloak.transaction.JtaTransactionWrapper] (default task-1) JtaTransactionWrapper commit
09:30:27,703 DEBUG [org.keycloak.transaction.JtaTransactionWrapper] (default task-1) JtaTransactionWrapper end
09:30:27,703 TRACE [org.keycloak.connections.jpa.DefaultJpaConnectionProvider] (default task-1) DefaultJpaConnectionProvider close()
09:30:28,129 DEBUG [org.keycloak.transaction.JtaTransactionWrapper] (default task-1) new JtaTransactionWrapper
09:30:28,129 DEBUG [org.keycloak.transaction.JtaTransactionWrapper] (default task-1) was existing? false
09:30:28,129 TRACE [org.keycloak.models.cache.infinispan.RealmCacheSession] (default task-1) realm by name cache hit: main
09:30:28,129 TRACE [org.keycloak.models.cache.infinispan.RealmCacheSession] (default task-1) by id cache hit: main
09:30:28,131 TRACE [org.keycloak.keys.DefaultKeyManager] (default task-1) Found key: realm=main kid=0C42WRjTe1IwYWqZIS_ITxm3tKFrTAbztybd6C9b7M0 algorithm=RS256 use=SIG
09:30:28,131 TRACE [org.keycloak.models.cache.infinispan.RealmCacheSession] (default task-1) client by name cache hit: dashboard
09:30:28,131 TRACE [org.keycloak.models.cache.infinispan.RealmCacheSession] (default task-1) client by id cache hit: dashboard
09:30:28,132 TRACE [org.keycloak.models.cache.infinispan.RealmCacheSession] (default task-1) by id cache hit: main
09:30:28,132 TRACE [org.keycloak.models.cache.infinispan.RealmCacheSession] (default task-1) client by id cache hit: dashboard
09:30:28,132 TRACE [org.keycloak.models.cache.infinispan.RealmCacheSession] (default task-1) by id cache hit: main
09:30:28,132 DEBUG [org.keycloak.models.sessions.infinispan.InfinispanUserSessionProvider] (default task-1) getUserSessionWithPredicate(540e8e5e-9385-4fd8-924d-f85c752770b4): found in local cache
09:30:28,132 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) getuserById 1a14f370-5db2-4b28-b5e7-a4bd5eb68d73
09:30:28,132 TRACE [org.keycloak.models.cache.infinispan.RealmCacheSession] (default task-1) client by id cache hit: dashboard
09:30:28,132 TRACE [org.keycloak.connections.jpa.DefaultJpaConnectionProviderFactory] (default task-1) Create JpaConnectionProvider
09:30:28,134 TRACE [org.keycloak.models.cache.infinispan.RealmCacheSession] (default task-1) client by id cache hit: dashboard
09:30:28,134 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) getuserById 1a14f370-5db2-4b28-b5e7-a4bd5eb68d73
09:30:28,134 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) return managedusers
09:30:28,134 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) getuserById 1a14f370-5db2-4b28-b5e7-a4bd5eb68d73
09:30:28,134 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) return managedusers
09:30:28,134 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) getuserById 1a14f370-5db2-4b28-b5e7-a4bd5eb68d73
09:30:28,134 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) return managedusers
09:30:28,134 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) getuserById 1a14f370-5db2-4b28-b5e7-a4bd5eb68d73
09:30:28,134 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) return managedusers
09:30:28,134 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) getuserById 1a14f370-5db2-4b28-b5e7-a4bd5eb68d73
09:30:28,134 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) return managedusers
09:30:28,134 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) getuserById 1a14f370-5db2-4b28-b5e7-a4bd5eb68d73
09:30:28,134 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) return managedusers
09:30:28,134 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) getuserById 1a14f370-5db2-4b28-b5e7-a4bd5eb68d73
09:30:28,134 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) return managedusers
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) getuserById 1a14f370-5db2-4b28-b5e7-a4bd5eb68d73
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) return managedusers
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) getuserById 1a14f370-5db2-4b28-b5e7-a4bd5eb68d73
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) return managedusers
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) getuserById 1a14f370-5db2-4b28-b5e7-a4bd5eb68d73
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) return managedusers
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) getuserById 1a14f370-5db2-4b28-b5e7-a4bd5eb68d73
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) return managedusers
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) getuserById 1a14f370-5db2-4b28-b5e7-a4bd5eb68d73
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) return managedusers
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) getuserById 1a14f370-5db2-4b28-b5e7-a4bd5eb68d73
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) return managedusers
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) getuserById 1a14f370-5db2-4b28-b5e7-a4bd5eb68d73
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) return managedusers
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) getuserById 1a14f370-5db2-4b28-b5e7-a4bd5eb68d73
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) return managedusers
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) getuserById 1a14f370-5db2-4b28-b5e7-a4bd5eb68d73
09:30:28,135 TRACE [org.keycloak.models.cache.infinispan.UserCacheSession] (default task-1) return managedusers
09:30:28,136 TRACE [org.keycloak.events] (default task-1) type=USER_INFO_REQUEST, realmId=main, clientId=dashboard, userId=1a14f370-5db2-4b28-b5e7-a4bd5eb68d73, ipAddress=172.18.0.1, auth_method=validate_access_token, signature_required=false, username=salmanadmin, requestUri=http://localhost:8080/auth/realms/main/protocol/openid-connect/userinfo, cookies=[]
and those are for the failed call "api container -> keycloak container"
09:27:23,898 DEBUG [org.keycloak.transaction.JtaTransactionWrapper] (default task-1) JtaTransactionWrapper commit
09:27:23,898 DEBUG [org.keycloak.transaction.JtaTransactionWrapper] (default task-1) JtaTransactionWrapper end
09:27:25,335 DEBUG [org.keycloak.transaction.JtaTransactionWrapper] (default task-1) new JtaTransactionWrapper
09:27:25,335 DEBUG [org.keycloak.transaction.JtaTransactionWrapper] (default task-1) was existing? false
09:27:25,336 TRACE [org.keycloak.models.cache.infinispan.RealmCacheSession] (default task-1) realm by name cache hit: main
09:27:25,336 TRACE [org.keycloak.models.cache.infinispan.RealmCacheSession] (default task-1) by id cache hit: main
09:27:25,337 TRACE [org.keycloak.keys.DefaultKeyManager] (default task-1) Found key: realm=main kid=0C42WRjTe1IwYWqZIS_ITxm3tKFrTAbztybd6C9b7M0 algorithm=RS256 use=SIG
09:27:25,337 TRACE [org.keycloak.events] (default task-1) type=USER_INFO_REQUEST_ERROR, realmId=main, clientId=null, userId=null, ipAddress=172.18.0.9, error=invalid_token, auth_method=validate_access_token, requestUri=http://keycloak:8080/auth/realms/main/protocol/openid-connect/userinfo, cookies=[]
my docker-complose.yml looks somthing like this
version: "3"
services:
db:
ports:
- "5439:5432"
image: postgres
volumes:
- ./postgres/:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: ****
POSTGRES_DB: keycloak
keycloak:
build:
context: ../at_keycloak
dockerfile: Dockerfile
environment:
DB_VENDOR: POSTGRES
DB_ADDR: db
DB_DATABASE: keycloak
DB_USER: postgres
DB_SCHEMA: public
DB_PASSWORD: ****
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: admin
KEYCLOAK_LOGLEVEL: ALL
# ROOT_LOGLEVEL: ALL
ports:
- 8080:8080
depends_on:
- db
at_core_backend:
restart: unless-stopped
depends_on:
- keycloak
- db
ports:
- "3000:3000"
environment:
KEYCLOAK_SERVER_URL: http://keycloak:8080/auth/