Можно ли динамически установить accessTokenValiditySeconds из реализованного класса AuthenticationProvider? - PullRequest
0 голосов
/ 13 июля 2020

Я хочу динамически устанавливать значение accessTokenValiditySeconds из БД. Можно ли получить значение в AuthenticationProvider и установить его? или есть другой способ сделать это? В настоящее время я использую файл yaml и извлекаю из него значение. Теперь я хочу получить значение секунд действия токена из БД. Как я могу это сделать?

Спасибо.

1 Ответ

0 голосов
/ 13 июля 2020

Да, это возможно!

@Component
public class TokenProvider implements InitializingBean {
   private long tokenValidityInMilliseconds;

   private final ConfigRepository configRepository;

    public TokenProvider(ConfigRepository mealRepository) {
        this.configRepository = configRepository;
    }

    @Override
    public void afterPropertiesSet() throws Exception {
       Config myConfig = configRepository.findAll().get(0);
       this.tokenValidityInMilliseconds = myConfig.gettokenValidityInMilliseconds()
     }

 public String createToken(Authentication authentication) {
        ....

        Date validity = new Date(now + this.tokenValidityInMilliseconds);

       ...
    }

с вашим ConfigRepository, который выглядит примерно так

@Repository
public interface ConfigRepository extends CrudRepository<Config, String> {

}

надеюсь, что это поможет вам

...