Spring Security以编程方式生成访问令牌

时间:2018-03-23 04:52:02

标签: spring spring-security spring-data-jpa

我有一个Web应用程序,用于通过client_id生成access_token并在数据库中生成秘密。

[情景]

  1. User01 - 请求新令牌

  2. 服务 - 获取client_id,然后获取具有状态的数据库('未使用')

  3. 服务 - 使用选定的client_idsecret生成令牌

  4. 我想在服务层生成令牌。

    我引用的源代码是TokenEndpoint.postAccessToken()

    但是,该源代码需要Principal对象。我没有那些数据。因为该对象包含User01用户的数据。所以这不是正确的数据。

    如何在数据库中生成包含客户端数据的令牌?

1 个答案:

答案 0 :(得分:1)

创建身份验证令牌域并添加元素。例如,id,token,user和created date。

之后,您可以保存在authenticationTokenRepository中。

  AuthenticationToken authToken = new AuthenticationToken(UUID.randomUUID().toString(),user);
    AuthenticationToken savedAuthToken = 
    authenticationTokenRepository.save(authToken);