aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java46
1 files changed, 40 insertions, 6 deletions
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)