Я обновляю свой keycloak 3.4 до 9.0.2. Ранее я писал SPI User Storage в соответствии с инструкциями, и он все еще работал отлично в старой версии.
У меня возникли некоторые проблемы. После обновления ядра SPI Keycloak и SPI сервера Keycloak в моем файле SPI SPI User Storage при попытке входа в систему с обновленным пакетом SPI, развернутым на новом сервере Keycloak.
Вот обновленные зависимости
в предыдущей версии Единственный метод, вызываемый для проверки пользователя, - это getUserByUsername. Вот скриншот из версии 3.4.3
Но в новой версии getUserById вызывается после getUserByUsername и вызывается 4 раза. Я не понимаю, почему. Каким-то образом мне удалось обойти это и его работу, но я думаю, почему его вызвали 4 раза. проверьте этот скриншот.
Это 4 вызова базы данных. Что не является эффективным способом извлечения того же пользователя из базы данных. Если это по своему замыслу или из-за какой-то ошибки, предложите мне, как я могу убедиться, что 2-ые вызовы не попадают в базу данных, а используют загруженный объект. Я не использую JPA, это простые JDB C вызовы базы данных. Если любая другая информация требуется, то вы можете спросить меня.
Примечание. Я использую поток предоставления пароля, предоставив имя пользователя и пароль для получения токена.