diff options
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config')
2 files changed, 41 insertions, 7 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationException.java index b0525978d..812fd1fe8 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationException.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationException.java @@ -24,7 +24,7 @@ package at.gv.egovernment.moa.id.config; -import at.gv.egovernment.moa.id.MOAIDException; +import at.gv.egovernment.moa.id.auth.exception.MOAIDException; /** * Exception signalling an error in the configuration. diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java index cc1a1304d..81ee988e3 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java @@ -43,6 +43,7 @@ import javax.xml.bind.Unmarshaller; import org.hibernate.cfg.Configuration; import at.gv.egovernment.moa.id.auth.AuthenticationServer; +import at.gv.egovernment.moa.id.auth.MOAIDAuthConstants; import at.gv.egovernment.moa.id.commons.db.ConfigurationDBRead; import at.gv.egovernment.moa.id.commons.db.ConfigurationDBUtils; import at.gv.egovernment.moa.id.commons.db.MOASessionDBUtils; @@ -50,6 +51,7 @@ import at.gv.egovernment.moa.id.commons.db.StatisticLogDBUtils; 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.Contact; +import at.gv.egovernment.moa.id.commons.db.dao.config.DefaultBKUs; import at.gv.egovernment.moa.id.commons.db.dao.config.ForeignIdentities; import at.gv.egovernment.moa.id.commons.db.dao.config.IdentificationNumber; import at.gv.egovernment.moa.id.commons.db.dao.config.IdentityLinkSigners; @@ -178,6 +180,7 @@ public class AuthConfigurationProvider extends ConfigurationProvider { private static List<String> IdentityLinkX509SubjectNames = new ArrayList<String>(); private static Map<String, String> SLRequestTemplates = new HashMap<String, String>(); + private static Map<String, String> DefaultBKUURLs = new HashMap<String, String>(); private static SSO ssoconfig = null; @@ -622,14 +625,22 @@ public class AuthConfigurationProvider extends ConfigurationProvider { } //set IdentityLinkSignerSubjectNames + IdentityLinkX509SubjectNames = new ArrayList<String>(); IdentityLinkSigners idlsigners = auth.getIdentityLinkSigners(); if (idlsigners != null) { - IdentityLinkX509SubjectNames = new ArrayList<String>(idlsigners.getX509SubjectName()); - - } else { - Logger.warn("Warning in MOA-ID Configuration. No IdenitiyLink signer found."); - } - + Logger.debug("Load own IdentityLinkX509SubjectNames"); + IdentityLinkX509SubjectNames.addAll(new ArrayList<String>(idlsigners.getX509SubjectName())); + } + + // now add the default identity link signers + String[] identityLinkSignersWithoutOID = MOAIDAuthConstants.IDENTITY_LINK_SIGNERS_WITHOUT_OID; + for (int i=0; i<identityLinkSignersWithoutOID.length; i++) { + String identityLinkSigner = identityLinkSignersWithoutOID[i]; + if (!IdentityLinkX509SubjectNames.contains(identityLinkSigner)) { + IdentityLinkX509SubjectNames.add(identityLinkSigner); + } + } + //set SLRequestTemplates SLRequestTemplates templ = moaidconfig.getSLRequestTemplates(); if (templ == null) { @@ -641,6 +652,14 @@ public class AuthConfigurationProvider extends ConfigurationProvider { SLRequestTemplates.put(OAAuthParameter.HANDYBKU, templ.getHandyBKU()); } + //set Default BKU URLS + DefaultBKUs bkuuls = moaidconfig.getDefaultBKUs(); + if (bkuuls != null) { + DefaultBKUURLs.put(OAAuthParameter.ONLINEBKU, bkuuls.getOnlineBKU()); + DefaultBKUURLs.put(OAAuthParameter.LOCALBKU, bkuuls.getLocalBKU()); + DefaultBKUURLs.put(OAAuthParameter.HANDYBKU, bkuuls.getHandyBKU()); + } + //set SSO Config if (auth.getSSO()!= null) { ssoconfig = new SSO(); @@ -812,6 +831,21 @@ public class AuthConfigurationProvider extends ConfigurationProvider { } } + public List<String> getDefaultBKUURLs() throws ConfigurationException { + return new ArrayList<String>(DefaultBKUURLs.values()); + } + + public String getDefaultBKUURL(String type) throws ConfigurationException { + String el = DefaultBKUURLs.get(type); + if (MiscUtil.isNotEmpty(el)) + return el; + else { + Logger.warn("getSLRequestTemplates: BKU Type does not match: " + + OAAuthParameter.ONLINEBKU + " or " + OAAuthParameter.HANDYBKU + " or " + OAAuthParameter.LOCALBKU); + return null; + } + } + public boolean isSSOBusinessService() throws ConfigurationException { if (ssoconfig != null && ssoconfig.getIdentificationNumber() != null) |