Keycloak 冲突(核心和适配器)

Keycloak conflict (core and adapter)

当尝试在嵌入式码头(本地)和 'normal' 码头实例(远程)中 运行 我的 web 应用程序时,我想我遇到了一些 class 冲突。

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

class KeycloakSecurityContext 在我的项目中的 keycloak-jetty-adapter 依赖和 keycloak-core 依赖中都定义了。 (相同版本,3.4.3 Final)

我试过在适配器上使用范围 'provided' 或从我的适配器中排除 keycloak-core 依赖项,但没有效果。 对如何处理这种组合有什么建议吗?

我在使用 Keycloak 时遇到了类似的问题。您需要确保库没有重复。

  1. 您从 Keycloak 下载适配器并将它们放在 tomcat/wildfly 中的 tomcat/lib 下。
  2. 在pom.xml中您需要指定没有版本的标签。这将确保“编译项目代码所需的依赖项,但将在运行时由容器 运行 代码提供”。
  3. (对于 IntelliJ)为了确保您的项目可以导入特定的 Keycloak 类,您需要将它们添加到您的项目中。所以 CTRL+Shift+Alt+S -> 在库下你需要添加你在点 1 添加的相同的罐子。