小编Bev*_*van的帖子

如果为用户存储 SPI 选择“NO_CACHE”缓存策略,KeyCloak 7.0.0 会抛出 NullPointerException

我创建了一个用户存储SPI,用于对外部数据库中的用户进行身份验证,我可以在KeyCloak的“用户”页面中列出所有用户,并且用户可以从keycloak登录页面http://127.0.0.1:8080/登录auth/realms/dev/account/。但是如果我想从 http://127.0.0.1:8080/auth/realms/dev/protocol/openid-connect/token获取访问令牌,KeyCloak 会抛出异常,如下所示。如果我将缓存策略设置为“默认”,KeyCloak 可以正常工作。

09:18:04,972 ERROR [org.keycloak.services.error.KeycloakErrorHandler] (default task-3) Uncaught server error: java.lang.NullPointerException
        at org.keycloak.models.utils.KeycloakModelUtils.resolveAttribute(KeycloakModelUtils.java:415)
        at org.keycloak.protocol.oidc.mappers.UserAttributeMapper.setClaim(UserAttributeMapper.java:101)
        at org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper.setClaim(AbstractOIDCProtocolMapper.java:119)
        at org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper.transformAccessToken(AbstractOIDCProtocolMapper.java:81)
        at org.keycloak.protocol.oidc.TokenManager.transformAccessToken(TokenManager.java:553)
        at org.keycloak.protocol.oidc.TokenManager.createClientAccessToken(TokenManager.java:411)
        at org.keycloak.protocol.oidc.TokenManager$AccessTokenResponseBuilder.generateAccessToken(TokenManager.java:712)
        at org.keycloak.protocol.oidc.endpoints.TokenEndpoint.resourceOwnerPasswordCredentialsGrant(TokenEndpoint.java:609)
        at org.keycloak.protocol.oidc.endpoints.TokenEndpoint.processGrantRequest(TokenEndpoint.java:190)
Run Code Online (Sandbox Code Playgroud)

java keycloak

5
推荐指数
1
解决办法
1328
查看次数

标签 统计

java ×1

keycloak ×1