作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个签名的 JWT token ,我需要更新现有字段,我们将其称为 userName
。我正在使用 NIMBUS + JOSE 和。我想出了如何解析它并提取声明:
SignedJWT.parse(token)
但解析并不是我唯一需要的:我已经更新了该字段并重新组装了它的 token 。是否有一种简单的方法或任何惯用的解决方案可以在无需从头开始重新创建 token 的情况下工作。
最佳答案
我花了一些时间尝试弄清楚如何使用该库修改 JWT token 。我使用了一个快速但肮脏的解决方案:
// Split token into parts (parts are separated with '.'
final String[] tokenParts = token.split("\\.");
// decode payload part
final String decodedPayload =
new String(Base64.getDecoder().decode(tokenParts[1]), "UTF-8");
// enrich payload with additional userName field by adding it to the end of
// JSON. Remove the last character which is '}' and append data as String
final String updatedDecodedPayload =
decodedPayload.substring(0, decodedPayload.length() - 1)
+ ",\"userName\":\"" + "Richard" + "\"}";
// update payload with userId field and encode it back to base64
tokenParts[1] = Base64.getEncoder().encodeToString(
updatedDecodedPayload.getBytes()
);
final String updatedToken = String.join(".", tokenParts));
关于java - 使用 numbus 库更新 JWT token 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43724146/
我有一个签名的 JWT token ,我需要更新现有字段,我们将其称为 userName。我正在使用 NIMBUS + JOSE 和。我想出了如何解析它并提取声明: SignedJWT.parse(t
如何在使用 Nimbus L&F 时为 JTree 中的选定项目设置背景颜色? 类似问题的旧答案中的建议对 Nimbus 不起作用,所以我尝试: final UIDefaults def = new
我是一名优秀的程序员,十分优秀!