gluu
クラス | 公開メンバ関数 | 静的公開変数類 | 限定公開メンバ関数 | 静的関数 | 変数 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.xdi.oxauth.model.config.ConfigurationFactory クラス
org.xdi.oxauth.model.config.ConfigurationFactory 連携図
Collaboration graph

クラス

class  PersistenceConfiguration
 

公開メンバ関数

void init ()
 
void create ()
 
void initTimer ()
 
void reloadConfigurationTimerEvent (@Observes @Scheduled ConfigurationEvent configurationEvent)
 
PersistenceConfiguration getPersistenceConfiguration ()
 
AppConfiguration getAppConfiguration ()
 
StaticConfiguration getStaticConfiguration ()
 
WebKeysConfiguration getWebKeysConfiguration ()
 
ErrorResponseFactory getErrorResponseFactory ()
 
BaseDnConfiguration getBaseDn ()
 
String getCryptoConfigurationSalt ()
 
void destroy (Class<? extends Configuration > clazz)
 
void initJwksFromString (String p_webKeys) throws IOException, JsonParseException, JsonMappingException
 
void loadCryptoConfigurationSalt ()
 

静的公開変数類

static final String PERSISTENCE_CONFIGUARION_RELOAD_EVENT_TYPE = "persistenceConfigurationReloadEvent"
 
static final String LDAP_DEFAULT_FILE_PATH = DIR + "ox-ldap.properties"
 

限定公開メンバ関数

PersistenceConfiguration loadPersistenceConfiguration ()
 

静的関数

 [static initializer]
 

変数

String configFilePath
 
String errorsFilePath
 
String staticConfFilePath
 
String webKeysFilePath
 
String saltFilePath
 

非公開メンバ関数

void reloadConfiguration ()
 
String confDir ()
 
boolean createFromFile ()
 
boolean reloadWebkeyFromFile ()
 
boolean reloadStaticConfFromFile ()
 
boolean reloadErrorsFromFile ()
 
boolean reloadConfFromFile ()
 
boolean createFromLdap (boolean recoverFromFiles)
 
Conf loadConfigurationFromLdap (String... returnAttributes)
 
void init (Conf p_conf)
 
void initWebKeysFromJson (String p_webKeys)
 
void initStaticConfigurationFromJson (String p_statics)
 
void initConfigurationFromJson (String p_configurationJson)
 
void initErrorsFromJson (String p_errosAsJson)
 
PersistenceConfiguration loadLdapConfiguration (String ldapFileName)
 
PersistenceConfiguration loadPersistenceConfiguration (String gluuFileName)
 
void replaceWithSystemValues (FileConfiguration fileConfiguration)
 
String determineGluuConfigurationFileName ()
 
String determineLdapConfigurationFileName ()
 
AppConfiguration loadConfFromFile ()
 
ErrorMessages loadErrorsFromFile ()
 
StaticConfiguration loadStaticConfFromFile ()
 
WebKeysConfiguration loadWebKeysFromFile ()
 
FileConfiguration createFileConfiguration (String fileName, boolean isMandatory)
 

非公開変数類

Logger log
 
Event< TimerEvent > timerEvent
 
Event< AppConfigurationconfigurationUpdateEvent
 
Event< String > event
 
Instance< PersistenceEntryManager > persistenceEntryManagerInstance
 
Instance< PersistenceEntryManagerFactory > persistenceEntryManagerFactoryInstance
 
Instance< ConfigurationconfigurationInstance
 
final String CONFIG_FILE_NAME = "oxauth-config.json"
 
final String ERRORS_FILE_NAME = "oxauth-errors.json"
 
final String STATIC_CONF_FILE_NAME = "oxauth-static-conf.json"
 
final String WEB_KEYS_FILE_NAME = "oxauth-web-keys.json"
 
final String SALT_FILE_NAME = "salt"
 
String confDir
 
boolean loaded = false
 
PersistenceConfiguration persistenceConfiguration
 
AppConfiguration conf
 
StaticConfiguration staticConf
 
WebKeysConfiguration jwks
 
ErrorResponseFactory errorResponseFactory
 
String cryptoConfigurationSalt
 
AtomicBoolean isActive
 
long loadedRevision = -1
 
boolean loadedFromLdap = true
 

静的非公開変数類

static final int DEFAULT_INTERVAL = 30
 
static final String BASE_DIR
 
static final String DIR = BASE_DIR + File.separator + "conf" + File.separator
 
static final String GLUU_FILE_PATH = DIR + "gluu.properties"
 
static final String LDAP_FILE_PATH = DIR + "oxauth-ldap.properties"
 

詳解

著者
Yuriy Zabrovarnyy
Javier Rojas Blum
Yuriy Movchan
バージョン
June 15, 2016

関数詳解

◆ [static initializer]()

org.xdi.oxauth.model.config.ConfigurationFactory.[static initializer] ( )
inlinestaticpackage

◆ confDir()

String org.xdi.oxauth.model.config.ConfigurationFactory.confDir ( )
inlineprivate
236  {
237  final String confDir = this.persistenceConfiguration.getConfiguration().getString("confDir", null);
238  if (StringUtils.isNotBlank(confDir)) {
239  return confDir;
240  }
241 
242  return DIR;
243  }
PersistenceConfiguration persistenceConfiguration
Definition: ConfigurationFactory.java:116
static final String DIR
Definition: ConfigurationFactory.java:100
final FileConfiguration getConfiguration()
Definition: ConfigurationFactory.java:661
String confDir()
Definition: ConfigurationFactory.java:236

