Настройка допустимости токенов доступа с помощью «сервисов токенов» в OAuth2.0 - PullRequest
0 голосов
/ 30 декабря 2018

Я знакомлюсь с oauth2.0 учебником с использованием токенов Spring и JWT.Меня интересует роль tokenServices() в классе SecurityConfig.Проблема, с которой я столкнулся, заключается в том, что когда я устанавливаю токен доступа на 30s с помощью: defaultTokenServices.setAccessTokenValiditySeconds(30);, он не работает.В AbstractTokenGranter bean-компоненте AuthorizationServerTokenServices с автоматическим подключением является DefaultTokenServices, но с установленным значением по умолчанию 43200s (не 30).Но когда я устанавливаю его прямо на ClientDetailsServiceConfigurer на configurer.accessTokenValiditySeconds(30), это работает.

Вопрос в том, почему настройка access token validity работает здесь:

@Override
    public void configure(ClientDetailsServiceConfigurer configurer) throws Exception {
        configurer
                .inMemory()
                .withClient(clientId)
                .secret(passwordEncoder.encode(clientSecret))
                .authorizedGrantTypes(grantType)
                .scopes(scopeRead, scopeWrite)
                .resourceIds(resourceIds)
                .accessTokenValiditySeconds(30);
    }

, но не здесь:

@Bean
    @Primary
    public DefaultTokenServices tokenServices() {
        final DefaultTokenServices defaultTokenServices = new DefaultTokenServices();

        defaultTokenServices.setTokenStore(tokenStore());
        defaultTokenServices.setSupportRefreshToken(true);
        defaultTokenServices.setAccessTokenValiditySeconds(30);

        return defaultTokenServices;
    }

Согласно ответу @DeezCashews в этой записи должно работать в обоих местах.

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