diff options
| author | Thomas <> | 2021-03-16 15:13:22 +0100 | 
|---|---|---|
| committer | Thomas <> | 2021-03-16 15:13:22 +0100 | 
| commit | 3f2032efba5469589d5317b1796a0aec74457847 (patch) | |
| tree | d29037f82f76d14e7e8c23e680322703a9eca79c /moaSig/moa-sig-lib | |
| parent | 6bf6f4b99ed3829768fe67c3cd13fdedfc2663c6 (diff) | |
| download | moa-sig-3f2032efba5469589d5317b1796a0aec74457847.tar.gz moa-sig-3f2032efba5469589d5317b1796a0aec74457847.tar.bz2 moa-sig-3f2032efba5469589d5317b1796a0aec74457847.zip | |
update MOA-SPSS initialization to mitigate suspect behavior in EAAF-Components module
Diffstat (limited to 'moaSig/moa-sig-lib')
4 files changed, 105 insertions, 18 deletions
| diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/Configurator.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/Configurator.java index 59db7b5..bc0acbe 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/Configurator.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/Configurator.java @@ -26,6 +26,7 @@ package at.gv.egovernment.moa.spss.api;  import at.gv.egovernment.moa.spss.MOAException;  import at.gv.egovernment.moa.spss.server.init.ConfiguratorImpl; +import at.gv.egovernment.moa.spss.server.init.StartupConfigurationHolder;  /**   * Configures the SP/SS API. @@ -62,14 +63,23 @@ public abstract class Configurator {    }    /** +   * Get current configuration object. +   *  +   * @return Configuration or <code>null</code> if it was not initialized yet +   */ +  public abstract StartupConfigurationHolder getCurrentConfiguration(); +   +  /**     * Initialize the SP/SS configuration.     *      * Only a single call to this method will have an effect. Use      * <code>update()</code> for reflecting changes in the configuration instead.      *  +   * @return Configuration holder +   *      * @throws MOAException An error occurred updating the SP/SS configuration.     */   -  public abstract void init() throws MOAException; +  public abstract StartupConfigurationHolder init() throws MOAException;    /**     * Update the SP/SS configuration. @@ -77,8 +87,10 @@ public abstract class Configurator {     * This will only have an effect after the system has been initialized once     * using <code>init()</code>.     *  +   * @return Updated Configuration holder, or <code>null</code> if it was not initialized  +   *      * @throws MOAException An error occurred updating the SP/SS configuration.     */ -  public abstract void update() throws MOAException; +  public abstract StartupConfigurationHolder update() throws MOAException;  } diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/init/ConfiguratorImpl.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/init/ConfiguratorImpl.java index 8ab01d6..32654d4 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/init/ConfiguratorImpl.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/init/ConfiguratorImpl.java @@ -29,6 +29,7 @@ import at.gv.egovernment.moa.spss.api.Configurator;  import at.gv.egovernment.moa.spss.server.config.ConfigurationException;  import at.gv.egovernment.moa.spss.server.config.ConfigurationProvider;  import at.gv.egovernment.moa.spss.server.iaik.config.IaikConfigurator; +import iaik.server.ConfigurationData;  /**   * Default implementation of <code>Configurator</code>. @@ -40,26 +41,42 @@ public class ConfiguratorImpl extends Configurator {    /** whether the configuration has been initialized */    private boolean initialized = false; -  public void init() throws MOAException { +  StartupConfigurationHolder result; +   +  public StartupConfigurationHolder getCurrentConfiguration() { +	  return result; +	   +  } +   +  public StartupConfigurationHolder init() throws MOAException {      if (!initialized) { -      SystemInitializer.init(); +      result = SystemInitializer.init();        initialized = true; +                       } +     +    return result; +        } -  public void update() throws MOAException { +  public StartupConfigurationHolder update() throws MOAException {      if (!initialized) { -      return; +      return null;      } -    try { +    try {    	       	        // reconfigure the system        ConfigurationProvider config = ConfigurationProvider.reload(); -      new IaikConfigurator().configure(config); +      ConfigurationData iaikConfig = new IaikConfigurator().configure(config); +      result = new StartupConfigurationHolder(config, iaikConfig); +      return result; +            } catch (MOAException e) {        throw e; +            } catch (Throwable t) { -      throw new ConfigurationException("", null, t); +      throw new ConfigurationException("MOA-SPSS initialization FAILED with a generic error", null, t); +            }    } diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/init/StartupConfigurationHolder.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/init/StartupConfigurationHolder.java new file mode 100644 index 0000000..229a8b2 --- /dev/null +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/init/StartupConfigurationHolder.java @@ -0,0 +1,42 @@ +package at.gv.egovernment.moa.spss.server.init; + +import at.gv.egovernment.moa.spss.server.config.ConfigurationProvider; +import iaik.server.ConfigurationData; + +public class StartupConfigurationHolder { +	 +	private final ConfigurationProvider moaSpssConfig; +	private final ConfigurationData iaikConfiguration; +	 +	/** +	 * Holder for IAIK and MOA-SPSS related configuration object. +	 *  +	 * @param config MOA-SPSS specific configuration +	 * @param iaikConfig Internal IAIK module configuration +	 */ +	public StartupConfigurationHolder(ConfigurationProvider config, ConfigurationData iaikConfig) { +		this.moaSpssConfig = config; +		this.iaikConfiguration = iaikConfig; +	} + +	/** +	 * Get MOA-SPSS configuration object from start-up process. +	 *  +	 * @return MOA-SPSS configuration +	 */ +	public ConfigurationProvider getMoaSpssConfig() { +		return moaSpssConfig; +	} + +	/** +	 * Get configuration object for IAIK modules from start-up process. +	 *  +	 * @return IAIK module configuration +	 */ +	public ConfigurationData getIaikConfiguration() { +		return iaikConfiguration; +	} +	 +	 + +} diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/init/SystemInitializer.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/init/SystemInitializer.java index 6ef9c57..25bb6d9 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/init/SystemInitializer.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/init/SystemInitializer.java @@ -51,6 +51,7 @@ import at.gv.egovernment.moaspss.logging.LoggingContextManager;  import at.gv.egovernment.moaspss.util.Constants;  import at.gv.egovernment.moaspss.util.DOMUtils;  import iaik.asn1.ObjectID; +import iaik.server.ConfigurationData;  import iaik.utils.RFC2253NameParser;  /** @@ -71,6 +72,8 @@ public class SystemInitializer {    private static ServiceLoader<ExternalInitializer> initializerServices =   		  ServiceLoader.load(ExternalInitializer.class); +  private static ConfigurationData iaikConfiguration; +  private static ConfigurationProvider config;    private static void runInitializer(ConfigurationProvider configurationProvider) { @@ -84,8 +87,9 @@ public class SystemInitializer {    /**     * Initialize the MOA SP/SS webservice. + * @return      */ -  public static void init() { +  public static StartupConfigurationHolder init() {  	  logger.info("##############################################################################");  	  logger.info("##############################################################################"); @@ -141,7 +145,7 @@ public class SystemInitializer {      // initialize configuration      try {      	Logger.info("Initialize MOA-SP/SS configuration ... "); -    	ConfigurationProvider config = ConfigurationProvider.getInstance(); +    	config = ConfigurationProvider.getInstance();      	//initialize TSL module      	TSLConfiguration moaSPTslConfig = config.getTSLConfiguration();       @@ -168,25 +172,23 @@ public class SystemInitializer {          Logger.info("Building IAIK-MOA configuration ... "); -        new IaikConfigurator().configure(config);         +        iaikConfiguration = new IaikConfigurator().configure(config);                	runInitializer(config);              	Logger.info(new LogMsg(msg.getMessage("init.01", null))); +      	      	      } catch (MOAException e) {      	Logger.fatal(new LogMsg(msg.getMessage("init.00", null)), e); +    	throw new RuntimeException(e);      } catch (Throwable e) {      	Logger.fatal(new LogMsg(msg.getMessage("init.00", null)), e);      	throw new RuntimeException(e); -	} finally { -		logger.info("Configuration initialized"); -	} - -     -     +	}  +              // CHANGE IXSIL to XSECT      // set IXSIL debug output      //IXSILInit.setPrintDebugLog( @@ -207,6 +209,20 @@ public class SystemInitializer {      logger.info("==============================================================================");      logger.info("===                            CONFIGURATION DONE                          ===");      logger.info("=============================================================================="); +     +     +    return new StartupConfigurationHolder(config, iaikConfiguration); +     +  } +   +  /** +   * Get configuration object from IAIK modules. +   *  +   * @return Configuration or <code>null</code> of it was not configurated yet +   */ +  public static ConfigurationData getIaikConfiguration() { +	  return iaikConfiguration; +	      }    private static void initTSLUpdateTask(TSLConfiguration tslconfig) { | 
