【问题标题】:Is it possible to set accessTokenValiditySeconds dynamically from AuthenticationProvider implemented class?是否可以从 AuthenticationProvider 实现的类动态设置 accessTokenValiditySeconds?
【发布时间】:2020-11-02 13:32:30
【问题描述】:

我想从数据库中动态设置 accessTokenValiditySeconds 值。是否可以在 AuthenticationProvider 中获取值并进行设置?或者有什么其他方法可以做到吗? 目前我正在使用 yaml 文件并从中获取值。现在我想从数据库中获取令牌有效期秒值。我该怎么做?

谢谢。

【问题讨论】:

    标签: spring-boot spring-security oauth-2.0 jwt spring-security-oauth2


    【解决方案1】:

    是的,这是可能的!

    @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> {
    
    }
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      相关资源
      最近更新 更多