使用 RSA-256 私钥在 jmeter 上生成 JWT 令牌

时间:2021-01-22 11:37:31

标签: jmeter jwt automated-tests

所以问题是我想在 jmeter 上运行一些需要 jwt 授权的测试用例。该 jwt 必须使用私钥 (RSA-256) 生成。

有什么办法可以在 jMeter 上做到这一点吗?

1 个答案:

答案 0 :(得分:0)

您可以使用:

  1. 合适的JWT Java Client library
  2. 合适的JSR223 Test Element
  3. 一块Groovy code

假设 JJWT libraryJMeter Classpath 中具有依赖关系的示例方法

def generator = java.security.KeyPairGenerator.getInstance("RSA");
generator.initialize(2048, new java.security.SecureRandom())
def keyPayr = generator.generateKeyPair()

def now = java.time.Instant.now()

def clientId = 'foo'

def jwt = io.jsonwebtoken.Jwts.builder()
        .setAudience('https://example.com')
        .setIssuedAt(Date.from(now))
        .setExpiration(Date.from(now.plus(5L, java.time.temporal.ChronoUnit.MINUTES)))
        .setIssuer(clientId)
        .setSubject(clientId)
        .setId(UUID.randomUUID().toString())
        .signWith(keyPayr.private)
        .compact()

log.info('Token: ' + jwt)

enter image description here