[英]Keycloak: AnonymousAuthenticationToken cannot be cast to KeycloakAuthenticationToken
[英]Keycloak with Tomcat: org.keycloak.KeycloakPrincipal cannot be cast to org.keycloak.KeycloakPrincipal
我正在使用 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。
從WEB-INF 目錄移除keycloak 適配器解決了這個問題。
我發現了這個問題。 我的一個庫引起了沖突。
我也遇到了同樣的問題。
解決方案:
a) Project/maven keycloak jar 和 tomcat/lib keycloak jars 應該有相同的版本
b) 添加 pom.xml 中提供的 scope
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-core</artifactId>
<version>17.0.0</version>
<scope>provided</scope>
</dependency>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.