You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求JSR223预处理器Groovy代码:按规则从code_verifier生成code_challenge

JSR223预处理器Groovy代码实现code_challenge生成

以下是符合code_challenge = BASE64URL-ENCODE(SHA256(ASCII(code_verifier)))规则的Groovy代码,可直接用于JMeter的JSR223预处理器:

// 替换为你的code_verifier,或从JMeter变量读取:vars.get("code_verifier")
def codeVerifier = "your_code_verifier_value"

// 转换为ASCII字节数组
def asciiBytes = codeVerifier.getBytes("ASCII")

// 计算SHA256哈希值
def sha256Hash = java.security.MessageDigest.getInstance("SHA-256").digest(asciiBytes)

// 执行URL安全的Base64编码(无填充、替换+/为-_)
def codeChallenge = new String(java.util.Base64.getUrlEncoder().withoutPadding().encode(sha256Hash))

// 将结果存入JMeter变量,供后续请求使用
vars.put("code_challenge", codeChallenge)

// 可选:控制台打印结果用于验证
log.info("生成的code_challenge:" + codeChallenge)

代码说明

  • 若code_verifier已存于JMeter变量中,直接把第一行替换为def codeVerifier = vars.get("code_verifier")即可。
  • 严格遵循规则步骤:ASCII编码转换 → SHA256哈希 → 无填充的URL安全Base64编码。
  • 生成的code_challenge会被存入JMeter变量code_challenge,后续请求可通过${code_challenge}引用。

内容的提问来源于stack exchange,提问作者Narendra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 05:10:33