◆ create()

void org.xdi.oxauth.model.config.ConfigurationFactory.create ( )
inline
170  {
171  if (!createFromLdap(true)) {
172  log.error("Failed to load configuration from LDAP. Please fix it!!!.");
173  throw new ConfigurationException("Failed to load configuration from LDAP.");
174  } else {
175  log.info("Configuration loaded successfully.");
176  }
177  }
boolean createFromLdap(boolean recoverFromFiles)
Definition: ConfigurationFactory.java:342
Logger log
Definition: ConfigurationFactory.java:61

◆ createFileConfiguration()

FileConfiguration org.xdi.oxauth.model.config.ConfigurationFactory.createFileConfiguration ( String  fileName,
boolean  isMandatory 
)
inlineprivate
629  {
630  try {
631  FileConfiguration fileConfiguration = new FileConfiguration(fileName);
632 
633  return fileConfiguration;
634  } catch (Exception ex) {
635  if (isMandatory) {
636  log.error("Failed to load configuration from {}", fileName, ex);
637  throw new ConfigurationException("Failed to load configuration from " + fileName, ex);
638  }
639  }
640 
641  return null;
642  }
Logger log
Definition: ConfigurationFactory.java:61

◆ createFromFile()

boolean org.xdi.oxauth.model.config.ConfigurationFactory.createFromFile ( )
inlineprivate
283  {
286 
287  return result;
288  }
boolean reloadErrorsFromFile()
Definition: ConfigurationFactory.java:316
boolean reloadWebkeyFromFile()
Definition: ConfigurationFactory.java:290
boolean reloadConfFromFile()
Definition: ConfigurationFactory.java:329
boolean reloadStaticConfFromFile()
Definition: ConfigurationFactory.java:303

◆ createFromLdap()

boolean org.xdi.oxauth.model.config.ConfigurationFactory.createFromLdap ( boolean  recoverFromFiles)
inlineprivate
342  {
343  log.info("Loading configuration from LDAP...");
344  try {
345  final Conf c = loadConfigurationFromLdap();
346  if (c != null) {
347  init(c);
348 
349  // Destroy old configuration
350  if (this.loaded) {
351  destroy(AppConfiguration.class);
352  destroy(StaticConfiguration.class);
353  destroy(WebKeysConfiguration.class);
354  destroy(ErrorResponseFactory.class);
355  }
356 
357  this.loaded = true;
358  configurationUpdateEvent.select(ConfigurationUpdate.Literal.INSTANCE).fire(conf);
359 
360  return true;
361  }
362  } catch (Exception ex) {
363  log.error(ex.getMessage(), ex);
364  }
365 
366  if (recoverFromFiles) {
367  log.info("Unable to find configuration in LDAP, try to load configuration from file system... ");
368  if (createFromFile()) {
369  this.loadedFromLdap = false;
370  return true;
371  }
372  }
373 
374  return false;
375  }
Conf loadConfigurationFromLdap(String... returnAttributes)
Definition: ConfigurationFactory.java:382
AppConfiguration conf
Definition: ConfigurationFactory.java:117
Event< AppConfiguration > configurationUpdateEvent
Definition: ConfigurationFactory.java:67
void init()
Definition: ConfigurationFactory.java:129
boolean createFromFile()
Definition: ConfigurationFactory.java:283
void destroy(Class<? extends Configuration > clazz)
Definition: ConfigurationFactory.java:377
Logger log
Definition: ConfigurationFactory.java:61
boolean loadedFromLdap
Definition: ConfigurationFactory.java:126
boolean loaded
Definition: ConfigurationFactory.java:114

◆ destroy()

void org.xdi.oxauth.model.config.ConfigurationFactory.destroy ( Class<? extends Configuration clazz)
inline
377  {
378  Instance<? extends Configuration> confInstance = configurationInstance.select(clazz);
379  configurationInstance.destroy(confInstance.get());
380  }
Instance< Configuration > configurationInstance
Definition: ConfigurationFactory.java:79

◆ determineGluuConfigurationFileName()

String org.xdi.oxauth.model.config.ConfigurationFactory.determineGluuConfigurationFileName ( )
inlineprivate
564  {
565  File ldapFile = new File(GLUU_FILE_PATH);
566  if (ldapFile.exists()) {
567  return GLUU_FILE_PATH;
568  }
569 
570  return null;
571  }
static final String GLUU_FILE_PATH
Definition: ConfigurationFactory.java:102

◆ determineLdapConfigurationFileName()

String org.xdi.oxauth.model.config.ConfigurationFactory.determineLdapConfigurationFileName ( )
inlineprivate
573  {
574  File ldapFile = new File(LDAP_FILE_PATH);
575  if (ldapFile.exists()) {
576  return LDAP_FILE_PATH;
577  }
578 
579  return LDAP_DEFAULT_FILE_PATH;
580  }
static final String LDAP_DEFAULT_FILE_PATH
Definition: ConfigurationFactory.java:104
static final String LDAP_FILE_PATH
Definition: ConfigurationFactory.java:103

◆ getAppConfiguration()

