From 160d5577af716998c1e4ba66a44447f0c040c2d3 Mon Sep 17 00:00:00 2001 From: monkeyk7 Date: Wed, 3 Jun 2020 22:33:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20JWKS=20test=E4=B8=8E?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E8=AF=B4=E6=98=8E=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../infrastructure/JsonWebKeySetTest.java | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 myoidc-server/src/test/java/myoidc/server/infrastructure/JsonWebKeySetTest.java diff --git a/myoidc-server/src/test/java/myoidc/server/infrastructure/JsonWebKeySetTest.java b/myoidc-server/src/test/java/myoidc/server/infrastructure/JsonWebKeySetTest.java new file mode 100644 index 0000000..fe56bfc --- /dev/null +++ b/myoidc-server/src/test/java/myoidc/server/infrastructure/JsonWebKeySetTest.java @@ -0,0 +1,93 @@ +package myoidc.server.infrastructure; + +import com.google.common.base.Charsets; +import com.google.common.io.CharStreams; +import org.jose4j.jwk.JsonWebKey; +import org.jose4j.jwk.JsonWebKeySet; +import org.jose4j.jws.AlgorithmIdentifiers; +import org.jose4j.jws.JsonWebSignature; +import org.jose4j.jwt.JwtClaims; +import org.junit.Test; + +import java.io.InputStream; +import java.io.InputStreamReader; + +import static org.junit.Assert.assertNotNull; + +/** + * 2020/6/3 + * + * @author Shengzhao Li + * @since 1.1.1 + */ +public class JsonWebKeySetTest { + + + //RSA + @Test + public void keySet() throws Exception { + + JsonWebKeySet jwkSet; + try (InputStream is = getClass().getClassLoader().getResourceAsStream("jwks_rsa.json")) { + String keyJson = CharStreams.toString(new InputStreamReader(is, Charsets.UTF_8)); + jwkSet = new JsonWebKeySet(keyJson); + } + + JsonWebKey jsonWebKey = jwkSet.getJsonWebKeys().get(0); + assertNotNull(jsonWebKey); + + + } + + + //ECC + @Test + public void keyECCSet() throws Exception { + + JsonWebKeySet jwkSet; + try (InputStream is = getClass().getClassLoader().getResourceAsStream("jwks_ec.json")) { + String keyJson = CharStreams.toString(new InputStreamReader(is, Charsets.UTF_8)); + jwkSet = new JsonWebKeySet(keyJson); + } + + JsonWebKey jsonWebKey = jwkSet.getJsonWebKeys().get(0); + assertNotNull(jsonWebKey); + + + } + + + //OCT + @Test + public void keyOCTSet() throws Exception { + + JsonWebKeySet jwkSet; + try (InputStream is = getClass().getClassLoader().getResourceAsStream("jwks_oct.json")) { + String keyJson = CharStreams.toString(new InputStreamReader(is, Charsets.UTF_8)); + jwkSet = new JsonWebKeySet(keyJson); + } + + JsonWebKey jsonWebKey = jwkSet.getJsonWebKeys().get(0); + assertNotNull(jsonWebKey); + + + JsonWebSignature jws = new JsonWebSignature(); + jws.setKey(jsonWebKey.getKey()); + + JwtClaims claims = new JwtClaims(); + claims.setGeneratedJwtId(); + claims.setIssuedAtToNow(); + claims.setSubject("subject"); + jws.setPayload(claims.toJson()); + + jws.setKeyIdHeaderValue(jsonWebKey.getKeyId()); + jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.HMAC_SHA256); + + String idToken = jws.getCompactSerialization(); + assertNotNull(idToken); +// System.out.println(idToken); + + } + + +}