Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Конфликт Keycloak (ядро и адаптер)

Автор вопроса: CloudОтветов: 1

При попытке запустить мое веб-приложение как во встроенном причале (локально), так и в "обычном" экземпляре причала (удаленно), я думаю, что столкнулся с некоторым конфликтом классов.

java.lang.ClassCastException:
org.keycloak.adapters.RefreshableKeycloakSecurityContext cannot be cast to org.keycloak.KeycloakSecurityContext

Класс KeycloakSecurityContext определен как в зависимости keycloak-jetty-adapter, так и в зависимости keycloak-core в моем проекте. (та же версия, 3.4.3 Final)

Я пытался использовать область, "предоставленную" на адаптере, или исключить зависимость keycloak-core от моего адаптера, но безрезультатно. Любые предложения, как справиться с этой комбинацией?

  • Опишите вашу настройку дома/базы причала и/или как вы настраиваете свой встроенный причал. Joakim Erdfelt 09.04.2018
  • Я предполагаю, что ваше приложение должно действовать как клиент Keycloak? Зачем тогда нужно добавлять зависимость keycloak-core? Xtreme Biker 10.04.2018

keycloakjettyembedded-jetty

Ответы

Ответ 1 · рейтинг 1 · bogdanc

У меня были похожие проблемы с Keycloak. Нужно убедиться, что библиотеки не дублируются.

  1. Вы загружаете из Keycloak адаптеры и помещаете их в tomcat/lib в tomcat/wildfly.
  2. В pom.xml нужно указывать тег без версий. Это гарантирует, что зависимости, необходимые для компиляции кода проекта, будут предоставлены во время выполнения контейнером, выполняющим код.
  3. (Для IntelliJ) Чтобы убедиться, что ваш проект может импортировать определенные классы Keycloak, вам необходимо добавить их в свой проект. Итак, CTRL+Shift+Alt+S -> под библиотеками вам нужно добавить те же банки, которые вы добавили в пункте 1.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы