Java isValid()方法中的KeyClope ClassCastException

Java isValid()方法中的KeyClope ClassCastException,java,keycloak,classcastexception,Java,Keycloak,Classcastexception,我在Docker容器中运行KeyClope服务器。然后我编写了一个自定义用户存储提供程序来检查身份验证 问题是在我的CredentialInputValidator实现中 public boolean isValid(RealmModel realmModel, UserModel userModel, CredentialInput credentialInput) public UserModel getUserByUsername(String username, RealmModel

我在Docker容器中运行KeyClope服务器。然后我编写了一个自定义用户存储提供程序来检查身份验证

问题是在我的CredentialInputValidator实现中

public boolean isValid(RealmModel realmModel, UserModel userModel, CredentialInput credentialInput)
public UserModel getUserByUsername(String username, RealmModel realm) 
使用org.keydape.models.cache.infinispan.UserAdapter实例作为第二个参数(userModel)调用

我希望改为使用MyCustomUserModel实例,这就是方法的作用

public boolean isValid(RealmModel realmModel, UserModel userModel, CredentialInput credentialInput)
public UserModel getUserByUsername(String username, RealmModel realm) 
他回来了。因此,我尝试将userModel强制转换为MyCustomUserModel,它会引发以下异常:

未捕获的服务器错误:java.lang.ClassCastException:类 无法将org.keydape.models.cache.infinispan.UserAdapter强制转换为 类com.package.MyCustomUserModel (org.keydape.models.cache.infinispan.UserAdapter位于未命名模块中 装载机的org.keydepot.keydepot-model-infinispan@11.0.0@35823d20; com.package.MyCustomUserModel位于加载器的未命名模块中 'deployment.keydove\u custom\u ext\u ear-0.0.1-SNAPSHOT.ear.keydove\u custom\u ext-0.0.1-SNAPSHOT.jar' @139eb90f)

事实上,使用我在其他测试中使用的其他keydape服务器,同一个用户存储提供程序正在按预期工作(MyCustomUserModel的一个实例)


也许我在配置KeyClope服务器时失败了,但我不知道会涉及到什么选项。知道问题出在哪里吗?

问题出在缓存策略中。在KeyClope的管理应用程序中,在“用户联合”部分下,编辑了“我的用户存储提供程序”,并选择“无缓存”作为缓存策略

ClassCastException不再出现

如果将来需要缓存,我想我需要在这个问题上再努力一点