Spring oauth2, как каждый раз получать новый токен обновления

Когда я вызываю токен обновления, веб-служба возвращает новый токен доступа и старый токен обновления, поскольку срок действия токена доступа еще не истек. Есть ли какая-либо конфигурация, при которой при вызове токена обновления эта веб-служба возвращает мне новый токен доступа и новый токен обновления?


person luckybastard    schedule 08.03.2016    source источник


Ответы (2)


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

@Configuration
public class OAuth2Config extends AuthorizationServerConfigurerAdapter {
    @Override
    public void configure(AuthorizationServerEndpointsConfigurer configurer) throws Exception {
        configurer.reuseRefreshTokens(false);
    }
}
person Mikk    schedule 30.11.2017

Вы можете использовать AOP для аннулирования токена, удалив старый или изменив время его действия перед созданием нового, но если вы сделаете это, вы сделаете недействительными все токены обновления, используемые другими клиентами.

person Bassem Reda Zohdy    schedule 08.03.2016
comment
Есть ли способ в весенней безопасности oauth2 выпустить одноразовый токен обновления и обновить токен обновления вместе с токеном доступа? У меня есть приложение для Android, в котором клиент должен пройти аутентификацию на этом сервере oauth2, а затем он не хочу снова войти в систему после первой аутентификации. Если срок действия токена обновления истекает, ему снова нужно указать имя пользователя и пароль, мне нужно избежать этой ситуации. - person KJEjava48; 27.07.2016
comment
вы можете сделать дату недействительности токена обновления слишком далекой, а затем перехватить сгенерированный токен, чтобы аннулировать токен обновления, и позволить ему сгенерировать новый со слишком далекой датой недействительности. - person Bassem Reda Zohdy; 27.07.2016
comment
Как я могу аннулировать токен обновления и создать новый токен обновления? - person KJEjava48; 27.07.2016
comment
на основе вашего TokenStore, например, в моем случае это был DataSource TokenStore, поэтому я удалял строку из БД. - person Bassem Reda Zohdy; 27.07.2016