Spring Security OAuth2 - поиск токена обновления по имени пользователя - PullRequest
1 голос
/ 03 мая 2019

Допустим, у нас есть администратор, который хочет аннулировать все пользовательские токены (эффективно выходя из системы везде), но без блокировки его учетной записи.Пользователь все еще должен иметь возможность войти в систему нормально.

Пример:

clientIds.forEach(clientId -> {
        Collection<OAuth2AccessToken> accessTokens = tokenStore.findTokensByClientIdAndUserName(clientId, username);
        accessTokens.forEach(accessToken -> tokenServices.revokeToken(accessToken.getValue()));
});

Это работает ТОЛЬКО ТОЛЬКО ЕСЛИ токены доступа все еще действительны (не устарели), поскольку токены доступа найдены и на их основе, revokeToken делает недействительными обаполучить доступ и обновить токены.Однако, если срок действия маркера доступа истек, findTokensByClientIdAndUserName ничего не находит, таким образом, ничто не является недействительным, и токен обновления все еще действителен и готов к использованию.

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

Можно ли найти токен обновления, не используя токен доступа?

1 Ответ

1 голос
/ 05 мая 2019

Вы можете реализовать собственный интерфейс TokenStore и добавить метод, такой как:

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