AppConfiguration org.xdi.oxauth.model.config.ConfigurationFactory.getAppConfiguration ( )
inline
253  {
254  return conf;
255  }
AppConfiguration conf
Definition: ConfigurationFactory.java:117

◆ getBaseDn()

BaseDnConfiguration org.xdi.oxauth.model.config.ConfigurationFactory.getBaseDn ( )
inline
275  {
277  }
StaticConfiguration getStaticConfiguration()
Definition: ConfigurationFactory.java:259
BaseDnConfiguration getBaseDn()
Definition: StaticConfiguration.java:32

◆ getCryptoConfigurationSalt()

String org.xdi.oxauth.model.config.ConfigurationFactory.getCryptoConfigurationSalt ( )
inline
279  {
281  }
String cryptoConfigurationSalt
Definition: ConfigurationFactory.java:121

◆ getErrorResponseFactory()

ErrorResponseFactory org.xdi.oxauth.model.config.ConfigurationFactory.getErrorResponseFactory ( )
inline
271  {
272  return errorResponseFactory;
273  }
ErrorResponseFactory errorResponseFactory
Definition: ConfigurationFactory.java:120

◆ getPersistenceConfiguration()

PersistenceConfiguration org.xdi.oxauth.model.config.ConfigurationFactory.getPersistenceConfiguration ( )
inline
247  {
249  }
PersistenceConfiguration persistenceConfiguration
Definition: ConfigurationFactory.java:116

◆ getStaticConfiguration()

StaticConfiguration org.xdi.oxauth.model.config.ConfigurationFactory.getStaticConfiguration ( )
inline
259  {
260  return staticConf;
261  }
StaticConfiguration staticConf
Definition: ConfigurationFactory.java:118

◆ getWebKeysConfiguration()

WebKeysConfiguration org.xdi.oxauth.model.config.ConfigurationFactory.getWebKeysConfiguration ( )
inline
265  {
266  return jwks;
267  }
WebKeysConfiguration jwks
Definition: ConfigurationFactory.java:119

◆ init() [1/2]

void org.xdi.oxauth.model.config.ConfigurationFactory.init ( )
inline
129  {
130  this.isActive = new AtomicBoolean(true);
131  try {
133  this.confDir = confDir();
134 
138 
139  String certsDir = this.persistenceConfiguration.getConfiguration().getString("certsDir");
140  if (StringHelper.isEmpty(certsDir)) {
141  certsDir = confDir;
142  }
143  this.webKeysFilePath = certsDir + File.separator + WEB_KEYS_FILE_NAME;
145 
147  } finally {
148  this.isActive.set(false);
149  }
150  }
PersistenceConfiguration persistenceConfiguration
Definition: ConfigurationFactory.java:116
String configFilePath
Definition: ConfigurationFactory.java:112
PersistenceConfiguration loadPersistenceConfiguration()
Definition: ConfigurationFactory.java:152
final String STATIC_CONF_FILE_NAME
Definition: ConfigurationFactory.java:108
String staticConfFilePath
Definition: ConfigurationFactory.java:112
String saltFilePath
Definition: ConfigurationFactory.java:112
AtomicBoolean isActive
Definition: ConfigurationFactory.java:123
final String SALT_FILE_NAME
Definition: ConfigurationFactory.java:110
final String WEB_KEYS_FILE_NAME
Definition: ConfigurationFactory.java:109
void loadCryptoConfigurationSalt()
Definition: ConfigurationFactory.java:618
String webKeysFilePath
Definition: ConfigurationFactory.java:112
final String ERRORS_FILE_NAME
Definition: ConfigurationFactory.java:107
final FileConfiguration getConfiguration()
Definition: ConfigurationFactory.java:661
String errorsFilePath
Definition: ConfigurationFactory.java:112
String confDir()
Definition: ConfigurationFactory.java:236
final String CONFIG_FILE_NAME
Definition: ConfigurationFactory.java:106

◆ init() [2/2]

void org.xdi.oxauth.model.config.ConfigurationFactory.init ( Conf  p_conf)
inlineprivate
396  {
397  initConfigurationFromJson(p_conf.getDynamic());
398  initStaticConfigurationFromJson(p_conf.getStatics());
399  initWebKeysFromJson(p_conf.getWebKeys());
400  initErrorsFromJson(p_conf.getErrors());
401  this.loadedRevision = p_conf.getRevision();
402  }
void initErrorsFromJson(String p_errosAsJson)
Definition: ConfigurationFactory.java:468
void initWebKeysFromJson(String p_webKeys)
Definition: ConfigurationFactory.java:404
void initConfigurationFromJson(String p_configurationJson)
Definition: ConfigurationFactory.java:456
long loadedRevision
Definition: ConfigurationFactory.java:125
void initStaticConfigurationFromJson(String p_statics)
Definition: ConfigurationFactory.java:445

◆ initConfigurationFromJson()

void org.xdi.oxauth.model.config.ConfigurationFactory.initConfigurationFromJson ( String  p_configurationJson)
inlineprivate
456  {
457  try {
458  final AppConfiguration c = ServerUtil.createJsonMapper().readValue(p_configurationJson,
459  AppConfiguration.class);
460  if (c != null) {
461  conf = c;
462  }
463  } catch (Exception e) {
464  log.error(e.getMessage(), e);
465  }
466  }
AppConfiguration conf
Definition: ConfigurationFactory.java:117
Logger log
Definition: ConfigurationFactory.java:61

