猿问

带有 Tomcat 的 Keycloak:org.keycloak.KeycloakPrincipa

我正在使用 Tomcat 适配器运行 Keycloak。但是,当我尝试获取 KeycloakPrincipal 时,它会出错;

java.lang.ClassCastException: org.keycloak.KeycloakPrincipal 无法转换为 org.keycloak.KeycloakPrincipal

我的代码非常简单,我的环境设置与 KeyCloak 文档所说的完全一样。

{   
    HttpServletRequest request = (HttpServletRequest)getApp().getFromUserStorage(HttpServletRequest.class.getName()); 
   KeycloakPrincipal kcp = (KeycloakPrincipal) request.getUserPrincipal();
}

关于这里有什么问题的任何想法?我通过谷歌搜索找到的唯一解决方案与 Maven 配置有关,但此处未使用 Maven。


aluckdog
浏览 179回答 3
3回答

白衣非少年

从 WEB-INF 目录中移除 keycloak 适配器可以解决此问题。

胡子哥哥

我也遇到了同样的问题。解决方案 :a) Project/maven keycloak jar 和 tomcat/lib keycloak jar 应该有相同的版本b) 添加 pom.xml 中提供的范围<dependency> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<groupId>org.keycloak</groupId> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<artifactId>keycloak-core</artifactId> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<version>17.0.0</version> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<scope>provided</scope> &nbsp;&nbsp;&nbsp;&nbsp;</dependency>

狐的传说

我发现了问题。我的一个图书馆引起了冲突。
随时随地看视频慕课网APP

相关分类

Java
我要回答