diff options
author | Gerwin Gsenger <g.gsenger@datentechnik-innovation.at> | 2015-01-19 10:00:36 +0100 |
---|---|---|
committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2015-06-19 11:07:55 +0200 |
commit | f2ebaedd107e0660150faeee6dbe06be5094ac0a (patch) | |
tree | 8585b9afaf39a2854811c3d0f73f00b48f98f0cd /id/server | |
parent | 63c0626cb2a0bcfb37f903b98cf7975797186aca (diff) | |
download | moa-id-spss-f2ebaedd107e0660150faeee6dbe06be5094ac0a.tar.gz moa-id-spss-f2ebaedd107e0660150faeee6dbe06be5094ac0a.tar.bz2 moa-id-spss-f2ebaedd107e0660150faeee6dbe06be5094ac0a.zip |
add workaround for static field bean initialization, rework getMOAIDConfiguration()
Diffstat (limited to 'id/server')
-rw-r--r-- | id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/NewConfigurationDBRead.java | 55 | ||||
-rw-r--r-- | id/server/moa-id-commons/src/main/resources/configuration.beans.xml | 2 |
2 files changed, 48 insertions, 9 deletions
diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/NewConfigurationDBRead.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/NewConfigurationDBRead.java index e39f598b1..29bf02ba9 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/NewConfigurationDBRead.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/NewConfigurationDBRead.java @@ -2,12 +2,18 @@ package at.gv.egovernment.moa.id.commons.db; import java.util.ArrayList; import java.util.Collections; +import java.util.Date; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; +import at.gv.egovernment.moa.id.commons.db.dao.config.AuthComponentGeneral; +import at.gv.egovernment.moa.id.commons.db.dao.config.ChainingModes; +import at.gv.egovernment.moa.id.commons.db.dao.config.DefaultBKUs; +import at.gv.egovernment.moa.id.commons.db.dao.config.GenericConfiguration; import at.gv.egovernment.moa.id.commons.db.dao.config.MOAIDConfiguration; import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication; +import at.gv.egovernment.moa.id.commons.db.dao.config.SLRequestTemplates; import at.gv.egovernment.moa.id.commons.db.dao.config.UserDatabase; import at.gv.egovernment.moa.logging.Logger; @@ -19,9 +25,14 @@ import com.datentechnik.moa.id.conf.persistence.Configuration; */ public class NewConfigurationDBRead { - @Autowired private static Configuration conf; + @Autowired(required = true) + public void setConfiguration(Configuration conf) { + // https://jira.spring.io/browse/SPR-3845 + NewConfigurationDBRead.conf = conf; + } + @SuppressWarnings("unchecked") public static <T extends Iterable<?>> T nullGuard(T item) { if (item == null) { @@ -56,7 +67,8 @@ public class NewConfigurationDBRead { Logger.trace("Get All OnlineApplications from database."); // select onlineapplication from OnlineApplication onlineapplication - return conf.getList("getAllOnlineApplications", OnlineApplication.class); + return conf.getList("getOnlineApplications", OnlineApplication.class); + } /** @@ -92,14 +104,41 @@ public class NewConfigurationDBRead { public static MOAIDConfiguration getMOAIDConfiguration() { Logger.trace("Load MOAID Configuration from database."); - // select moaidconfiguration from MOAIDConfiguration moaidconfiguration - MOAIDConfiguration result = null; - result = conf.get("getMOAIDConfiguration", MOAIDConfiguration.class); - - if(result == null){ - Logger.trace("No entries found. Create fresh instance."); + AuthComponentGeneral authComponent = (AuthComponentGeneral) conf.get("getAuthComponentGeneral", + AuthComponentGeneral.class); + ChainingModes chainingModes = (ChainingModes) conf.get("getChainingModes", ChainingModes.class); + List<OnlineApplication> oas = (List<OnlineApplication>) conf.getList("getOnlineApplications", + OnlineApplication.class); + List<GenericConfiguration> genericConfigurations = (List<GenericConfiguration>) conf.getList( + "getGenericConfigurations", GenericConfiguration.class); + String trustedCaCertificates = (String) conf.get("getTrustedCACertificates", String.class); + DefaultBKUs defaultBKUs = (DefaultBKUs) conf.get("getDefaultBKUs", DefaultBKUs.class); + SLRequestTemplates slrRequestRemplates = (SLRequestTemplates) conf.get("getSLRequestTemplates", + SLRequestTemplates.class); + Date timeStamp = (Date) conf.get("getTimeStampItem", Date.class); + Date pvp2Refresh = (Date) conf.get("getPvp2RefreshItem", Date.class); + + if (authComponent == null || chainingModes == null || trustedCaCertificates == null || defaultBKUs == null + || slrRequestRemplates == null || timeStamp == null || pvp2Refresh == null + + ) { + // TODO: is there a better approach in case of error? + Logger.trace("Not all necessary data available. Create fresh instance."); return new MOAIDConfiguration(); } + + // select moaidconfiguration from MOAIDConfiguration moaidconfiguration + MOAIDConfiguration result = new MOAIDConfiguration(); + result.setAuthComponentGeneral(authComponent); + result.setChainingModes(chainingModes); + result.setOnlineApplication(oas); + result.setGenericConfiguration(genericConfigurations); + result.setTrustedCACertificates(trustedCaCertificates); + result.setDefaultBKUs(defaultBKUs); + result.setSLRequestTemplates(slrRequestRemplates); + result.setTimestampItem(timeStamp); + result.setPvp2RefreshItem(pvp2Refresh); + return result; } diff --git a/id/server/moa-id-commons/src/main/resources/configuration.beans.xml b/id/server/moa-id-commons/src/main/resources/configuration.beans.xml index 1a2e1fedd..ee906a407 100644 --- a/id/server/moa-id-commons/src/main/resources/configuration.beans.xml +++ b/id/server/moa-id-commons/src/main/resources/configuration.beans.xml @@ -23,7 +23,7 @@ <bean id="auth" class="at.gv.egovernment.moa.id.config.auth.NewAuthConfigurationProvider"/> - <bean id="auth" class="at.gv.egovernment.moa.id.commons.db.NewConfigurationDBRead"/> + <bean id="configRead" class="at.gv.egovernment.moa.id.commons.db.NewConfigurationDBRead"/> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" lazy-init="true" destroy-method="close"> <aop:scoped-proxy/> |