java和auth0:令牌签名无效异常
我试图在java中改变jwt,我使用了与本文类似的代码: 但是我得到了一个错误:com.auth0.jwt.exceptions.SignatureReferenceException:Token的签名在使用算法进行验证时无效:SHA256withRSA我也看到了这篇文章:com.auth0.jwt.exceptions.SignatureReferenceException:Token的签名在使用算法进行验证时无效:SHA256带有RSA,但我没有使用HMAC256 虽然我可以得到jwt: Eyjhbgiizizizizizizizizizizizizizizizizizizyzizizizizizizizizizizizizizizizizizizizizizizizizmzmzmzmzmzmzmzmzmzmzmzmzmzmzmzmzmzmzmzmzmzmzmzmzmzyzyzyzmzmzyzyzyzmzmzmzmzmzmzyzmzmzmzyzyzmzmzmzyzmzmzmzmzmzyzyzmzmzmzmzmzyzyzyzyzyzyzyzyzyzyz2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2 2.2.2.2 2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2 2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2 2.2 MGXX-1c4emw4t4pxhkqc4wuma0c2nscufj1zyz74bcebrtbb9y_2; qdvekga1vfwuic6pon7q83gqvwih580vwih60rricjl9fnk4mqjava和auth0:令牌签名无效异常,java,oauth-2.0,jwt,auth0,rsa-sha256,Java,Oauth 2.0,Jwt,Auth0,Rsa Sha256,我试图在java中改变jwt,我使用了与本文类似的代码: 但是我得到了一个错误:com.auth0.jwt.exceptions.SignatureReferenceException:Token的签名在使用算法进行验证时无效:SHA256withRSA我也看到了这篇文章:com.auth0.jwt.exceptions.SignatureReferenceException:Token的签名在使用算法进行验证时无效:SHA256带有RSA,但我没有使用HMAC256 虽然我可以得到jwt: E
我无法访问私钥以检查jwt.io上的签名,因为它保存在一个不受我控制的identity server实例上,但是由于我对oauth的了解有限,我认为这不是问题。您应该将。withIssuer(“auth0”)更改为您的真实颁发者“谢谢,我已经更改了它,但是我仍然得到相同的错误。这和这里的问题是一样的:是的。不过我现在已经整理好了。最初,我的程序中的键来自头文件,当我解析它时,两边都有空格。我认为这是一个新手错误。对我来说,这是我的jwksUrl和访问令牌URL不匹配。Jwks URL是用于验证公钥的URL,而访问令牌URL是从您请求令牌的位置发出的,它们都需要属于相同的环境。在我的例子中,我从stage环境获取令牌,但我的spring安全代码试图用指向dev环境的jwksUrl验证令牌。
public void parseJWTKey(HttpHeaders header)
{
try
{
Jwk jwk = getPublicKey(); //method to retrieve public key from auth server (identity server)
RSAPublicKey publicKey = (RSAPublicKey) jwk.getPublicKey();
Algorithm alg = Algorithm.RSA256(publicKey, null);
JWTVerifier verifier = JWT.require(alg)
.withIssuer("auth0")
.build();
String headerString = header.toString();
String parsedHeader = headerString.substring(headerString.indexOf(" "), headerString.lastIndexOf("\""));
DecodedJWT dJwt = verifier.verify(parsedHeader);
}
catch(JWTVerificationException | JwkException | NullPointerException a)
{
a.printStackTrace();//TODO: Logging
}
}