2016-09-15 18 views
1

JWTの生成と検証にauth0 Javaライブラリを使用しています。問題は、ランダムな時間に同じ文字列の例外をスローすることです。私はこの問題を引き起こしているものが正確にはわかりません。以下は私のコードですAuth0 JWT Javaライブラリがエラーをランダムにスローする

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; 
    } 
} 

これは時々動作し、ときどきランダムエラーをスローします。 Like

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: [email protected]; line: 1, column: 0]) 
at [Source: [email protected]; 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] 

何か不足していますか?助けてください。

答えて

0

多くの苦労の末、私たちは別のライブラリに切り替えましたが、これまでのところ問題はありませんでした。

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

こんにちは@theGablerRises、問題が発生したときに使用したバージョンを教えてください。私たちも同じ問題を抱えています。無作為であると思われる例外がスローされます。しかし、それはブラウザでうまく動作し、ハイブリッドアプリでページにアクセスすると無作為にタイムアウト例外を処理します。 –

+0

私は残念です。私はもうそのプロジェクトにアクセスすることはできず、私はバージョンを覚えていません。 :-( – theGamblerRises

+0

それは大丈夫です、返信のおかげで:) –

関連する問題