Keycloak用户存储SPI-为什么从UserLookupProvider接口的getUserByUsername之后调用getUserById 4次

时间:2020-04-25 11:56:17

标签: java keycloak

我正在将我的密钥斗篷3.4升级到9.0.2。我以前按照指南编写了一个用户存储SPI,但在旧版本中仍然可以正常工作。

当我尝试使用部署在新密钥斗篷服务器中的更新的SPI jar登录时,在用户存储SPI pom文件中升级了密钥斗篷核心和密钥斗篷服务器SPI之后,我遇到了一些问题。

这是更新的依赖项

dependencies

在先前版本中,用来验证用户的唯一方法是getUserByUsername。这是3.4.3版的屏幕截图

only getUserByUsername invoked in 3.4.3

但是在新版本中,getUserById在getUserByUsername之后被调用,并且被调用了4次。我不明白为什么。我以某种方式能够解决该问题及其工作,但是我在思考为什么它被调用了4次。检查此屏幕截图。

getUserById invoked 4 times

这些是4个数据库调用。这不是从数据库获取同一用户的有效方法。如果是设计使然或由于某些错误,那么建议我如何确保第二次调用不会访问数据库,而是使用已加载的对象。我没有使用JPA,它只是对数据库的简单JDBC调用。如果需要其他信息,您可以问我。

注意:我正在通过提供用户名和密码来获取令牌来使用密码授予流程。

0 个答案:

没有答案