keycloak
公開メンバ関数 | 静的公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.jose.jwk.JWKParser クラス
org.keycloak.jose.jwk.JWKParser 連携図
Collaboration graph

公開メンバ関数

 JWKParser (JWK jwk)
 
JWKParser parse (String jwk)
 
JWK getJwk ()
 
PublicKey toPublicKey ()
 
boolean isKeyTypeSupported (String keyType)
 

静的公開メンバ関数

static JWKParser create ()
 
static JWKParser create (JWK jwk)
 

非公開メンバ関数

 JWKParser ()
 
PublicKey createECPublicKey ()
 
PublicKey createRSAPublicKey ()
 

非公開変数類

JWK jwk
 

静的非公開変数類

static TypeReference< Map< String, String > > typeRef = new TypeReference<Map<String,String>>() {}
 

詳解

著者
Stian Thorgersen

構築子と解体子

◆ JWKParser() [1/2]

org.keycloak.jose.jwk.JWKParser.JWKParser ( )
inlineprivate
45  {
46  }

◆ JWKParser() [2/2]

org.keycloak.jose.jwk.JWKParser.JWKParser ( JWK  jwk)
inline
48  {
49  this.jwk = jwk;
50  }
JWK jwk
Definition: JWKParser.java:43

関数詳解

◆ create() [1/2]

static JWKParser org.keycloak.jose.jwk.JWKParser.create ( )
inlinestatic
52  {
53  return new JWKParser();
54  }
JWKParser()
Definition: JWKParser.java:45

◆ create() [2/2]

static JWKParser org.keycloak.jose.jwk.JWKParser.create ( JWK  jwk)
inlinestatic
56  {
57  return new JWKParser(jwk);
58  }
JWK jwk
Definition: JWKParser.java:43
JWKParser()
Definition: JWKParser.java:45

◆ createECPublicKey()

PublicKey org.keycloak.jose.jwk.JWKParser.createECPublicKey ( )
inlineprivate
85  {
86  String crv = (String) jwk.getOtherClaims().get(ECPublicJWK.CRV);
87  BigInteger x = new BigInteger(1, Base64Url.decode((String) jwk.getOtherClaims().get(ECPublicJWK.X)));
88  BigInteger y = new BigInteger(1, Base64Url.decode((String) jwk.getOtherClaims().get(ECPublicJWK.Y)));
89 
90  String name;
91  switch (crv) {
92  case "P-256" :
93  name = "secp256r1";
94  break;
95  case "P-384" :
96  name = "secp384r1";
97  break;
98  case "P-521" :
99  name = "secp521r1";
100  break;
101  default :
102  throw new RuntimeException("Unsupported curve");
103  }
104 
105  try {
106  ECNamedCurveParameterSpec spec = ECNamedCurveTable.getParameterSpec(name);
107  ECNamedCurveSpec params = new ECNamedCurveSpec("prime256v1", spec.getCurve(), spec.getG(), spec.getN());
108  ECPoint point = new ECPoint(x, y);
109  ECPublicKeySpec pubKeySpec = new ECPublicKeySpec(point, params);
110 
111  KeyFactory kf = KeyFactory.getInstance("ECDSA");
112  return kf.generatePublic(pubKeySpec);
113  } catch (Exception e) {
114  throw new RuntimeException(e);
115  }
116  }
JWK jwk
Definition: JWKParser.java:43
Map< String, Object > getOtherClaims()
Definition: JWK.java:103

◆ createRSAPublicKey()

PublicKey org.keycloak.jose.jwk.JWKParser.createRSAPublicKey ( )
inlineprivate
118  {
119  BigInteger modulus = new BigInteger(1, Base64Url.decode(jwk.getOtherClaims().get(RSAPublicJWK.MODULUS).toString()));
120  BigInteger publicExponent = new BigInteger(1, Base64Url.decode(jwk.getOtherClaims().get(RSAPublicJWK.PUBLIC_EXPONENT).toString()));
121 
122  try {
123  KeyFactory kf = KeyFactory.getInstance("RSA");
124  return kf.generatePublic(new RSAPublicKeySpec(modulus, publicExponent));
125  } catch (Exception e) {
126  throw new RuntimeException(e);
127  }
128  }
JWK jwk
Definition: JWKParser.java:43
Map< String, Object > getOtherClaims()
Definition: JWK.java:103

◆ getJwk()

JWK org.keycloak.jose.jwk.JWKParser.getJwk ( )
inline
69  {
70  return jwk;
71  }
JWK jwk
Definition: JWKParser.java:43

◆ isKeyTypeSupported()

boolean org.keycloak.jose.jwk.JWKParser.isKeyTypeSupported ( String  keyType)
inline
130  {
131  return RSAPublicJWK.RSA.equals(keyType);
132  }

◆ parse()

JWKParser org.keycloak.jose.jwk.JWKParser.parse ( String  jwk)
inline
60  {
61  try {
62  this.jwk = JsonSerialization.mapper.readValue(jwk, JWK.class);
63  return this;
64  } catch (Exception e) {
65  throw new RuntimeException(e);
66  }
67  }
JWK jwk
Definition: JWKParser.java:43

◆ toPublicKey()

PublicKey org.keycloak.jose.jwk.JWKParser.toPublicKey ( )
inline
73  {
74  String keyType = jwk.getKeyType();
75  if (keyType.equals(KeyType.RSA)) {
76  return createRSAPublicKey();
77  } else if (keyType.equals(KeyType.EC)) {
78  return createECPublicKey();
79 
80  } else {
81  throw new RuntimeException("Unsupported keyType " + keyType);
82  }
83  }
PublicKey createECPublicKey()
Definition: JWKParser.java:85
String getKeyType()
Definition: JWK.java:78
JWK jwk
Definition: JWKParser.java:43
PublicKey createRSAPublicKey()
Definition: JWKParser.java:118

メンバ詳解

◆ jwk

JWK org.keycloak.jose.jwk.JWKParser.jwk
private

◆ typeRef

TypeReference<Map<String,String> > org.keycloak.jose.jwk.JWKParser.typeRef = new TypeReference<Map<String,String>>() {}
staticprivate

このクラス詳解は次のファイルから抽出されました: