keycloak
公開メンバ関数 | 静的公開メンバ関数 | 静的公開変数類 | 非公開メンバ関数 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.keys.GeneratedRsaKeyProviderFactory クラス
org.keycloak.keys.GeneratedRsaKeyProviderFactory の継承関係図
Inheritance graph
org.keycloak.keys.GeneratedRsaKeyProviderFactory 連携図
Collaboration graph

公開メンバ関数

KeyProvider create (KeycloakSession session, ComponentModel model)
 
boolean createFallbackKeys (KeycloakSession session, KeyUse keyUse, String algorithm)
 
void validateConfiguration (KeycloakSession session, RealmModel realm, ComponentModel model) throws ComponentValidationException
 
String getHelpText ()
 
List< ProviderConfigPropertygetConfigProperties ()
 
String getId ()
 
default ProviderType create (KeycloakSession session)
 
default void init (Config.Scope config)
 
default void postInit (KeycloakSessionFactory factory)
 
default void close ()
 
default void onCreate (KeycloakSession session, RealmModel realm, ComponentModel model)
 
default void onUpdate (KeycloakSession session, RealmModel realm, ComponentModel oldModel, ComponentModel newModel)
 
default void preRemove (KeycloakSession session, RealmModel realm, ComponentModel model)
 
default List< ProviderConfigPropertygetCommonProviderConfigProperties ()
 
default Map< String, Object > getTypeMetadata ()
 
default int order ()
 

静的公開メンバ関数

static final ProviderConfigurationBuilder configurationBuilder ()
 

静的公開変数類

static final String ID = "rsa-generated"
 

非公開メンバ関数

void generateKeys (RealmModel realm, ComponentModel model, int size)
 
void generateCertificate (RealmModel realm, ComponentModel model, KeyPair keyPair)
 

静的非公開変数類

static final Logger logger = Logger.getLogger(GeneratedRsaKeyProviderFactory.class)
 
static final String HELP_TEXT = "Generates RSA keys and creates a self-signed certificate"
 
static final List< ProviderConfigPropertyCONFIG_PROPERTIES
 

詳解

著者
Stian Thorgersen

関数詳解

◆ close()

default void org.keycloak.keys.KeyProviderFactory< T extends KeyProvider >.close ( )
inlineinherited

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

47  {
48  }

◆ configurationBuilder()

static final ProviderConfigurationBuilder org.keycloak.keys.AbstractRsaKeyProviderFactory.configurationBuilder ( )
inlinestaticinherited
32  {
33  return ProviderConfigurationBuilder.create()
34  .property(Attributes.PRIORITY_PROPERTY)
35  .property(Attributes.ENABLED_PROPERTY)
36  .property(Attributes.ACTIVE_PROPERTY)
37  .property(Attributes.RS_ALGORITHM_PROPERTY);
38  }

◆ create() [1/2]

default ProviderType org.keycloak.component.ComponentFactory< CreatedType, ProviderType extends Provider >.create ( KeycloakSession  session)
inlineinherited

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

38  {
39  return null;
40  }

◆ create() [2/2]

KeyProvider org.keycloak.keys.GeneratedRsaKeyProviderFactory.create ( KeycloakSession  session,
ComponentModel  model 
)
inline

org.keycloak.keys.KeyProviderFactory< T extends KeyProvider >を実装しています。

56  {
57  return new ImportedRsaKeyProvider(session.getContext().getRealm(), model);
58  }

◆ createFallbackKeys()

boolean org.keycloak.keys.GeneratedRsaKeyProviderFactory.createFallbackKeys ( KeycloakSession  session,
KeyUse  keyUse,
String  algorithm 
)
inline

org.keycloak.keys.KeyProviderFactory< T extends KeyProvider >を実装しています。

61  {
62  if (keyUse.equals(KeyUse.SIG) && (algorithm.equals(Algorithm.RS256) || algorithm.equals(Algorithm.RS384) || algorithm.equals(Algorithm.RS512))) {
63  RealmModel realm = session.getContext().getRealm();
64 
65  ComponentModel generated = new ComponentModel();
66  generated.setName("fallback-" + algorithm);
67  generated.setParentId(realm.getId());
68  generated.setProviderId(ID);
69  generated.setProviderType(KeyProvider.class.getName());
70 
71  MultivaluedHashMap<String, String> config = new MultivaluedHashMap<>();
72  config.putSingle(Attributes.PRIORITY_KEY, "-100");
73  config.putSingle(Attributes.ALGORITHM_KEY, algorithm);
74  generated.setConfig(config);
75 
76  realm.addComponentModel(generated);
77 
78  return true;
79  } else {
80  return false;
81  }
82  }
static final String ID
Definition: GeneratedRsaKeyProviderFactory.java:47

◆ generateCertificate()

void org.keycloak.keys.GeneratedRsaKeyProviderFactory.generateCertificate ( RealmModel  realm,
ComponentModel  model,
KeyPair  keyPair 
)
inlineprivate
119  {
120  try {
121  Certificate certificate = CertificateUtils.generateV1SelfSignedCertificate(keyPair, realm.getName());
122  model.put(Attributes.CERTIFICATE_KEY, PemUtils.encodeCertificate(certificate));
123  } catch (Throwable t) {
124  throw new ComponentValidationException("Failed to generate certificate", t);
125  }
126  }

◆ generateKeys()

void org.keycloak.keys.GeneratedRsaKeyProviderFactory.generateKeys ( RealmModel  realm,
ComponentModel  model,
int  size 
)
inlineprivate
107  {
108  KeyPair keyPair;
109  try {
110  keyPair = KeyUtils.generateRsaKeyPair(size);
111  model.put(Attributes.PRIVATE_KEY_KEY, PemUtils.encodeKey(keyPair.getPrivate()));
112  } catch (Throwable t) {
113  throw new ComponentValidationException("Failed to generate keys", t);
114  }
115 
116  generateCertificate(realm, model, keyPair);
117  }
void generateCertificate(RealmModel realm, ComponentModel model, KeyPair keyPair)
Definition: GeneratedRsaKeyProviderFactory.java:119

◆ getCommonProviderConfigProperties()

default List<ProviderConfigProperty> org.keycloak.component.ComponentFactory< CreatedType, ProviderType extends Provider >.getCommonProviderConfigProperties ( )
inlineinherited

These are config properties that are common across all implementation of this component type

戻り値

org.keycloak.storage.UserStorageProviderFactory< T extends UserStorageProvider >, org.keycloak.storage.client.ClientStorageProviderFactory< T extends ClientStorageProvider >で実装されています。

100  {
101  return Collections.EMPTY_LIST;
102  }

◆ getConfigProperties()

List<ProviderConfigProperty> org.keycloak.keys.GeneratedRsaKeyProviderFactory.getConfigProperties ( )
inline

org.keycloak.provider.ConfiguredProviderを実装しています。

134  {
135  return CONFIG_PROPERTIES;
136  }
static final List< ProviderConfigProperty > CONFIG_PROPERTIES
Definition: GeneratedRsaKeyProviderFactory.java:51

◆ getHelpText()

String org.keycloak.keys.GeneratedRsaKeyProviderFactory.getHelpText ( )
inline

org.keycloak.provider.ConfiguredProviderを実装しています。

129  {
130  return HELP_TEXT;
131  }
static final String HELP_TEXT
Definition: GeneratedRsaKeyProviderFactory.java:49

◆ getId()

String org.keycloak.keys.GeneratedRsaKeyProviderFactory.getId ( )
inline

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

139  {
140  return ID;
141  }
static final String ID
Definition: GeneratedRsaKeyProviderFactory.java:47

◆ getTypeMetadata()

default Map<String, Object> org.keycloak.component.ComponentFactory< CreatedType, ProviderType extends Provider >.getTypeMetadata ( )
inlineinherited

This is metadata about this component type. Its really configuration information about the component type and not an individual instance

戻り値

org.keycloak.storage.UserStorageProviderFactory< T extends UserStorageProvider >, org.keycloak.storage.client.ClientStorageProviderFactory< T extends ClientStorageProvider >で実装されています。

111  {
112  return Collections.EMPTY_MAP;
113 
114  }

◆ init()

default void org.keycloak.keys.KeyProviderFactory< T extends KeyProvider >.init ( Config.Scope  config)
inlineinherited

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

39  {
40  }

◆ onCreate()

default void org.keycloak.component.ComponentFactory< CreatedType, ProviderType extends Provider >.onCreate ( KeycloakSession  session,
RealmModel  realm,
ComponentModel  model 
)
inlineinherited

◆ onUpdate()

default void org.keycloak.component.ComponentFactory< CreatedType, ProviderType extends Provider >.onUpdate ( KeycloakSession  session,
RealmModel  realm,
ComponentModel  oldModel,
ComponentModel  newModel 
)
inlineinherited

Called after the component is updated.

引数
session
realm
oldModelold saved model
newModelnew configuration

org.keycloak.storage.ldap.LDAPStorageProviderFactory, org.keycloak.federation.kerberos.KerberosFederationProviderFactoryで実装されています。

78  {
79 
80  }

◆ order()

default int org.keycloak.provider.ProviderFactory< T extends Provider >.order ( )
inlineinherited

◆ postInit()

default void org.keycloak.keys.KeyProviderFactory< T extends KeyProvider >.postInit ( KeycloakSessionFactory  factory)
inlineinherited

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

43  {
44  }

◆ preRemove()

default void org.keycloak.component.ComponentFactory< CreatedType, ProviderType extends Provider >.preRemove ( KeycloakSession  session,
RealmModel  realm,
ComponentModel  model 
)
inlineinherited

Called before the component is removed.

引数
session
realm
modelmodel of the component, which is going to be removed

org.keycloak.storage.ldap.LDAPStorageProviderFactory, org.keycloak.federation.kerberos.KerberosFederationProviderFactoryで実装されています。

90  {
91 
92  }

◆ validateConfiguration()

void org.keycloak.keys.GeneratedRsaKeyProviderFactory.validateConfiguration ( KeycloakSession  session,
RealmModel  realm,
ComponentModel  model 
) throws ComponentValidationException
inline

org.keycloak.component.ComponentFactory< CreatedType, ProviderType extends Provider >を実装しています。

85  {
86  super.validateConfiguration(session, realm, model);
87 
88  ConfigurationValidationHelper.check(model).checkList(Attributes.KEY_SIZE_PROPERTY, false);
89 
90  int size = model.get(Attributes.KEY_SIZE_KEY, 2048);
91 
92  if (!(model.contains(Attributes.PRIVATE_KEY_KEY) && model.contains(Attributes.CERTIFICATE_KEY))) {
93  generateKeys(realm, model, size);
94 
95  logger.debugv("Generated keys for {0}", realm.getName());
96  } else {
97  PrivateKey privateKey = PemUtils.decodePrivateKey(model.get(Attributes.PRIVATE_KEY_KEY));
98  int currentSize = ((RSAPrivateKey) privateKey).getModulus().bitLength();
99  if (currentSize != size) {
100  generateKeys(realm, model, size);
101 
102  logger.debugv("Key size changed, generating new keys for {0}", realm.getName());
103  }
104  }
105  }
static final Logger logger
Definition: GeneratedRsaKeyProviderFactory.java:45
void generateKeys(RealmModel realm, ComponentModel model, int size)
Definition: GeneratedRsaKeyProviderFactory.java:107

メンバ詳解

◆ CONFIG_PROPERTIES

final List<ProviderConfigProperty> org.keycloak.keys.GeneratedRsaKeyProviderFactory.CONFIG_PROPERTIES
staticprivate
初期値:
= AbstractRsaKeyProviderFactory.configurationBuilder()
.property(Attributes.KEY_SIZE_PROPERTY)
.build()

◆ HELP_TEXT

final String org.keycloak.keys.GeneratedRsaKeyProviderFactory.HELP_TEXT = "Generates RSA keys and creates a self-signed certificate"
staticprivate

◆ ID

final String org.keycloak.keys.GeneratedRsaKeyProviderFactory.ID = "rsa-generated"
static

◆ logger

final Logger org.keycloak.keys.GeneratedRsaKeyProviderFactory.logger = Logger.getLogger(GeneratedRsaKeyProviderFactory.class)
staticprivate

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