'Keycloak with Tomcat: org.keycloak.KeycloakPrincipal cannot be cast to org.keycloak.KeycloakPrincipal
I am running Keycloak with the Tomcat adapter. But, when I try to get the KeycloakPrincipal, it errors out with this;
java.lang.ClassCastException: org.keycloak.KeycloakPrincipal cannot be cast to org.keycloak.KeycloakPrincipal
My code is very simple and my environment is setup exactly like the KeyCloak docs say it should be.
{
    HttpServletRequest request = (HttpServletRequest)getApp().getFromUserStorage(HttpServletRequest.class.getName());
    KeycloakPrincipal kcp = (KeycloakPrincipal) request.getUserPrincipal();
}
Any ideas as to what is wrong here? The only solutions I've found by googling have to do with Maven configuration, but Maven isn't being used here.
Solution 1:[1]
Remoing the keycloak adapters fromWEB-INF directory solves this issue.
Solution 2:[2]
I also got the same issue.
solution :
a) Project/maven keycloak jar and tomcat/lib keycloak jars should have same version
b) Add scope as provided in pom.xml
<dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-core</artifactId>
        <version>17.0.0</version>
        <scope>provided</scope>
    </dependency>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source | 
|---|---|
| Solution 1 | user2101 | 
| Solution 2 | JagadeeshaHP | 
