|
1 | 1 | package com.mastercard.developer.encryption.jwe; |
2 | 2 |
|
| 3 | +import com.jayway.jsonpath.spi.json.JsonProvider; |
3 | 4 | import com.mastercard.developer.json.JsonEngine; |
4 | 5 | import com.mastercard.developer.utils.EncodingUtils; |
5 | 6 |
|
6 | | -import java.util.LinkedHashMap; |
7 | | - |
8 | 7 | public final class JWEHeader { |
9 | 8 | private final String enc; |
10 | 9 | private final String kid; |
@@ -38,12 +37,13 @@ String toJson() { |
38 | 37 | } |
39 | 38 |
|
40 | 39 | static JWEHeader parseJweHeader(String encodedHeader, JsonEngine jsonEngine) { |
41 | | - LinkedHashMap headerObj = (LinkedHashMap) jsonEngine.parse(new String(EncodingUtils.base64Decode(encodedHeader))); |
42 | | - return new JWEHeader( |
43 | | - headerObj.get("alg").toString(), |
44 | | - headerObj.get("enc").toString(), |
45 | | - headerObj.get("kid").toString(), |
46 | | - headerObj.get("cty") != null ? headerObj.get("cty").toString() : null); |
| 40 | + Object headerObj = jsonEngine.parse(new String(EncodingUtils.base64Decode(encodedHeader))); |
| 41 | + JsonProvider jsonProvider = jsonEngine.getJsonProvider(); |
| 42 | + String alg = jsonProvider.getMapValue(headerObj, "alg").toString(); |
| 43 | + String enc = jsonProvider.getMapValue(headerObj, "enc").toString(); |
| 44 | + String kid = jsonProvider.getMapValue(headerObj, "kid").toString(); |
| 45 | + Object cty = jsonProvider.getMapValue(headerObj, "cty"); |
| 46 | + return new JWEHeader(alg, enc, kid, cty != null ? cty.toString() : null); |
47 | 47 | } |
48 | 48 |
|
49 | 49 | String getEnc() { return enc; } |
|
0 commit comments