【问题标题】:Auth0 JWT java library throws error random timesAuth0 JWT java库随机抛出错误
【发布时间】:2017-01-23 15:33:39
【问题描述】:

我们使用 auth0 java 库来生成和验证 JWT。问题是它随机抛出相同字符串的异常。我不确定是什么导致了这个问题。以下是我的代码-

final static String secret = "some random key";
    final static JWTSigner signer = new JWTSigner(secret);
    final static JWTVerifier verifier = new JWTVerifier(secret);

public String gen(UUID id) {
    final long iat = System.currentTimeMillis() / 1000l; // issued at claim
    final HashMap<String, Object> claims = new HashMap<String, Object>();
    claims.put("id", id.toString());
    claims.put("iat", iat);

    final String jwt = signer.sign(claims);

    return jwt;
}

/** This method checks Bearer <jwt> and <jwt> both type of tokens */
protected UUID authenticate(String jwt) {
    UUID userId = null;
    try {
        try { // Getting the token

        String[] ar = jwt.split(Constants.WHITE_SPACE);
        final Map<String, Object> claims = verifier.verify(ar[1].trim());
        userId = UUID.fromString((String) claims.get("id"));

     } catch (ArrayIndexOutOfBoundsException aie) {

        final Map<String, Object> claims = verifier.verify(jwt.trim());
        userId = UUID.fromString((String) claims.get("id"));
        }

    return userId;

    } catch (Exception e) {
        log.debug("Not a valid JWT string:" + jwt, e);
        return null;
    }
}

它有时会起作用,有时会引发随机错误。喜欢

Not a valid JWT string:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE0NzM4NTE5NjQsImlkIjoiMmMwMTBiNTAtODhiNC00NWMxLWI4OGItOGY2ZDNmMzFkZjdlIn0.CHRsJxuTZe7y1VQikP9a0_-nWVA-TMundam506VTGx4 
com.auth0.jwt.internal.com.fasterxml.jackson.core.JsonParseException: Unexpected close marker ']': expected '}' (for ROOT starting at [Source: java.io.StringReader@11c289a2; line: 1, column: 0])
 at [Source: java.io.StringReader@11c289a2; line: 1, column: 2]

Not a valid JWT string:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE0NzM4NTE5NjQsImlkIjoiMmMwMTBiNTAtODhiNC00NWMxLWI4OGItOGY2ZDNmMzFkZjdlIn0.CHRsJxuTZe7y1VQikP9a0_-nWVA-TMundam506VTGx4
com.auth0.jwt.internal.com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.util.LinkedHashMap out of VALUE_NUMBER_INT token
 at [Source: N/A; line: -1, column: -1]

我们错过了什么吗?请帮忙。

【问题讨论】:

    标签: java jwt auth0


    【解决方案1】:

    经过一番挣扎,我们切换到另一个库,到目前为止我们没有遇到任何问题。

        <!-- JWT -->
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.7.0</version>
        </dependency>
    

    【讨论】:

    • 嗨@theGablerRises,您能分享一下您遇到问题时使用的版本吗?我们有同样的问题。抛出异常似乎是随机的。但是,它在浏览器中运行良好,并且在使用混合应用程序访问页面时会出现随机定时异常。
    • 对不起,伙计。我不再有权访问该项目,而且我不记得版本。 :-(
    猜你喜欢
    • 2017-12-15
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 2020-01-30
    • 2017-11-22
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多