我有一个由某个服务生成的JWT令牌,然后在我的Java应用程序上进行验证。
问题在于JJWT库无法解析JSON头部,因为base64解码错误。
头部Base64代码:eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InRva2VuLXNpZ25pbmcifQ
通过JJWT解码(归结为调用: new String(javax.xml.bind.DatatypeConverter.parseBase64Binary(myBase64), java.nio.charset.Charset.forName("UTF-8")))
):
{"alg":"RS256","typ":"JWT","kid":"token-signing"
所以最后一个花括号丢失了。
然而,当我使用其他的解码器(https://www.base64decode.org/)时,最后一个花括号就在原位了。
另外对于其他开发人员,相同的代码过去是可以工作的。
这可能是某些特定环境导致Java中Base64解码出现问题吗?