keycloak-service
公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
org.keycloak.keys.JavaKeystoreKeyProvider クラス
org.keycloak.keys.JavaKeystoreKeyProvider の継承関係図
Inheritance graph
org.keycloak.keys.JavaKeystoreKeyProvider 連携図
Collaboration graph

公開メンバ関数

 JavaKeystoreKeyProvider (RealmModel realm, ComponentModel model)
 
List< KeyWrapper > getKeys ()
 

限定公開メンバ関数

KeyWrapper loadKey (RealmModel realm, ComponentModel model)
 
KeyWrapper createKeyWrapper (KeyPair keyPair, X509Certificate certificate)
 

詳解

著者
Stian Thorgersen

構築子と解体子

◆ JavaKeystoreKeyProvider()

org.keycloak.keys.JavaKeystoreKeyProvider.JavaKeystoreKeyProvider ( RealmModel  realm,
ComponentModel  model 
)
inline
44  {
45  super(realm, model);
46  }
final ComponentModel model
Definition: AbstractRsaKeyProvider.java:41

関数詳解

◆ createKeyWrapper()

KeyWrapper org.keycloak.keys.AbstractRsaKeyProvider.createKeyWrapper ( KeyPair  keyPair,
X509Certificate  certificate 
)
inlineprotectedinherited
67  {
68  KeyWrapper key = new KeyWrapper();
69 
70  key.setProviderId(model.getId());
71  key.setProviderPriority(model.get("priority", 0l));
72 
73  key.setKid(KeyUtils.createKeyId(keyPair.getPublic()));
74  key.setUse(KeyUse.SIG);
75  key.setType(KeyType.RSA);
76  key.setAlgorithm(algorithm);
77  key.setStatus(status);
78  key.setSignKey(keyPair.getPrivate());
79  key.setVerifyKey(keyPair.getPublic());
80  key.setCertificate(certificate);
81 
82  return key;
83  }
final ComponentModel model
Definition: AbstractRsaKeyProvider.java:41
final KeyWrapper key
Definition: AbstractRsaKeyProvider.java:43
final KeyStatus status
Definition: AbstractRsaKeyProvider.java:39
final String algorithm
Definition: AbstractRsaKeyProvider.java:45

◆ getKeys()

List<KeyWrapper> org.keycloak.keys.AbstractRsaKeyProvider.getKeys ( )
inlineinherited
63  {
64  return Collections.singletonList(key);
65  }
final KeyWrapper key
Definition: AbstractRsaKeyProvider.java:43

◆ loadKey()

KeyWrapper org.keycloak.keys.JavaKeystoreKeyProvider.loadKey ( RealmModel  realm,
ComponentModel  model 
)
inlineprotected
49  {
50  try {
51  KeyStore keyStore = KeyStore.getInstance("JKS");
52  keyStore.load(new FileInputStream(model.get(JavaKeystoreKeyProviderFactory.KEYSTORE_KEY)), model.get(JavaKeystoreKeyProviderFactory.KEYSTORE_PASSWORD_KEY).toCharArray());
53 
54  PrivateKey privateKey = (PrivateKey) keyStore.getKey(model.get(JavaKeystoreKeyProviderFactory.KEY_ALIAS_KEY), model.get(JavaKeystoreKeyProviderFactory.KEY_PASSWORD_KEY).toCharArray());
55  PublicKey publicKey = KeyUtils.extractPublicKey(privateKey);
56 
57  KeyPair keyPair = new KeyPair(publicKey, privateKey);
58 
59  X509Certificate certificate = (X509Certificate) keyStore.getCertificate(model.get(JavaKeystoreKeyProviderFactory.KEY_ALIAS_KEY));
60  if (certificate == null) {
61  certificate = CertificateUtils.generateV1SelfSignedCertificate(keyPair, realm.getName());
62  }
63 
64  return createKeyWrapper(keyPair, certificate);
65  } catch (KeyStoreException kse) {
66  throw new RuntimeException("KeyStore error on server. " + kse.getMessage(), kse);
67  } catch (FileNotFoundException fnfe) {
68  throw new RuntimeException("File not found on server. " + fnfe.getMessage(), fnfe);
69  } catch (IOException ioe) {
70  throw new RuntimeException("IO error on server. " + ioe.getMessage(), ioe);
71  } catch (NoSuchAlgorithmException nsae) {
72  throw new RuntimeException("Algorithm not available on server. " + nsae.getMessage(), nsae);
73  } catch (CertificateException ce) {
74  throw new RuntimeException("Certificate error on server. " + ce.getMessage(), ce);
75  } catch (UnrecoverableKeyException uke) {
76  throw new RuntimeException("Keystore on server can not be recovered. " + uke.getMessage(), uke);
77  }
78  }
final ComponentModel model
Definition: AbstractRsaKeyProvider.java:41
KeyWrapper createKeyWrapper(KeyPair keyPair, X509Certificate certificate)
Definition: AbstractRsaKeyProvider.java:67

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