package at.gv.egovernment.moa.spss.tsl; import at.gv.egovernment.moa.sig.tsl.TslClientFactory; import at.gv.egovernment.moa.sig.tsl.api.ITslService; import at.gv.egovernment.moa.sig.tsl.config.TslConfigurationImpl; import at.gv.egovernment.moa.sig.tsl.exception.TslException; import at.gv.egovernment.moa.sig.tsl.pki.chaining.ChainingTrustStoreHandler; import at.gv.egovernment.moa.spss.util.MessageProvider; import at.gv.egovernment.moaspss.logging.LogMsg; import at.gv.egovernment.moaspss.logging.Logger; import iaik.pki.store.truststore.TrustStoreFactory; public class TSLServiceFactory { private static ITslService tslClient = null; private static TslConfigurationImpl interalConfig; public static void initialize(TslConfigurationImpl config) { if (tslClient == null) { try { interalConfig = config; tslClient = TslClientFactory.buildTslService(interalConfig); TrustStoreFactory.addTrustStoreHandler(new ChainingTrustStoreHandler()); } catch (TslException e) { Logger.fatal(new LogMsg(MessageProvider.getInstance().getMessage("init.05", new Object[]{e.getMessage()})), e); } } else { Logger.error("TSL-Service client can only be initialized once."); throw new IllegalStateException("TSL-Service client can only be initialized once."); } } public static boolean isInitialized() { if (tslClient == null) return false; else return true; } public static ITslService getTSLServiceClient() { if (!isInitialized()) { Logger.warn("TSL client is not initialized but config is available. Starting new initialization process ..."); initialize(interalConfig); } return tslClient; } }