◆ initErrorsFromJson()

void org.xdi.oxauth.model.config.ConfigurationFactory.initErrorsFromJson ( String  p_errosAsJson)
inlineprivate
468  {
469  try {
470  final ErrorMessages errorMessages = ServerUtil.createJsonMapper().readValue(p_errosAsJson,
471  ErrorMessages.class);
472  if (errorMessages != null) {
473  errorResponseFactory = new ErrorResponseFactory(errorMessages);
474  }
475  } catch (Exception e) {
476  log.error(e.getMessage(), e);
477  }
478  }
Logger log
Definition: ConfigurationFactory.java:61
ErrorResponseFactory errorResponseFactory
Definition: ConfigurationFactory.java:120

◆ initJwksFromString()

void org.xdi.oxauth.model.config.ConfigurationFactory.initJwksFromString ( String  p_webKeys) throws IOException, JsonParseException, JsonMappingException
inline
438  {
439  final WebKeysConfiguration k = ServerUtil.createJsonMapper().readValue(p_webKeys, WebKeysConfiguration.class);
440  if (k != null) {
441  jwks = k;
442  }
443  }
WebKeysConfiguration jwks
Definition: ConfigurationFactory.java:119

◆ initStaticConfigurationFromJson()

void org.xdi.oxauth.model.config.ConfigurationFactory.initStaticConfigurationFromJson ( String  p_statics)
inlineprivate
445  {
446  try {
447  final StaticConfiguration c = ServerUtil.createJsonMapper().readValue(p_statics, StaticConfiguration.class);
448  if (c != null) {
449  staticConf = c;
450  }
451  } catch (Exception e) {
452  log.error(e.getMessage(), e);
453  }
454  }
Logger log
Definition: ConfigurationFactory.java:61
StaticConfiguration staticConf
Definition: ConfigurationFactory.java:118

◆ initTimer()

void org.xdi.oxauth.model.config.ConfigurationFactory.initTimer ( )
inline
179  {
180  log.debug("Initializing Configuration Timer");
181 
182  final int delay = 30;
183  final int interval = DEFAULT_INTERVAL;
184 
185  timerEvent.fire(new TimerEvent(new TimerSchedule(delay, interval), new ConfigurationEvent(),
186  Scheduled.Literal.INSTANCE));
187  }
Logger log
Definition: ConfigurationFactory.java:61
Event< TimerEvent > timerEvent
Definition: ConfigurationFactory.java:64
static final int DEFAULT_INTERVAL
Definition: ConfigurationFactory.java:83

◆ initWebKeysFromJson()

