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

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

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 от моего адаптера, но безрезультатно. Любые предложения, как справиться с этой комбинацией?


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


Ответы (1)


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

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