gpt4 book ai didi

java - JWT 构建器添加了不需要的新行

转载 作者:行者123 更新时间:2023-11-30 06:13:36 26 4
gpt4 key购买 nike

我开发了一个 Java EE Web 应用程序,它使用自定义参数生成 JWT。它主要工作得很好,但在极少数情况下,生成的字符串(我的 JWT)包含换行符,这是不应该发生的(因为这个 JWT 应该是 URL 的一部分)。

更多信息:在我的计算机上,这个错误永远不会出现(就像......永远不会),但在其他计算机上它有时会出现(具有相同的数据,相同的工作空间......相同的一切)。唯一改变的是操作系统(Win 7 和 Win 10,均为 x64)

开发环境:

  • JAVA 1.7.45
  • Apache Tomcat 7.0.82
  • JWT API:0.9.0

我的代码:

        String id = "someId";
int tokenDuration = jwtDuration* 60 * 1000;
SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;

long nowMillis = Calendar.getInstance().getTimeInMillis();
Date now = new Date(nowMillis);

// Hash key
byte[] apiKeySecretBytes = TextCodec.BASE64.decode(jwtKey);

long expMillis = nowMillis + tokenDuration;
Date exp = new Date(expMillis);

// JWT building
JwtBuilder builder = Jwts.builder()
.setId(id)
.setIssuedAt(now)
.setExpiration(exp)
.setIssuer(applicationName)
.claim("user", myUser)
.signWith(signatureAlgorithm, apiKeySecretBytes);

return builder.compact();

有人可以向我解释一下这个魔法吗? :D非常感谢

最佳答案

我不是 Java 开发人员,但如果此 token 是有效的 JWT,您只需从中删除换行符即可:

...
return builder.compact().replaceAll("\n","")

但我无法解释为什么会发生这样的事情!

关于java - JWT 构建器添加了不需要的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49733141/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com