void org.xdi.oxauth.model.config.ConfigurationFactory.initWebKeysFromJson ( String  p_webKeys)
inlineprivate
404  {
405  try {
406  initJwksFromString(p_webKeys);
407  } catch (Exception ex) {
408  log.error("Failed to load JWKS. Attempting to generate new JWKS...", ex);
409 
410  String newWebKeys = null;
411  try {
412  // Generate new JWKS
413  JSONObject jsonObject = AbstractCryptoProvider.generateJwks(
414  getAppConfiguration().getKeyRegenerationInterval(), getAppConfiguration().getIdTokenLifetime(),
416  newWebKeys = jsonObject.toString();
417 
418  // Attempt to load new JWKS
419  initJwksFromString(newWebKeys);
420 
421  // Store new JWKS in LDAP
423  conf.setWebKeys(newWebKeys);
424 
425  long nextRevision = conf.getRevision() + 1;
426  conf.setRevision(nextRevision);
427 
428  final PersistenceEntryManager ldapManager = persistenceEntryManagerInstance.get();
429  ldapManager.merge(conf);
430 
431  log.info("New JWKS generated successfully");
432  } catch (Exception ex2) {
433  log.error("Failed to re-generate JWKS keys", ex2);
434  }
435  }
436  }
Conf loadConfigurationFromLdap(String... returnAttributes)
Definition: ConfigurationFactory.java:382
void initJwksFromString(String p_webKeys)
Definition: ConfigurationFactory.java:438
AppConfiguration conf
Definition: ConfigurationFactory.java:117
Logger log
Definition: ConfigurationFactory.java:61
AppConfiguration getAppConfiguration()
Definition: ConfigurationFactory.java:253
Instance< PersistenceEntryManager > persistenceEntryManagerInstance
Definition: ConfigurationFactory.java:73

◆ loadConfFromFile()

AppConfiguration org.xdi.oxauth.model.config.ConfigurationFactory.loadConfFromFile ( )
inlineprivate
582  {
583  try {
584  return ServerUtil.createJsonMapper().readValue(new File(configFilePath), AppConfiguration.class);
585  } catch (Exception e) {
586  log.warn(e.getMessage(), e);
587  }
588  return null;
589  }
String configFilePath
Definition: ConfigurationFactory.java:112
Logger log
Definition: ConfigurationFactory.java:61

◆ loadConfigurationFromLdap()

Conf org.xdi.oxauth.model.config.ConfigurationFactory.loadConfigurationFromLdap ( String...  returnAttributes)
inlineprivate
382  {
383  final PersistenceEntryManager ldapManager = persistenceEntryManagerInstance.get();
384  final String dn = this.persistenceConfiguration.getConfiguration().getString("oxauth_ConfigurationEntryDN");
385  try {
386  final Conf conf = ldapManager.find(Conf.class, dn, returnAttributes);
387 
388  return conf;
389  } catch (BasePersistenceException ex) {
390  log.error(ex.getMessage());
391  }
392 
393  return null;
394  }
PersistenceConfiguration persistenceConfiguration
Definition: ConfigurationFactory.java:116
AppConfiguration conf
Definition: ConfigurationFactory.java:117
Logger log
Definition: ConfigurationFactory.java:61
Instance< PersistenceEntryManager > persistenceEntryManagerInstance
Definition: ConfigurationFactory.java:73
final FileConfiguration getConfiguration()
Definition: ConfigurationFactory.java:661

◆ loadCryptoConfigurationSalt()

void org.xdi.oxauth.model.config.ConfigurationFactory.loadCryptoConfigurationSalt ( )
inline
618  {
619  try {
620  FileConfiguration cryptoConfiguration = createFileConfiguration(saltFilePath, true);
621 
622  this.cryptoConfigurationSalt = cryptoConfiguration.getString("encodeSalt");
623  } catch (Exception ex) {
624  log.error("Failed to load configuration from {}", saltFilePath, ex);
625  throw new ConfigurationException("Failed to load configuration from " + saltFilePath, ex);
626  }
627  }
String cryptoConfigurationSalt
Definition: ConfigurationFactory.java:121
String saltFilePath
Definition: ConfigurationFactory.java:112
Logger log
Definition: ConfigurationFactory.java:61
FileConfiguration createFileConfiguration(String fileName, boolean isMandatory)
Definition: ConfigurationFactory.java:629

◆ loadErrorsFromFile()

ErrorMessages org.xdi.oxauth.model.config.ConfigurationFactory.loadErrorsFromFile ( )
inlineprivate
591  {
592  try {
593  return ServerUtil.createJsonMapper().readValue(new File(errorsFilePath), ErrorMessages.class);
594  } catch (Exception e) {
595  log.warn(e.getMessage(), e);
596  }
597  return null;
598  }
Logger log
Definition: ConfigurationFactory.java:61
String errorsFilePath
Definition: ConfigurationFactory.java:112

◆ loadLdapConfiguration()

PersistenceConfiguration org.xdi.oxauth.model.config.ConfigurationFactory.loadLdapConfiguration ( String  ldapFileName)
inlineprivate
480  {
481  try {
482  FileConfiguration ldapConfiguration = new FileConfiguration(ldapFileName);
483 
484  // Allow to override value via environment variables
485  replaceWithSystemValues(ldapConfiguration);
486 
487  long ldapFileLastModifiedTime = -1;
488  File ldapFile = new File(ldapFileName);
489  if (ldapFile.exists()) {
490  ldapFileLastModifiedTime = ldapFile.lastModified();
491  }
492 
493  PersistenceConfiguration persistenceConfiguration = new PersistenceConfiguration(ldapFileName, ldapConfiguration, org.gluu.persist.ldap.impl.LdapEntryManagerFactory.class, ldapFileLastModifiedTime);
494 
496  } catch (Exception e) {
497  log.error(e.getMessage(), e);
498  }
499 
500  return null;
501  }
PersistenceConfiguration persistenceConfiguration
Definition: ConfigurationFactory.java:116
Logger log
Definition: ConfigurationFactory.java:61
void replaceWithSystemValues(FileConfiguration fileConfiguration)
Definition: ConfigurationFactory.java:554

◆ loadPersistenceConfiguration() [1/2]

PersistenceConfiguration org.xdi.oxauth.model.config.ConfigurationFactory.loadPersistenceConfiguration ( )
inlineprotected
152  {
153  PersistenceConfiguration currentPersistenceConfiguration = null;
154 
155  String gluuFileName = determineGluuConfigurationFileName();
156  if (gluuFileName != null) {
157  currentPersistenceConfiguration = loadPersistenceConfiguration(gluuFileName);
158  }
159 
160  // Fall back to old LDAP persistence layer
161  if (currentPersistenceConfiguration == null) {
162  log.warn("Failed to load persistence configuration. Attempting to use LDAP layer");
163  String ldapFileName = determineLdapConfigurationFileName();
164  currentPersistenceConfiguration = loadLdapConfiguration(ldapFileName);
165  }
166 
167  return currentPersistenceConfiguration;
168  }
PersistenceConfiguration loadPersistenceConfiguration()
Definition: ConfigurationFactory.java:152
String determineGluuConfigurationFileName()
Definition: ConfigurationFactory.java:564
PersistenceConfiguration loadLdapConfiguration(String ldapFileName)
Definition: ConfigurationFactory.java:480
String determineLdapConfigurationFileName()
Definition: ConfigurationFactory.java:573
Logger log
Definition: ConfigurationFactory.java:61

◆ loadPersistenceConfiguration() [2/2]

PersistenceConfiguration org.xdi.oxauth.model.config.ConfigurationFactory.loadPersistenceConfiguration ( String  gluuFileName)
inlineprivate
503  {
504  try {
505  // Determine persistence type
506  FileConfiguration gluuFileConf = new FileConfiguration(gluuFileName);
507  String persistenceType = gluuFileConf.getString("persistence.type");
508 
509  // Determine configuration file name and factory class type
510  String persistenceFileName = null;
511  Class<? extends PersistenceEntryManagerFactory> persistenceEntryManagerFactoryType = null;
512 
513  for (PersistenceEntryManagerFactory persistenceEntryManagerFactory : persistenceEntryManagerFactoryInstance) {
514  log.debug("Found Persistence Entry Manager Factory with type '{}'", persistenceEntryManagerFactory);
515  if (StringHelper.equalsIgnoreCase(persistenceEntryManagerFactory.getPersistenceType(), persistenceType)) {
516  persistenceFileName = persistenceEntryManagerFactory.getDefaultConfigurationFileName();
517  persistenceEntryManagerFactoryType = (Class<? extends PersistenceEntryManagerFactory>) persistenceEntryManagerFactory.getClass().getSuperclass();
518  break;
519  }
520  }
521 
522  if (persistenceFileName == null) {
523  log.error("Unable to get Persistence Entry Manager Factory by type '{}'", persistenceType);
524  return null;
525  }
526 
527  String persistenceFileNamePath = DIR + persistenceFileName;
528 
529  FileConfiguration persistenceFileConf = new FileConfiguration(persistenceFileNamePath);
530  if (!persistenceFileConf.isLoaded()) {
531  log.error("Unable to load configuration file '{}'", persistenceFileNamePath);
532  return null;
533  }
534 
535  // Allow to override value via environment variables
536  replaceWithSystemValues(persistenceFileConf);
537 
538  long persistenceFileLastModifiedTime = -1;
539  File persistenceFile = new File(persistenceFileNamePath);
540  if (persistenceFile.exists()) {
541  persistenceFileLastModifiedTime = persistenceFile.lastModified();
542  }
543 
544  PersistenceConfiguration persistenceConfiguration = new PersistenceConfiguration(persistenceFileName, persistenceFileConf, persistenceEntryManagerFactoryType, persistenceFileLastModifiedTime);
545 
547  } catch (Exception e) {
548  log.error(e.getMessage(), e);
549  }
550 
551  return null;
552  }
PersistenceConfiguration persistenceConfiguration
Definition: ConfigurationFactory.java:116
static final String DIR
Definition: ConfigurationFactory.java:100
Logger log
Definition: ConfigurationFactory.java:61
void replaceWithSystemValues(FileConfiguration fileConfiguration)
Definition: ConfigurationFactory.java:554
Instance< PersistenceEntryManagerFactory > persistenceEntryManagerFactoryInstance
Definition: ConfigurationFactory.java:76

◆ loadStaticConfFromFile()

StaticConfiguration org.xdi.oxauth.model.config.ConfigurationFactory.loadStaticConfFromFile ( )
inlineprivate
600  {
601  try {
602  return ServerUtil.createJsonMapper().readValue(new File(staticConfFilePath), StaticConfiguration.class);
603  } catch (Exception e) {
604  log.warn(e.getMessage(), e);
605  }
606  return null;
607  }
String staticConfFilePath
Definition: ConfigurationFactory.java:112
Logger log
Definition: ConfigurationFactory.java:61

◆ loadWebKeysFromFile()

WebKeysConfiguration org.xdi.oxauth.model.config.ConfigurationFactory.loadWebKeysFromFile ( )
inlineprivate
609  {
610  try {
611  return ServerUtil.createJsonMapper().readValue(new File(webKeysFilePath), WebKeysConfiguration.class);
612  } catch (Exception e) {
613  log.warn(e.getMessage(), e);
614  }
615  return null;
616  }
Logger log
Definition: ConfigurationFactory.java:61
String webKeysFilePath
Definition: ConfigurationFactory.java:112

◆ reloadConfFromFile()

boolean org.xdi.oxauth.model.config.ConfigurationFactory.reloadConfFromFile ( )
inlineprivate
329  {
330  final AppConfiguration configFromFile = loadConfFromFile();
331  if (configFromFile != null) {
332  log.info("Reloaded configuration from file: " + configFilePath);
333  conf = configFromFile;
334  return true;
335  } else {
336  log.error("Failed to load configuration from file: " + configFilePath);
337  }
338 
339  return false;
340  }
String configFilePath
Definition: ConfigurationFactory.java:112
AppConfiguration conf
Definition: ConfigurationFactory.java:117
Logger log
Definition: ConfigurationFactory.java:61
AppConfiguration loadConfFromFile()
Definition: ConfigurationFactory.java:582

◆ reloadConfiguration()

void org.xdi.oxauth.model.config.ConfigurationFactory.reloadConfiguration ( )
inlineprivate
208  {
209  // Reload LDAP configuration if needed
210  PersistenceConfiguration newPersistenceConfiguration = loadPersistenceConfiguration();
211 
212  if (newPersistenceConfiguration != null) {
213  if (!StringHelper.equalsIgnoreCase(this.persistenceConfiguration.getFileName(), newPersistenceConfiguration.getFileName()) || (newPersistenceConfiguration.getLastModifiedTime() > this.persistenceConfiguration.getLastModifiedTime())) {
214  // Reload configuration only if it was modified
215  this.persistenceConfiguration = newPersistenceConfiguration;
216  event.select(LdapConfigurationReload.Literal.INSTANCE).fire(PERSISTENCE_CONFIGUARION_RELOAD_EVENT_TYPE);
217  }
218  }
219 
220  if (!loadedFromLdap) {
221  return;
222  }
223 
224  final Conf conf = loadConfigurationFromLdap("oxRevision");
225  if (conf == null) {
226  return;
227  }
228 
229  if (conf.getRevision() <= this.loadedRevision) {
230  return;
231  }
232 
233  createFromLdap(false);
234  }
PersistenceConfiguration persistenceConfiguration
Definition: ConfigurationFactory.java:116
Conf loadConfigurationFromLdap(String... returnAttributes)
Definition: ConfigurationFactory.java:382
final long getLastModifiedTime()
Definition: ConfigurationFactory.java:669
static final String PERSISTENCE_CONFIGUARION_RELOAD_EVENT_TYPE
Definition: ConfigurationFactory.java:81
AppConfiguration conf
Definition: ConfigurationFactory.java:117
boolean createFromLdap(boolean recoverFromFiles)
Definition: ConfigurationFactory.java:342
PersistenceConfiguration loadPersistenceConfiguration()
Definition: ConfigurationFactory.java:152
long loadedRevision
Definition: ConfigurationFactory.java:125
boolean loadedFromLdap
Definition: ConfigurationFactory.java:126

◆ reloadConfigurationTimerEvent()

void org.xdi.oxauth.model.config.ConfigurationFactory.reloadConfigurationTimerEvent ( @Observes @Scheduled ConfigurationEvent  configurationEvent)
inline
190  {
191  if (this.isActive.get()) {
192  return;
193  }
194 
195  if (!this.isActive.compareAndSet(false, true)) {
196  return;
197  }
198 
199  try {
201  } catch (Throwable ex) {
202  log.error("Exception happened while reloading application configuration", ex);
203  } finally {
204  this.isActive.set(false);
205  }
206  }
AtomicBoolean isActive
Definition: ConfigurationFactory.java:123
Logger log
Definition: ConfigurationFactory.java:61
void reloadConfiguration()
Definition: ConfigurationFactory.java:208

◆ reloadErrorsFromFile()

boolean org.xdi.oxauth.model.config.ConfigurationFactory.reloadErrorsFromFile ( )
inlineprivate
316  {
317  final ErrorMessages errorsFromFile = loadErrorsFromFile();
318  if (errorsFromFile != null) {
319  log.info("Reloaded errors from file: " + errorsFilePath);
320  errorResponseFactory = new ErrorResponseFactory(errorsFromFile);
321  return true;
322  } else {
323  log.error("Failed to load errors from file: " + errorsFilePath);
324  }
325 
326  return false;
327  }
Logger log
Definition: ConfigurationFactory.java:61
ErrorResponseFactory errorResponseFactory
Definition: ConfigurationFactory.java:120
String errorsFilePath
Definition: ConfigurationFactory.java:112
ErrorMessages loadErrorsFromFile()
Definition: ConfigurationFactory.java:591

◆ reloadStaticConfFromFile()

boolean org.xdi.oxauth.model.config.ConfigurationFactory.reloadStaticConfFromFile ( )
inlineprivate
303  {
304  final StaticConfiguration staticConfFromFile = loadStaticConfFromFile();
305  if (staticConfFromFile != null) {
306  log.info("Reloaded static conf from file: " + staticConfFilePath);
307  staticConf = staticConfFromFile;
308  return true;
309  } else {
310  log.error("Failed to load static configuration from file: " + staticConfFilePath);
311  }
312 
313  return false;
314  }
StaticConfiguration loadStaticConfFromFile()
Definition: ConfigurationFactory.java:600
String staticConfFilePath
Definition: ConfigurationFactory.java:112
Logger log
Definition: ConfigurationFactory.java:61
StaticConfiguration staticConf
Definition: ConfigurationFactory.java:118

◆ reloadWebkeyFromFile()

boolean org.xdi.oxauth.model.config.ConfigurationFactory.reloadWebkeyFromFile ( )
inlineprivate
290  {
291  final WebKeysConfiguration webKeysFromFile = loadWebKeysFromFile();
292  if (webKeysFromFile != null) {
293  log.info("Reloaded web keys from file: " + webKeysFilePath);
294  jwks = webKeysFromFile;
295  return true;
296  } else {
297  log.error("Failed to load web keys configuration from file: " + webKeysFilePath);
298  }
299 
300  return false;
301  }
WebKeysConfiguration jwks
Definition: ConfigurationFactory.java:119
WebKeysConfiguration loadWebKeysFromFile()
Definition: ConfigurationFactory.java:609
Logger log
Definition: ConfigurationFactory.java:61
String webKeysFilePath
Definition: ConfigurationFactory.java:112

◆ replaceWithSystemValues()

void org.xdi.oxauth.model.config.ConfigurationFactory.replaceWithSystemValues ( FileConfiguration  fileConfiguration)
inlineprivate
554  {
555  Set<Map.Entry<Object, Object>> ldapProperties = fileConfiguration.getProperties().entrySet();
556  for (Map.Entry<Object, Object> ldapPropertyEntry : ldapProperties) {
557  String ldapPropertyKey = (String) ldapPropertyEntry.getKey();
558  if (System.getenv(ldapPropertyKey) != null) {
559  ldapPropertyEntry.setValue(System.getenv(ldapPropertyKey));
560  }
561  }
562  }

メンバ詳解

◆ BASE_DIR

final String org.xdi.oxauth.model.config.ConfigurationFactory.BASE_DIR
staticprivate

◆ conf

AppConfiguration org.xdi.oxauth.model.config.ConfigurationFactory.conf
private

◆ confDir

String org.xdi.oxauth.model.config.ConfigurationFactory.confDir
private

◆ CONFIG_FILE_NAME

final String org.xdi.oxauth.model.config.ConfigurationFactory.CONFIG_FILE_NAME = "oxauth-config.json"
private

◆ configFilePath

String org.xdi.oxauth.model.config.ConfigurationFactory.configFilePath
package

◆ configurationInstance

Instance<Configuration> org.xdi.oxauth.model.config.ConfigurationFactory.configurationInstance
private

◆ configurationUpdateEvent

Event<AppConfiguration> org.xdi.oxauth.model.config.ConfigurationFactory.configurationUpdateEvent
private

◆ cryptoConfigurationSalt

String org.xdi.oxauth.model.config.ConfigurationFactory.cryptoConfigurationSalt
private

◆ DEFAULT_INTERVAL

final int org.xdi.oxauth.model.config.ConfigurationFactory.DEFAULT_INTERVAL = 30
staticprivate

◆ DIR

final String org.xdi.oxauth.model.config.ConfigurationFactory.DIR = BASE_DIR + File.separator + "conf" + File.separator
staticprivate

◆ errorResponseFactory

ErrorResponseFactory org.xdi.oxauth.model.config.ConfigurationFactory.errorResponseFactory
private

◆ ERRORS_FILE_NAME

final String org.xdi.oxauth.model.config.ConfigurationFactory.ERRORS_FILE_NAME = "oxauth-errors.json"
private

◆ errorsFilePath

String org.xdi.oxauth.model.config.ConfigurationFactory.errorsFilePath
package

◆ event

Event<String> org.xdi.oxauth.model.config.ConfigurationFactory.event
private

◆ GLUU_FILE_PATH

final String org.xdi.oxauth.model.config.ConfigurationFactory.GLUU_FILE_PATH = DIR + "gluu.properties"
staticprivate

◆ isActive

AtomicBoolean org.xdi.oxauth.model.config.ConfigurationFactory.isActive
private

◆ jwks

WebKeysConfiguration org.xdi.oxauth.model.config.ConfigurationFactory.jwks
private

◆ LDAP_DEFAULT_FILE_PATH

final String org.xdi.oxauth.model.config.ConfigurationFactory.LDAP_DEFAULT_FILE_PATH = DIR + "ox-ldap.properties"
static

◆ LDAP_FILE_PATH

final String org.xdi.oxauth.model.config.ConfigurationFactory.LDAP_FILE_PATH = DIR + "oxauth-ldap.properties"
staticprivate

◆ loaded

boolean org.xdi.oxauth.model.config.ConfigurationFactory.loaded = false
private

◆ loadedFromLdap

boolean org.xdi.oxauth.model.config.ConfigurationFactory.loadedFromLdap = true
private

◆ loadedRevision

long org.xdi.oxauth.model.config.ConfigurationFactory.loadedRevision = -1
private

◆ log

Logger org.xdi.oxauth.model.config.ConfigurationFactory.log
private

◆ PERSISTENCE_CONFIGUARION_RELOAD_EVENT_TYPE

final String org.xdi.oxauth.model.config.ConfigurationFactory.PERSISTENCE_CONFIGUARION_RELOAD_EVENT_TYPE = "persistenceConfigurationReloadEvent"
static

◆ persistenceConfiguration

PersistenceConfiguration org.xdi.oxauth.model.config.ConfigurationFactory.persistenceConfiguration
private

◆ persistenceEntryManagerFactoryInstance

Instance<PersistenceEntryManagerFactory> org.xdi.oxauth.model.config.ConfigurationFactory.persistenceEntryManagerFactoryInstance
private

◆ persistenceEntryManagerInstance

Instance<PersistenceEntryManager> org.xdi.oxauth.model.config.ConfigurationFactory.persistenceEntryManagerInstance
private

◆ SALT_FILE_NAME

final String org.xdi.oxauth.model.config.ConfigurationFactory.SALT_FILE_NAME = "salt"
private

◆ saltFilePath

String org.xdi.oxauth.model.config.ConfigurationFactory.saltFilePath
package

◆ STATIC_CONF_FILE_NAME

final String org.xdi.oxauth.model.config.ConfigurationFactory.STATIC_CONF_FILE_NAME = "oxauth-static-conf.json"
private

◆ staticConf

StaticConfiguration org.xdi.oxauth.model.config.ConfigurationFactory.staticConf
private

◆ staticConfFilePath

String org.xdi.oxauth.model.config.ConfigurationFactory.staticConfFilePath
package

◆ timerEvent

Event<TimerEvent> org.xdi.oxauth.model.config.ConfigurationFactory.timerEvent
private

◆ WEB_KEYS_FILE_NAME

final String org.xdi.oxauth.model.config.ConfigurationFactory.WEB_KEYS_FILE_NAME = "oxauth-web-keys.json"
private

◆ webKeysFilePath

String org.xdi.oxauth.model.config.ConfigurationFactory.webKeysFilePath
package

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