KeyCloak - Java App Redirect в DockerJAVA

Программисты JAVA общаются здесь
Anonymous
KeyCloak - Java App Redirect в Docker

Сообщение Anonymous »

У меня есть веб -приложение Java с Tomcat и KeyCloak для аутентификации. Обе службы (приложение и keycloak) работают в отдельных контейнерах Docker, подключенные через сеть Docker Bridge < /p>
  • keycloak Service работает по адресу http: // keycloak: 8080/auth Inside Docker.
  • Мое приложение Java с внутренними портами Tomcat и хостом на 8090
    in my applos -games -game -games -jsscl. as: < /p>
    {
    "realm": "${realm}",
    "auth-server-url": "http://keycloak:8080/auth",
    "ssl-required": "none",
    "resource": "${client_id}",
    "public-client": true,
    "confidential-port": 0
    }


    У меня была проблема при попытке получить доступ к http: // localhost: 8090/system , приложение переломило браузер на этот URL -адрес keyCloak:
    http://keycloak:8080/auth/realms/tdoc-a ... nnect/auth...
    < /code>
    , который не удался в браузере, показываетERR_CONNECTION_REFUSED, потому что я понимаю, что эта служба не может быть решена извне от хоста.{
    "realm": "${realm}",
    "auth-server-url": "http://localhost:8012/auth",
    "ssl-required": "none",
    "resource": "${client_id}",
    "public-client": true,
    "confidential-port": 0
    }
    < /code>
    Но мое приложение не удалось при попытке войти в систему, показывая ошибку внутреннего сервера 500: < /p>
    [WARN ] 12:08:46.150 org.keycloak.adapters.KeycloakDeployment.resolveUrls() - Failed to load URLs from http://localhost:8012/auth/realms/${rea ... figuration
    java.net.ConnectException: Connection refused (Connection refused)
    < /code>
    Потому что он не может разрешить изнутри контейнера, моя служба открыта локально в порту 8012. Что, я думаю, был ответ в этом посте: https://stackoverflow.com/a/74929659 твоя/> Кто-нибудь знает, что знает ли кто-нибудь, почему не сработало для меня это решение? />
  • keycloak_frontend_url = http: // localhost: 8012/auth
Больше контекста моей среды Docker:
version: '3'
services:
app-db:
image: mysql:5.7
ports:
- "3309:3306"
environment:
MYSQL_ROOT_PASSWORD: example
networks:
- my-network

my-app:
build: .
ports:
- "8090:8080"
- "8000:8000"
environment:
- JAVA_OPTS=...
volumes:
- ./app:/usr/local/tomcat/webapps/my-app
depends_on:
- app-db
networks:
- my-network

keycloak:
image: quay.io/keycloak/keycloak:16.1.1
ports:
- "8012:8080"
environment:
- DB_VENDOR=mysql
- DB_ADDR=keycloak-db
- DB_PORT=3306
- DB_USER=keycloak_user
- DB_PASSWORD=keycloak_pass
- DB_DATABASE=keycloak
- PROXY_ADDRESS_FORWARDING=true
- KEYCLOAK_FRONTEND_URL=http://localhost:8012/auth
volumes:
- ./themes:/opt/jboss/keycloak/themes
depends_on:
- keycloak-db
networks:
- my-network

keycloak-db:
image: mysql:5.7
ports:
- "3307:3306"
environment:
- MYSQL_ROOT_PASSWORD=keycloak_pass
- MYSQL_DATABASE=keycloak
- MYSQL_USER=keycloak_user
- MYSQL_PASSWORD=keycloak_pass
volumes:
- ./volumes/mysql:/var/lib/mysql
networks:
- my-network

networks:
my-network:
external: true
name: my-network



Подробнее здесь: https://stackoverflow.com/questions/795 ... hin-docker

Вернуться в «JAVA»