我正在使用 java 代码使用 nimbus jar 文件生成 JWE 令牌,但我无法生成预期的标头 JWE 令牌,请你们帮我生成预期的令牌。
static String PUBLIC_KEY ="askjdbaskjbdjkasbkjdbaskjbdasjkbdkjsabdjkaskjdbaskjdbaskjbd";
public static void main(){
JSONObject obj = new JSONObject();
obj.put("typ", "JWT");
obj.put("cty", "JWT");
obj.put("enc", "A128CBC-HS256");
obj.put("alg", "RSA-OAEP");
// JWEHeader head = (JWEHeader) Header.parse(JSON);
JWEHeader header = JWEHeader.parse(obj);
System.out.println(header.getContentType());
JWEObject jwe = new JWEObject(header,new Payload("Hello, world!"));
EncryptionMethod enc = EncryptionMethod.A128CBC_HS256;
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(enc.cekBitLength());
SecretKey cek = keyGenerator.generateKey();
jwe.encrypt(new RSAEncrypter(getPublicKey(PUBLIC_KEY),cek));
String jweString = jwe.serialize();
System.out.println(jweString);
}
当我生成令牌时,我得到这样的令牌:
eyJjdHkiOiJKV1QiLCJ0eXAiOiJKV1QiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiUlNBLU9BRVAifQ.ITv2i07ctBtWR8T6D63yyHE7QXIw5paeYpLYYGjN2wx9Pq5IBiYxWJBNoynZyCSC-MSFiTl55EOs1mB1qCjz0z2f25DFsnDocHJ7xNfmL5_slRCpdJX-InTcVm4NSnU2iVxaxAP5ODFrlJIgLCqICMq0MaAT8wSXAkaoVJx6MH9MRmhJzsdxCvoZaj5lu83HSL_FEveVvXt4Bk3Zq9DipVPlcbog5t1I8We8tscMW6QsOM47xxIQxmQscHOkufFkMCQOUi-LwFu4k7f6vIcASc3jbJ9VwGCPehIef0PjwQPxiO7W8tmKjcIeAF6ytYUC2nEPUwpsMZVNIaGcNPSU-w.22YugdfNWVlHWJS3OR8aiQ.S1anurm9Dim2-lV5QbNvAA.Dvfn31gFhqKbkoU3ZVGNXQ
但标题是这样生成的,但我不希望 JWE 令牌中出现这种类型的标题:
eyJjdHkiOiJKV1QiLCJ0eXAiOiJKV1QiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiUlNBLU9BRVAifQ
我想使用上面的 java 代码生成这样的标题:
eyJ0eXAiOiJKV1QiLCJjdHkiOiJKV1QiLCJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhDQkMtSFMyNTYifQ
你们能帮我在这里生成像上面这样的标题吗?
谢谢。