SPI хранилища ключей пользователя - почему getUserById вызывается 4 раза после getUserByUsername из интерфейса UserLookupProvider - PullRequest
0 голосов
/ 25 апреля 2020

Я обновляю свой keycloak 3.4 до 9.0.2. Ранее я писал SPI User Storage в соответствии с инструкциями, и он все еще работал отлично в старой версии.

У меня возникли некоторые проблемы. После обновления ядра SPI Keycloak и SPI сервера Keycloak в моем файле SPI SPI User Storage при попытке входа в систему с обновленным пакетом SPI, развернутым на новом сервере Keycloak.

Вот обновленные зависимости

dependencies

в предыдущей версии Единственный метод, вызываемый для проверки пользователя, - это getUserByUsername. Вот скриншот из версии 3.4.3

only getUserByUsername invoked in 3.4.3

Но в новой версии getUserById вызывается после getUserByUsername и вызывается 4 раза. Я не понимаю, почему. Каким-то образом мне удалось обойти это и его работу, но я думаю, почему его вызвали 4 раза. проверьте этот скриншот.

getUserById invoked 4 times

Это 4 вызова базы данных. Что не является эффективным способом извлечения того же пользователя из базы данных. Если это по своему замыслу или из-за какой-то ошибки, предложите мне, как я могу убедиться, что 2-ые вызовы не попадают в базу данных, а используют загруженный объект. Я не использую JPA, это простые JDB C вызовы базы данных. Если любая другая информация требуется, то вы можете спросить меня.

Примечание. Я использую поток предоставления пароля, предоставив имя пользователя и пароль для получения токена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...