From 097dbd04ab511fec2e6c31ec69c6723af1164334 Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Fri, 21 Oct 2016 10:28:22 +0200 Subject: add functionality to support more than one ELGA mandate-service Conflicts: id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/utils/ELGAMandateServiceMetadataProvider.java --- .../id/advancedlogging/MOAIDEventConstants.java | 1 + .../moa/id/client/utils/SZRGWClientUtils.java | 21 +-- .../moa/id/config/ConnectionParameter.java | 12 +- .../resources/properties/id_messages_de.properties | 2 +- .../moa/id/commons/api/AuthConfiguration.java | 22 ++- .../commons/api/ConnectionParameterInterface.java | 2 +- .../config/ConfigurationMigrationUtils.java | 29 +++- .../config/MOAIDConfigurationConstants.java | 9 +- .../dao/config/deprecated/MOAIDConfiguration.java | 18 ++ .../commons/db/dao/config/deprecated/Mandates.java | 39 +++++ .../dao/config/deprecated/OnlineApplication.java | 28 +++- .../moa/id/commons/utils/KeyValueUtils.java | 6 +- .../modules/internal/tasks/GetForeignIDTask.java | 2 +- .../internal/tasks/GetMISSessionIDTask.java | 2 +- .../internal/tasks/PrepareGetMISMandateTask.java | 3 +- .../elgamandates/tasks/RequestELGAMandateTask.java | 25 ++- .../utils/ELGAMandateServiceMetadataProvider.java | 182 ++++++++++++++------- 17 files changed, 309 insertions(+), 94 deletions(-) (limited to 'id/server') diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/MOAIDEventConstants.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/MOAIDEventConstants.java index 9d26cc05f..54e459db1 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/MOAIDEventConstants.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/MOAIDEventConstants.java @@ -104,6 +104,7 @@ public interface MOAIDEventConstants extends EventConstants { public static final int AUTHPROCESS_ELGA_MANDATE_RECEIVED = 6001; public static final int AUTHPROCESS_ELGA_MANDATE_ERROR_RECEIVED = 6002; public static final int AUTHPROCESS_ELGA_MANDATE_RECEIVED_IP = 6003; + public static final int AUTHPROCESS_ELGA_MANDATE_SERVICE_ENTITYID = 6004; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/client/utils/SZRGWClientUtils.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/client/utils/SZRGWClientUtils.java index 622eca0a5..4cca2e625 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/client/utils/SZRGWClientUtils.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/client/utils/SZRGWClientUtils.java @@ -33,6 +33,7 @@ import at.gv.egovernment.moa.id.client.SZRGWClient; import at.gv.egovernment.moa.id.client.SZRGWClientException; import at.gv.egovernment.moa.id.commons.api.AuthConfiguration; import at.gv.egovernment.moa.id.commons.api.ConnectionParameterInterface; +import at.gv.egovernment.moa.id.commons.api.IRequest; import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException; import at.gv.egovernment.moa.id.commons.utils.MOAIDMessageProvider; import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProviderFactory; @@ -60,8 +61,8 @@ public class SZRGWClientUtils { * @throws SZRGWClientException the sZRGW client exception * @throws ConfigurationException the configuration exception */ - public static CreateIdentityLinkResponse getIdentityLink(Element signature) throws SZRGWClientException, ConfigurationException { - return getIdentityLink(null, null, null, null, XMLHelper.nodeToString(signature), null); + public static CreateIdentityLinkResponse getIdentityLink(IRequest pendingReq, Element signature) throws SZRGWClientException, ConfigurationException { + return getIdentityLink(pendingReq, null, null, null, null, XMLHelper.nodeToString(signature), null); } /** @@ -76,8 +77,8 @@ public class SZRGWClientUtils { * @throws SZRGWClientException the sZRGW client exception * @throws ConfigurationException the configuration exception */ - public static CreateIdentityLinkResponse getIdentityLink(String PEPSIdentifier, String PEPSFirstname, String PEPSFamilyname, String PEPSDateOfBirth, String signature, String PEPSFiscalNumber) throws SZRGWClientException { - return getIdentityLink(PEPSIdentifier, PEPSFirstname, PEPSFamilyname, PEPSDateOfBirth, null, signature, null, null, null, null, null, null, null, PEPSFiscalNumber); + public static CreateIdentityLinkResponse getIdentityLink(IRequest pendingReq, String PEPSIdentifier, String PEPSFirstname, String PEPSFamilyname, String PEPSDateOfBirth, String signature, String PEPSFiscalNumber) throws SZRGWClientException { + return getIdentityLink(pendingReq, PEPSIdentifier, PEPSFirstname, PEPSFamilyname, PEPSDateOfBirth, null, signature, null, null, null, null, null, null, null, PEPSFiscalNumber); } /** @@ -94,11 +95,11 @@ public class SZRGWClientUtils { * @return the identity link * @throws SZRGWClientException the sZRGW client exception */ - public static CreateIdentityLinkResponse getIdentityLink(String eIdentifier, + public static CreateIdentityLinkResponse getIdentityLink(IRequest pendingReq, String eIdentifier, String givenName, String lastName, String dateOfBirth, String gender, String citizenSignature, String representative, String represented, String mandate, String targetType, String targetValue, String oaFriendlyName, List filters, String PEPSFiscalNumber) throws SZRGWClientException { - return getIdentityLink(eIdentifier, givenName, lastName, dateOfBirth, gender, + return getIdentityLink(pendingReq, eIdentifier, givenName, lastName, dateOfBirth, gender, citizenSignature, representative, represented, mandate, null, null, targetType, targetValue, oaFriendlyName, filters, PEPSFiscalNumber); } @@ -115,19 +116,19 @@ public class SZRGWClientUtils { * @return the identity link * @throws SZRGWClientException */ - public static CreateIdentityLinkResponse getIdentityLink(String citizenSignature, + public static CreateIdentityLinkResponse getIdentityLink(IRequest pendingReq, String citizenSignature, String representative, String represented, String mandateContent, String organizationAddress, String organizationType, String targetType, String targetValue, String oaFriendlyName, List filters, String PEPSFiscalNumber) throws SZRGWClientException { - return getIdentityLink(null, null, null, null, null, + return getIdentityLink(pendingReq, null, null, null, null, null, citizenSignature, represented, representative, mandateContent, organizationAddress, organizationType, targetType, targetValue, oaFriendlyName, filters, PEPSFiscalNumber); } - public static CreateIdentityLinkResponse getIdentityLink(String PEPSIdentifier, String PEPSFirstname, String PEPSFamilyname, String PEPSDateOfBirth, String gender, String citizenSignature, String represented, String representative, String mandateContent, String organizationAddress, String organizationType, String targetType, String targetValue, String oaFriendlyName, List filters, String PEPSFiscalNumber) throws SZRGWClientException { + public static CreateIdentityLinkResponse getIdentityLink(IRequest pendingReq, String PEPSIdentifier, String PEPSFirstname, String PEPSFamilyname, String PEPSDateOfBirth, String gender, String citizenSignature, String represented, String representative, String mandateContent, String organizationAddress, String organizationType, String targetType, String targetValue, String oaFriendlyName, List filters, String PEPSFiscalNumber) throws SZRGWClientException { try { AuthConfiguration authConf = AuthConfigurationProviderFactory.getInstance(); - ConnectionParameterInterface connectionParameters = authConf.getForeignIDConnectionParameter(); + ConnectionParameterInterface connectionParameters = authConf.getForeignIDConnectionParameter(pendingReq.getOnlineApplicationConfiguration()); String requestID = UUID.randomUUID().toString(); SZRGWClient client = new SZRGWClient(connectionParameters); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameter.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameter.java index 9d78c348b..6699cc989 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameter.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameter.java @@ -62,12 +62,12 @@ public abstract class ConnectionParameter implements ConnectionParameterInterfac public abstract String getClientKeyStorePassword(); - public boolean isHTTPSURL() { - if (MiscUtil.isEmpty(url)) - return false; - else - return url.indexOf("https") == 0; - } +// public boolean isHTTPSURL() { +// if (MiscUtil.isEmpty(url)) +// return false; +// else +// return url.indexOf("https") == 0; +// } public String getUrl() { if (MiscUtil.isEmpty(url)) diff --git a/id/server/idserverlib/src/main/resources/resources/properties/id_messages_de.properties b/id/server/idserverlib/src/main/resources/resources/properties/id_messages_de.properties index 400b0bc25..89f54d008 100644 --- a/id/server/idserverlib/src/main/resources/resources/properties/id_messages_de.properties +++ b/id/server/idserverlib/src/main/resources/resources/properties/id_messages_de.properties @@ -118,7 +118,7 @@ service.05=Fehler beim Anfragen des Online-Vollmachen Service: {0} / {1} service.06=Allgemeiner Fehler beim Anfragen des Online-Vollmachten Service service.07=Der SZR-Gateway ist unter {0} nicht erreichbar. service.08=Die Eintragung der ausländischen Person am SZR-Gateway ist fehlgeschlagen. -service.09=Der SZR-Gateway Client konnte nicht initialisiert werden. +service.09=Der SZR-Gateway Client konnte nicht initialisiert werden. Ursache:{0} service.10=Die Verwendung des Service {0} ist nicht m\u00f6glich. Ursache: {1} cleaner.00=AuthenticationSessionCleaner wurde gestartet diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/api/AuthConfiguration.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/api/AuthConfiguration.java index fa08dcab6..6b51c8683 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/api/AuthConfiguration.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/api/AuthConfiguration.java @@ -7,6 +7,7 @@ import java.util.Properties; import at.gv.egovernment.moa.id.commons.api.data.ProtocolAllowed; import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException; import at.gv.util.config.EgovUtilPropertiesConfiguration; +import iaik.pki.revocation.RevocationSourceTypes; public interface AuthConfiguration extends ConfigurationProvider{ @@ -46,9 +47,19 @@ public interface AuthConfiguration extends ConfigurationProvider{ public ConnectionParameterInterface getMoaSpConnectionParameter() throws ConfigurationException; - public ConnectionParameterInterface getForeignIDConnectionParameter() throws ConfigurationException; + public ConnectionParameterInterface getForeignIDConnectionParameter(IOAAuthParameters oaParameters) throws ConfigurationException; - public ConnectionParameterInterface getOnlineMandatesConnectionParameter() throws ConfigurationException; + /** + * Get parameters to connect the Online Mandate-Service (MIS) + * + * Use an Online-Application specific MIS instance URL if it exists, + * otherwise use the first entry of the general configuration + * + * @param oaParameters Online-Application configuration, or null if the default service-url should be always used + * @return Connection parameters with OA specific or general information + * @throws ConfigurationException + */ + public ConnectionParameterInterface getOnlineMandatesConnectionParameter(IOAAuthParameters oaParameters) throws ConfigurationException; public String getMoaSpIdentityLinkTrustProfileID(boolean useTestTrustStore) throws ConfigurationException; @@ -159,4 +170,11 @@ public interface AuthConfiguration extends ConfigurationProvider{ @Deprecated public boolean isHTTPAuthAllowed(); + + /** + * Get the perverted X509 revocation method order for SSL certificate validation + * + * @return Array of {@link RevocationSourceTypes} values + */ + public String[] getRevocationMethodOrder(); } diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/api/ConnectionParameterInterface.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/api/ConnectionParameterInterface.java index 89a21661b..21b07a483 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/api/ConnectionParameterInterface.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/api/ConnectionParameterInterface.java @@ -25,7 +25,7 @@ package at.gv.egovernment.moa.id.commons.api; public interface ConnectionParameterInterface { - public boolean isHTTPSURL(); +// public boolean isHTTPSURL(); public String getUrl(); public String getAcceptedServerCertificates(); diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java index a221d30e4..6099760e0 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java @@ -171,6 +171,10 @@ public class ConfigurationMigrationUtils { } } + //convert selected SZR-GW service + if (MiscUtil.isNotEmpty(oa.getSelectedSZRGWServiceURL())) + result.put(MOAIDConfigurationConstants.SERVICE_EXTERNAL_SZRGW_SERVICE_URL, oa.getSelectedSZRGWServiceURL()); + AuthComponentOA oaauth = oa.getAuthComponentOA(); if (oaauth != null) { @@ -227,7 +231,15 @@ public class ConfigurationMigrationUtils { if (mandateProfiles != null) result.put(MOAIDConfigurationConstants.SERVICE_AUTH_MANDATES_OVS_USE, Boolean.TRUE.toString()); else - result.put(MOAIDConfigurationConstants.SERVICE_AUTH_MANDATES_OVS_USE, Boolean.FALSE.toString()); + result.put(MOAIDConfigurationConstants.SERVICE_AUTH_MANDATES_OVS_USE, Boolean.FALSE.toString()); + + + if (MiscUtil.isNotEmpty(mandates.getSelectedMISServiceURL())) + result.put(MOAIDConfigurationConstants.SERVICE_EXTERNAL_MIS_SERVICE_URL, mandates.getSelectedMISServiceURL()); + + if (MiscUtil.isNotEmpty(mandates.getSelecteELGAServiceURL())) + result.put(MOAIDConfigurationConstants.SERVICE_EXTERNAL_ELGA_MANDATE_SERVICE_URL, mandates.getSelecteELGAServiceURL()); + } //convert KeyBoxSelector @@ -749,7 +761,9 @@ public class ConfigurationMigrationUtils { dbOA.setEventCodes(oa.get(MOAIDConfigurationConstants.SERVICE_REVERSION_LOGS_EVENTCODES)); } - + + dbOA.setSelectedSZRGWServiceURL(oa.get(MOAIDConfigurationConstants.SERVICE_EXTERNAL_SZRGW_SERVICE_URL)); + if (Boolean.valueOf(oa.get(MOAIDConfigurationConstants.SERVICE_BUSINESSSERVICE))) { dbOA.setType(MOA_CONFIG_BUSINESSSERVICE); @@ -861,6 +875,9 @@ public class ConfigurationMigrationUtils { dbProfiles.add(el.trim()); mandates.setProfiles(null); + + mandates.setSelectedMISServiceURL(oa.get(MOAIDConfigurationConstants.SERVICE_EXTERNAL_MIS_SERVICE_URL)); + mandates.setSelecteELGAServiceURL(oa.get(MOAIDConfigurationConstants.SERVICE_EXTERNAL_ELGA_MANDATE_SERVICE_URL)); } } else { @@ -1162,6 +1179,13 @@ public class ConfigurationMigrationUtils { public static Map convertHyberJaxBMOAIDConfigToKeyValue(MOAIDConfiguration config) { Map result = new HashMap(); if (config != null) { + + if (MiscUtil.isNotEmpty(config.getElgaMandateServiceURLs())) + result.put(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_ELGA_MANDATE_SERVICE_URL, + config.getElgaMandateServiceURLs()); + + + AuthComponentGeneral auth = config.getAuthComponentGeneral(); if (auth != null) { @@ -1483,6 +1507,7 @@ public class ConfigurationMigrationUtils { MOAIDConfiguration dbconfig = new MOAIDConfiguration(); + dbconfig.setElgaMandateServiceURLs(moaconfig.get(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_ELGA_MANDATE_SERVICE_URL)); AuthComponentGeneral dbauth = dbconfig.getAuthComponentGeneral(); if (dbauth == null) { diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/MOAIDConfigurationConstants.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/MOAIDConfigurationConstants.java index 7d9fc452a..9fe90daa4 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/MOAIDConfigurationConstants.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/MOAIDConfigurationConstants.java @@ -49,12 +49,13 @@ public final class MOAIDConfigurationConstants extends MOAIDConstants { private static final String STORK = "stork"; private static final String TEMPLATES = "templates"; private static final String INTERFEDERATION = "interfederation"; + private static final String ELGA_MANDATE_SERVICE_URL = "modules.elga_mandate.service.entityID"; private static final String PROTOCOLS = "protocols"; private static final String SAML1 = "saml1"; private static final String PVP2X = "pvp2x"; private static final String OPENID = "openID"; - + private static final String SERVICE_AUTH_TARGET = AUTH + "." + TARGET; private static final String SERVICE_AUTH_TARGET_PUBLIC = SERVICE_AUTH_TARGET + ".public"; private static final String SERVICE_AUTH_TARGET_BUSINESS = SERVICE_AUTH_TARGET + ".business"; @@ -182,7 +183,9 @@ public final class MOAIDConfigurationConstants extends MOAIDConstants { public static final String SERVICE_REVERSION_LOGS_ENABLED = SERVICE_REVERSION + ".log.enabled"; public static final String SERVICE_REVERSION_LOGS_EVENTCODES = SERVICE_REVERSION + ".log.eventcodes"; - + public static final String SERVICE_EXTERNAL_ELGA_MANDATE_SERVICE_URL = ELGA_MANDATE_SERVICE_URL; + public static final String SERVICE_EXTERNAL_MIS_SERVICE_URL = "modules.mis.service.url"; + public static final String SERVICE_EXTERNAL_SZRGW_SERVICE_URL = "modules.szrgw.service.url"; //Namespaces for general MOA-ID config public static final String GENERAL_PUBLICURLPREFIX = PREFIX_MOAID_GENERAL + ".publicURLPrefix"; @@ -219,6 +222,8 @@ public final class MOAIDConfigurationConstants extends MOAIDConstants { public static final String GENERAL_AUTH_SERVICES_SZRGW_URL = GENERAL_AUTH + ".services.szrgw.url"; public static final String GENERAL_AUTH_SERVICES_HVB_URL = GENERAL_AUTH + ".services.hvb.url"; + public static final String GENERAL_AUTH_SERVICES_ELGA_MANDATE_SERVICE_URL = PREFIX_MOAID_GENERAL + "." + ELGA_MANDATE_SERVICE_URL; + public static final String GENERAL_AUTH_SSO_SERVICENAME = GENERAL_AUTH + "." + SSO + ".servicename"; public static final String GENERAL_AUTH_SSO_TARGET = GENERAL_AUTH + "." + SSO + ".target"; public static final String GENERAL_AUTH_SSO_AUTHBLOCK_TEXT = GENERAL_AUTH + "." + SSO + ".authblock.text"; diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/deprecated/MOAIDConfiguration.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/deprecated/MOAIDConfiguration.java index 810139c84..c251c7abb 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/deprecated/MOAIDConfiguration.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/deprecated/MOAIDConfiguration.java @@ -184,6 +184,8 @@ public class MOAIDConfiguration @XmlTransient protected String eventCodes = null; + @XmlTransient + protected String elgaMandateServiceURLs = null; /** @@ -481,11 +483,27 @@ public class MOAIDConfiguration + + public Long getHjid() { return hjid; } /** + * @return the elgaMandateServiceURLs + */ + public String getElgaMandateServiceURLs() { + return elgaMandateServiceURLs; + } + + /** + * @param elgaMandateServiceURLs the elgaMandateServiceURLs to set + */ + public void setElgaMandateServiceURLs(String elgaMandateServiceURLs) { + this.elgaMandateServiceURLs = elgaMandateServiceURLs; + } + + /** * Sets the value of the hjid property. * * @param value diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/deprecated/Mandates.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/deprecated/Mandates.java index a87a6d1f6..58b8972a1 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/deprecated/Mandates.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/deprecated/Mandates.java @@ -17,6 +17,7 @@ import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlTransient; import javax.xml.bind.annotation.XmlType; import org.jvnet.jaxb2_commons.lang.Equals; @@ -70,6 +71,12 @@ public class Mandates protected Long hjid; // protected transient List profileNameItems; + @XmlTransient + protected String selectedMISServiceURL; + + @XmlTransient + protected String selecteELGAServiceURL; + /** * Gets the value of the profiles property. * @@ -145,11 +152,43 @@ public class Mandates + + public Long getHjid() { return hjid; } /** + * @return the selectedMISServiceURL + */ + public String getSelectedMISServiceURL() { + return selectedMISServiceURL; + } + + /** + * @param selectedMISServiceURL the selectedMISServiceURL to set + */ + public void setSelectedMISServiceURL(String selectedMISServiceURL) { + this.selectedMISServiceURL = selectedMISServiceURL; + } + + + + /** + * @return the selecteELGAServiceURL + */ + public String getSelecteELGAServiceURL() { + return selecteELGAServiceURL; + } + + /** + * @param selecteELGAServiceURL the selecteELGAServiceURL to set + */ + public void setSelecteELGAServiceURL(String selecteELGAServiceURL) { + this.selecteELGAServiceURL = selecteELGAServiceURL; + } + + /** * Sets the value of the hjid property. * * @param value diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/deprecated/OnlineApplication.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/deprecated/OnlineApplication.java index 6a838c261..4aee10bc1 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/deprecated/OnlineApplication.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/deprecated/OnlineApplication.java @@ -9,12 +9,9 @@ package at.gv.egovernment.moa.id.commons.db.dao.config.deprecated; import java.io.Serializable; -import javax.persistence.Basic; -import javax.persistence.Column; -import javax.persistence.Entity; + import javax.persistence.EnumType; import javax.persistence.Enumerated; -import javax.persistence.Table; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; @@ -23,7 +20,7 @@ import javax.xml.bind.annotation.XmlTransient; import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; -import com.sun.tools.xjc.runtime.ZeroOneBooleanAdapter; + import org.jvnet.jaxb2_commons.lang.Equals; import org.jvnet.jaxb2_commons.lang.EqualsStrategy; import org.jvnet.jaxb2_commons.lang.HashCode; @@ -33,6 +30,8 @@ import org.jvnet.jaxb2_commons.lang.JAXBHashCodeStrategy; import org.jvnet.jaxb2_commons.locator.ObjectLocator; import org.jvnet.jaxb2_commons.locator.util.LocatorUtils; +import com.sun.tools.xjc.runtime.ZeroOneBooleanAdapter; + /** *

Java class for OnlineApplication complex type. @@ -107,8 +106,27 @@ public class OnlineApplication @XmlTransient protected String eventCodes = null; + @XmlTransient + protected String selectedSZRGWServiceURL = null; + + + /** + * @return the selectedSZRGWServiceURL + */ + public String getSelectedSZRGWServiceURL() { + return selectedSZRGWServiceURL; + } + + /** + * @param selectedSZRGWServiceURL the selectedSZRGWServiceURL to set + */ + public void setSelectedSZRGWServiceURL(String selectedSZRGWServiceURL) { + this.selectedSZRGWServiceURL = selectedSZRGWServiceURL; + } + + /** * @return the isRevisionsLogActive */ public Boolean getIsRevisionsLogActive() { diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/KeyValueUtils.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/KeyValueUtils.java index add929e1d..bc567e5d2 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/KeyValueUtils.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/KeyValueUtils.java @@ -31,6 +31,8 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import org.apache.commons.lang3.StringUtils; + import at.gv.egovernment.moa.util.MiscUtil; /** @@ -250,9 +252,9 @@ public class KeyValueUtils { String[] codes = value.split(CSV_DELIMITER); for (String el: codes) { if (normalizedCodes == null) - normalizedCodes = el.trim(); + normalizedCodes = StringUtils.chomp(el.trim()); else - normalizedCodes += "," + el; + normalizedCodes += "," + StringUtils.chomp(el.trim()); } } diff --git a/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/GetForeignIDTask.java b/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/GetForeignIDTask.java index 7cc9df30c..4a28658ff 100644 --- a/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/GetForeignIDTask.java +++ b/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/GetForeignIDTask.java @@ -127,7 +127,7 @@ public class GetForeignIDTask extends AbstractAuthServletTask { pendingReq, MOAIDEventConstants.AUTHPROCESS_FOREIGN_SZRGW_CONNECTED); // make SZR request to the identity link - CreateIdentityLinkResponse response = SZRGWClientUtils.getIdentityLink(signature); + CreateIdentityLinkResponse response = SZRGWClientUtils.getIdentityLink(pendingReq, signature); if (null != response.getErrorResponse()) { // TODO fix exception parameter diff --git a/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/GetMISSessionIDTask.java b/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/GetMISSessionIDTask.java index c172c3b9c..3f63c207e 100644 --- a/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/GetMISSessionIDTask.java +++ b/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/GetMISSessionIDTask.java @@ -73,7 +73,7 @@ public class GetMISSessionIDTask extends AbstractAuthServletTask { //get mandates from MIS ConnectionParameterInterface connectionParameters = authConfig - .getOnlineMandatesConnectionParameter(); + .getOnlineMandatesConnectionParameter(pendingReq.getOnlineApplicationConfiguration()); SSLSocketFactory sslFactory = SSLUtils.getSSLSocketFactory( authConfig, connectionParameters); diff --git a/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/PrepareGetMISMandateTask.java b/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/PrepareGetMISMandateTask.java index afbb87f10..88560eacf 100644 --- a/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/PrepareGetMISMandateTask.java +++ b/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/PrepareGetMISMandateTask.java @@ -72,7 +72,8 @@ public class PrepareGetMISMandateTask extends AbstractAuthServletTask { //perform default task initialization defaultTaskInitialization(request, executionContext); - ConnectionParameterInterface connectionParameters = authConfig.getOnlineMandatesConnectionParameter(); + ConnectionParameterInterface connectionParameters = + authConfig.getOnlineMandatesConnectionParameter(pendingReq.getOnlineApplicationConfiguration()); SSLSocketFactory sslFactory = SSLUtils.getSSLSocketFactory(authConfig, connectionParameters); // get identitity link as byte[] diff --git a/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/tasks/RequestELGAMandateTask.java b/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/tasks/RequestELGAMandateTask.java index fd918c7f4..d65d74c3f 100644 --- a/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/tasks/RequestELGAMandateTask.java +++ b/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/tasks/RequestELGAMandateTask.java @@ -23,6 +23,7 @@ package at.gv.egovernment.moa.id.auth.modules.elgamandates.tasks; import java.security.NoSuchAlgorithmException; +import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -45,6 +46,8 @@ import at.gv.egovernment.moa.id.auth.modules.elgamandates.utils.ELGAMandateServi import at.gv.egovernment.moa.id.auth.modules.elgamandates.utils.ELGAMandatesCredentialProvider; import at.gv.egovernment.moa.id.commons.api.AuthConfiguration; import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException; +import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants; +import at.gv.egovernment.moa.id.commons.utils.KeyValueUtils; import at.gv.egovernment.moa.id.process.api.ExecutionContext; import at.gv.egovernment.moa.id.protocols.pvp2x.PVPTargetConfiguration; import at.gv.egovernment.moa.id.protocols.pvp2x.builder.PVPAuthnRequestBuilder; @@ -71,9 +74,22 @@ public class RequestELGAMandateTask extends AbstractAuthServletTask { public void execute(ExecutionContext executionContext, HttpServletRequest request, HttpServletResponse response) throws TaskExecutionException { try{ - // get IDP entityID - String elgaMandateServiceEntityID = authConfig.getBasicMOAIDConfiguration(ELGAMandatesAuthConstants.CONFIG_PROPS_ENTITYID); - + // get IDP entityID from Online Application configuration + String elgaMandateServiceEntityID = pendingReq.getOnlineApplicationConfiguration().getConfigurationValue(ELGAMandatesAuthConstants.CONFIG_PROPS_ENTITYID); + + // use first ELGA Mandate-Service from general MOA-ID configuration, of no OA specific exists + if (MiscUtil.isEmpty(elgaMandateServiceEntityID)) { + Logger.info("No Online-Application specific ELGA Mandate-Service found. Use first entry in general MOA-ID configuration"); + List configuratedEntityIDs = KeyValueUtils.getListOfCSVValues( + authConfig.getConfigurationWithKey( + MOAIDConfigurationConstants.PREFIX_MOAID_GENERAL + "." + + ELGAMandatesAuthConstants.CONFIG_PROPS_ENTITYID)); + + if (configuratedEntityIDs.size() > 0) + elgaMandateServiceEntityID = configuratedEntityIDs.get(0); + + } + if (MiscUtil.isEmpty(elgaMandateServiceEntityID)) { Logger.info("Connect ELGA Mandate-Service FAILED -> not EntityID found!"); throw new TaskExecutionException(pendingReq, "Connect ELGA Mandate-Service FAILED", @@ -88,7 +104,7 @@ public class RequestELGAMandateTask extends AbstractAuthServletTask { Logger.warn("Use not recommended metadata-provider initialization!" + " SAML2 'Well-Known-Location' is the preferred methode."); Logger.info("Initialize ELGA Mandate-Service metadata-provider with URL:" + metadataURL); - metadataService.initialize(metadataURL); + metadataService.addMetadataWithMetadataURL(metadataURL); } @@ -189,6 +205,7 @@ public class RequestELGAMandateTask extends AbstractAuthServletTask { authnReqBuilder.buildAuthnRequest(pendingReq, authnReqConfig , response); //write revisions log entry + revisionsLogger.logEvent(pendingReq, MOAIDEventConstants.AUTHPROCESS_ELGA_MANDATE_SERVICE_ENTITYID, elgaMandateServiceEntityID); revisionsLogger.logEvent(pendingReq, MOAIDEventConstants.AUTHPROCESS_ELGA_MANDATE_SERVICE_REQUESTED, moasession.getMandateReferenceValue()); } catch (MetadataProviderException e) { diff --git a/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/utils/ELGAMandateServiceMetadataProvider.java b/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/utils/ELGAMandateServiceMetadataProvider.java index c9485104b..8153fa2a8 100644 --- a/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/utils/ELGAMandateServiceMetadataProvider.java +++ b/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/utils/ELGAMandateServiceMetadataProvider.java @@ -23,14 +23,17 @@ package at.gv.egovernment.moa.id.auth.modules.elgamandates.utils; import java.util.List; +import java.util.Timer; import javax.xml.namespace.QName; import org.opensaml.saml2.metadata.EntitiesDescriptor; import org.opensaml.saml2.metadata.EntityDescriptor; import org.opensaml.saml2.metadata.RoleDescriptor; +import org.opensaml.saml2.metadata.provider.ChainingMetadataProvider; import org.opensaml.saml2.metadata.provider.HTTPMetadataProvider; import org.opensaml.saml2.metadata.provider.MetadataFilter; +import org.opensaml.saml2.metadata.provider.MetadataProvider; import org.opensaml.saml2.metadata.provider.MetadataProviderException; import org.opensaml.xml.XMLObject; import org.springframework.beans.factory.annotation.Autowired; @@ -55,58 +58,47 @@ public class ELGAMandateServiceMetadataProvider extends SimpleMOAMetadataProvide @Autowired AuthConfiguration authConfig; - private HTTPMetadataProvider metadataProvider = null; - + private ChainingMetadataProvider metadataProvider = new ChainingMetadataProvider(); - public void initialize(String metadataURL) throws MetadataProviderException { - if (metadataProvider == null) { - internalInitialize(metadataURL); - - } else { - Logger.info("ELGA Mandate-Service metadata-provider is already initialized."); - - } + + public ELGAMandateServiceMetadataProvider() { + metadataProvider.setRequireValidMetadata(true); } + + public void addMetadataWithMetadataURL(String metadataURL) throws MetadataProviderException { + internalInitialize(metadataURL); + + } + public void destroy() { + fullyDestroy(); /* (non-Javadoc) * @see org.opensaml.saml2.metadata.provider.MetadataProvider#requireValidMetadata() */ @Override public boolean requireValidMetadata() { - if (metadataProvider == null) { - Logger.fatal("ELGA Mandate-Service metadata-provider is not initialized"); - return false; - - } else return metadataProvider.requireValidMetadata(); + } /* (non-Javadoc) * @see org.opensaml.saml2.metadata.provider.MetadataProvider#setRequireValidMetadata(boolean) */ @Override - public void setRequireValidMetadata(boolean requireValidMetadata) { - if (metadataProvider == null) { - Logger.fatal("ELGA Mandate-Service metadata-provider is not initialized"); - - } else - metadataProvider.setRequireValidMetadata(requireValidMetadata);; - + public void setRequireValidMetadata(boolean requireValidMetadata) { + metadataProvider.setRequireValidMetadata(requireValidMetadata); + } /* (non-Javadoc) * @see org.opensaml.saml2.metadata.provider.MetadataProvider#getMetadataFilter() */ @Override - public MetadataFilter getMetadataFilter() { - if (metadataProvider == null) { - Logger.fatal("ELGA Mandate-Service metadata-provider is not initialized"); - return null; - - } else + public MetadataFilter getMetadataFilter() { return metadataProvider.getMetadataFilter(); + } /* (non-Javadoc) @@ -122,14 +114,9 @@ public class ELGAMandateServiceMetadataProvider extends SimpleMOAMetadataProvide * @see org.opensaml.saml2.metadata.provider.MetadataProvider#getMetadata() */ @Override - public XMLObject getMetadata() throws MetadataProviderException { - if (metadataProvider == null) { - Logger.error("ELGA Mandate-Service metadata-provider is not initialized"); - throw new MetadataProviderException("ELGA Mandate-Service metadata-provider is not initialized"); - - } - + public XMLObject getMetadata() throws MetadataProviderException { return metadataProvider.getMetadata(); + } /* (non-Javadoc) @@ -137,12 +124,8 @@ public class ELGAMandateServiceMetadataProvider extends SimpleMOAMetadataProvide */ @Override public EntitiesDescriptor getEntitiesDescriptor(String name) throws MetadataProviderException { - if (metadataProvider == null) { - Logger.fatal("ELGA Mandate-Service metadata-provider is not initialized"); - throw new MetadataProviderException("ELGA Mandate-Service metadata-provider is not initialized"); - - } else - return metadataProvider.getEntitiesDescriptor(name); + return metadataProvider.getEntitiesDescriptor(name); + } /* (non-Javadoc) @@ -150,9 +133,24 @@ public class ELGAMandateServiceMetadataProvider extends SimpleMOAMetadataProvide */ @Override public EntityDescriptor getEntityDescriptor(String entityID) throws MetadataProviderException { - if (metadataProvider == null) - internalInitialize(entityID); - + try { + //search if metadata is already loaded + EntityDescriptor entityDesc = metadataProvider.getEntityDescriptor(entityID); + + if (entityDesc != null) + return entityDesc; + else + Logger.info("No ELGA Mandate-Service: " + entityID + " Starting refresh process ..."); + + } catch (MetadataProviderException e) { + Logger.info("Access ELGA Mandate-Service: " + entityID + " FAILED. Reason:" + e.getMessage() + " Starting refresh process ..."); + + } + + //(re)initialize ELGA Mandate-Service + internalInitialize(entityID); + + //search again after reload (re)initialization try { EntityDescriptor entityDesc = metadataProvider.getEntityDescriptor(entityID); if (entityDesc == null) { @@ -174,9 +172,24 @@ public class ELGAMandateServiceMetadataProvider extends SimpleMOAMetadataProvide */ @Override public List getRole(String entityID, QName roleName) throws MetadataProviderException { - if (metadataProvider == null) - internalInitialize(entityID); + try { + //search if metadata is already loaded + List role = metadataProvider.getRole(entityID, roleName); + + if (role != null) + return role; + else + Logger.info("No ELGA Mandate-Service: " + entityID + " Starting refresh process ..."); + + } catch (MetadataProviderException e) { + Logger.info("Access ELGA Mandate-Service: " + entityID + " FAILED. Reason:" + e.getMessage() + " Starting refresh process ..."); + + } + + //(re)initialize ELGA Mandate-Service + internalInitialize(entityID); + //search again after reload (re)initialization return metadataProvider.getRole(entityID, roleName); } @@ -185,23 +198,52 @@ public class ELGAMandateServiceMetadataProvider extends SimpleMOAMetadataProvide */ @Override public RoleDescriptor getRole(String entityID, QName roleName, String supportedProtocol) - throws MetadataProviderException { - if (metadataProvider == null) - internalInitialize(entityID); + throws MetadataProviderException { + try { + //search if metadata is already loaded + RoleDescriptor role = metadataProvider.getRole(entityID, roleName, supportedProtocol); + + if (role != null) + return role; + else + Logger.info("No ELGA Mandate-Service: " + entityID + " Starting refresh process ..."); + + } catch (MetadataProviderException e) { + Logger.info("Access ELGA Mandate-Service: " + entityID + " FAILED. Reason:" + e.getMessage() + " Starting refresh process ..."); + + } + + //(re)initialize ELGA Mandate-Service + internalInitialize(entityID); + //search again after reload (re)initialization return metadataProvider.getRole(entityID, roleName, supportedProtocol); } - private synchronized void internalInitialize(String metdataURL) throws MetadataProviderException { - if (metadataProvider == null) { - Logger.info("Initialize PVP MetadataProvider to connect ELGA Mandate-Service"); + private synchronized void internalInitialize(String metdataURL) throws MetadataProviderException { + + //check if metadata with EntityID already exists in chaining metadata provider + boolean addNewMetadata = true; + try { + addNewMetadata = (metadataProvider.getEntityDescriptor(metdataURL) == null); + + } catch (MetadataProviderException e) {} + + //switch between metadata refresh and add new metadata + if (addNewMetadata) { + //Metadata provider seems not loaded --> Add new metadata provider + Logger.info("Initialize PVP MetadataProvider:" + metdataURL + " to connect ELGA Mandate-Service"); String trustProfileID = authConfig.getBasicMOAIDConfiguration(ELGAMandatesAuthConstants.CONFIG_PROPS_METADATA_TRUSTPROFILE); if (MiscUtil.isEmpty(trustProfileID)) { Logger.error("Create ELGA Mandate-Service Client FAILED: No trustProfileID to verify PVP metadata." ); throw new MetadataProviderException("No trustProfileID to verify PVP metadata."); } - + + //initialize Timer if it is null + if (timer == null) + timer = new Timer(true); + //create metadata validation filter chain MetadataFilterChain filter = new MetadataFilterChain(); filter.addFilter(new SchemaValidationFilter(true)); @@ -211,13 +253,41 @@ public class ELGAMandateServiceMetadataProvider extends SimpleMOAMetadataProvide filter, ELGAMandatesAuthConstants.MODULE_NAME_FOR_LOGGING); - if (metadataProvider == null) { + if (idpMetadataProvider == null) { Logger.error("Create ELGA Mandate-Service Client FAILED."); - throw new MetadataProviderException("Can not initialize ELGA Mandate-Service metadaa provider."); + throw new MetadataProviderException("Can not initialize ELGA Mandate-Service metadata provider."); } - metadataProvider.setRequireValidMetadata(true); + idpMetadataProvider.setRequireValidMetadata(true); + metadataProvider.addMetadataProvider(idpMetadataProvider); + + } else { + //Metadata provider seems already loaded --> start refresh process + List loadedProvider = metadataProvider.getProviders(); + for (MetadataProvider el : loadedProvider) { + if (el instanceof HTTPMetadataProvider) { + HTTPMetadataProvider prov = (HTTPMetadataProvider)el; + if (prov.getMetadataURI().equals(metdataURL)) + prov.refresh(); + + } else + Logger.warn("ELGA Metadata provider is not of Type 'HTTPMetadataProvider'! Something is suspect!!!!"); + + } } } + + /* (non-Javadoc) + * @see at.gv.egovernment.moa.id.auth.IDestroyableObject#fullyDestroy() + */ + @Override + public void fullyDestroy() { + if (metadataProvider != null) { + metadataProvider.destroy(); + + } + + + } } -- cgit v1.2.3 From 8dc47981d0d79c413020f087a4f253f64a6cbbea Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Thu, 3 Nov 2016 13:01:04 +0100 Subject: change merge problems in cherry picking --- .../PropertyBasedAuthConfigurationProvider.java | 145 ++++++++++++++++----- .../utils/ELGAMandateServiceMetadataProvider.java | 14 +- 2 files changed, 122 insertions(+), 37 deletions(-) (limited to 'id/server') diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java index 348b1c45a..94353fb6b 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java @@ -18,6 +18,7 @@ import java.util.Map; import java.util.Properties; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants; import at.gv.egovernment.moa.id.commons.MOAIDConstants; @@ -38,13 +39,13 @@ import at.gv.egovernment.moa.id.commons.utils.KeyValueUtils; import at.gv.egovernment.moa.id.config.ConfigurationProviderImpl; import at.gv.egovernment.moa.id.config.ConfigurationUtils; import at.gv.egovernment.moa.id.config.ConnectionParameter; -import at.gv.egovernment.moa.id.config.ConnectionParameterForeign; import at.gv.egovernment.moa.id.config.ConnectionParameterMOASP; import at.gv.egovernment.moa.id.config.ConnectionParameterMandate; import at.gv.egovernment.moa.id.config.stork.STORKConfig; import at.gv.egovernment.moa.id.protocols.pvp2x.PVP2XProtocol; import at.gv.egovernment.moa.logging.Logger; import at.gv.egovernment.moa.util.MiscUtil; +import iaik.pki.revocation.RevocationSourceTypes; /** * A class providing access to the Auth Part of the MOA-ID configuration data. @@ -196,6 +197,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @see at.gv.egovernment.moa.id.config.auth.AuthConfiguration#getPropertiesWithPrefix(java.lang.String) */ @Override + @Transactional public Map getConfigurationWithPrefix(String Prefix) { try { return configuration.getPropertySubset(Prefix); @@ -212,6 +214,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @see at.gv.egovernment.moa.id.config.auth.AuthConfiguration#getPropertiesWithPrefix(java.lang.String) */ @Override + @Transactional public Map getConfigurationWithWildCard(String key) { try { return configuration.searchPropertiesWithWildcard(key); @@ -228,23 +231,33 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide } + public String getBasicMOAIDConfiguration(final String key, final String defaultValue) { + return properties.getProperty(key, defaultValue); + + } + + /* (non-Javadoc) * @see at.gv.egovernment.moa.id.config.auth.AuthConfiguration#getPropertyWithKey(java.lang.String) */ @Override + @Transactional public String getConfigurationWithKey(String key) { try { - return configuration.getStringValue(key).trim(); - - } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) { - return null; - } + String value = configuration.getStringValue(key); + if (value != null) + return value.trim(); + + } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {} + + return null; } /** * Returns the general pvp2 properties config. NOTE: may be empty but never {@code null}. * @return the general pvp2 properties config. */ + @Transactional public Properties getGeneralPVP2ProperiesConfig() { return this.getGeneralProperiesConfig("protocols.pvp2."); } @@ -253,6 +266,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * Returns the general oauth20 properties config. NOTE: may be empty but never {@code null}. * @return the general oauth20 properties config. */ + @Transactional public Properties getGeneralOAuth20ProperiesConfig() { return this.getGeneralProperiesConfig("protocols.oauth20."); } @@ -262,6 +276,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * * @return the allowed protocols or {@code null}. */ + @Transactional public ProtocolAllowed getAllowedProtocols() { try { ProtocolAllowed allowedProtcols = new ProtocolAllowed(); @@ -287,6 +302,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @see at.gv.egovernment.moa.id.config.auth.AuthConfiguration#getTransactionTimeOut() */ @Override + @Transactional public int getTransactionTimeOut() { try { return configuration.getIntegerValue( @@ -302,6 +318,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @see at.gv.egovernment.moa.id.config.auth.AuthConfiguration#getSSOCreatedTimeOut() */ @Override + @Transactional public int getSSOCreatedTimeOut() { try { return configuration.getIntegerValue( @@ -317,6 +334,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @see at.gv.egovernment.moa.id.config.auth.AuthConfiguration#getSSOUpdatedTimeOut() */ @Override + @Transactional public int getSSOUpdatedTimeOut() { try { return configuration.getIntegerValue( @@ -334,6 +352,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @return an alternative source ID or {@code null}. * @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral} */ + @Transactional public String getAlternativeSourceID() throws ConfigurationException { try { return configuration.getStringValue(MOAIDConfigurationConstants.GENERAL_PROTOCOLS_SAML1_SOURCEID); @@ -349,6 +368,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * * @return the list of protocols. */ + @Transactional public List getLegacyAllowedProtocols() { List legacy = new ArrayList(); @@ -380,6 +400,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @param oaURL URL requested for an online application * @return an OAAuthParameter, or null if none is applicable */ + @Transactional public OAAuthParameter getOnlineApplicationParameter(String oaURL) { Map oa = getActiveOnlineApplication(oaURL); if (oa == null) { @@ -395,6 +416,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @return a string with a url-reference to the VerifyAuthBlock trust profile ID. * @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral} or in case of missing {@link MOASP}. */ + @Transactional public String getMoaSpAuthBlockTrustProfileID(boolean useTestTrustStore) throws ConfigurationException { if (useTestTrustStore) return getMoaSpAuthBlockTestTrustProfileID(); @@ -451,6 +473,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @return a list of strings containing all urls to the verify transform info IDs. * @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral} or in case of missing {@link MOASP}. */ + @Transactional public List getMoaSpAuthBlockVerifyTransformsInfoIDs() throws ConfigurationException { try { return Arrays.asList(configuration.getStringValue( @@ -468,6 +491,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @return ConnectionParameter of the authentication component moa-sp element. * @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral}. */ + @Transactional public ConnectionParameter getMoaSpConnectionParameter() throws ConfigurationException { ConnectionParameter result = null; String moaspURL; @@ -494,24 +518,34 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @return the connection parameter. * @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral}. */ - public ConnectionParameter getForeignIDConnectionParameter() throws ConfigurationException { - ConnectionParameter result = null; - String serviceURL; + @Transactional + public ConnectionParameter getForeignIDConnectionParameter(IOAAuthParameters oaParameters) throws ConfigurationException { + String serviceURL = null; try { - serviceURL = configuration.getStringValue( - MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_SZRGW_URL); - if (serviceURL != null) { - result = - new ConnectionParameterForeign(serviceURL, this.getProperties(), this.getRootConfigFileDir()); + //load OA specific MIS service URL if OA configuration exists + if (oaParameters != null) + serviceURL = oaParameters.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_EXTERNAL_SZRGW_SERVICE_URL); + //get first entry from general configuration if no OA specific URL exists + if (MiscUtil.isEmpty(serviceURL)) { + List serviceURLs = KeyValueUtils.getListOfCSVValues( + configuration.getStringValue(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_SZRGW_URL)); + if (serviceURLs.size() > 0) + serviceURL = serviceURLs.get(0); + } + if (MiscUtil.isNotEmpty(serviceURL)) + return new ConnectionParameterMandate(serviceURL, this.getProperties(), this.getRootConfigFileDir()); + + else + throw new ConfigurationException("service.09", new Object[]{"NO SZR-GW Service URL"}); + } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) { - Logger.warn("Loading SZRGW Service URL from configuration FAILED.", e); + Logger.warn("Initialize SZR-GW service connection parameters FAILED.", e); + throw new ConfigurationException("service.09", new Object[]{e.getMessage()}, e); - } - - return result; + } } /** @@ -520,24 +554,35 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @return the connection parameter. * @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral} */ - public ConnectionParameter getOnlineMandatesConnectionParameter() throws ConfigurationException { - ConnectionParameter result = null; - String serviceURL; + @Transactional + public ConnectionParameter getOnlineMandatesConnectionParameter(IOAAuthParameters oaParameters) throws ConfigurationException { + String serviceURL = null; try { - serviceURL = configuration.getStringValue( - MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_OVS_URL); - if (serviceURL != null) { - result = - new ConnectionParameterMandate(serviceURL, this.getProperties(), this.getRootConfigFileDir()); + //load OA specific MIS service URL if OA configuration exists + if (oaParameters != null) + serviceURL = oaParameters.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_EXTERNAL_MIS_SERVICE_URL); + //get first entry from general configuration if no OA specific URL exists + if (MiscUtil.isEmpty(serviceURL)) { + List serviceURLs = KeyValueUtils.getListOfCSVValues( + configuration.getStringValue(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_OVS_URL)); + if (serviceURLs.size() > 0) + serviceURL = serviceURLs.get(0); + } + if (MiscUtil.isNotEmpty(serviceURL)) + return new ConnectionParameterMandate(serviceURL, this.getProperties(), this.getRootConfigFileDir()); + + else + throw new ConfigurationException("service.06", new Object[]{"NO MIS Service URL"}); + } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) { - Logger.warn("Loading SZRGW Service URL from configuration FAILED.", e); + Logger.warn("Initialize MIS service connection parameters FAILED.", e); + throw new ConfigurationException("service.06", new Object[]{e.getMessage()}, e); } - - return result; + } /** @@ -563,6 +608,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @return a list of transform infos. * @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral} or in case of missing {@link SecurityLayer}. */ + @Transactional public List getTransformsInfos() throws ConfigurationException { try { String securityLayer = configuration.getStringValue( @@ -595,6 +641,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * * @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral} */ + @Transactional public List getIdentityLinkX509SubjectNames() throws ConfigurationException { ArrayList identityLinkX509SubjectNames = new ArrayList(); @@ -616,6 +663,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @return list of default SLRequestTemplates. * @throws ConfigurationException is never thrown */ + @Transactional public List getSLRequestTemplates() throws ConfigurationException { List templatesList = new ArrayList(); @@ -642,6 +690,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * * @throws ConfigurationException is never thrown */ + @Transactional public String getSLRequestTemplates(String type) throws ConfigurationException { String slRequestTemplate = null; @@ -677,6 +726,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @return list of default BKUURLs. * @throws ConfigurationException is never thrown */ + @Transactional public List getDefaultBKUURLs() throws ConfigurationException { List bkuurlsList = new ArrayList(); try { @@ -702,6 +752,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * * @throws ConfigurationException is never thrown */ + @Transactional public String getDefaultBKUURL(String type) throws ConfigurationException { String defaultBKUUrl = null; try { @@ -736,6 +787,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @return the SSOTagetIdentifier or {@code null} * @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral} */ + @Transactional public String getSSOTagetIdentifier() throws ConfigurationException { try { String value = configuration.getStringValue( @@ -756,6 +808,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * * @return the SSOFriendlyName or a default String */ + @Transactional public String getSSOFriendlyName() { try { return configuration.getStringValue( @@ -772,6 +825,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * * @return the SSOSpecialText or an empty String */ + @Transactional public String getSSOSpecialText() { try { String text = configuration.getStringValue( @@ -858,6 +912,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide return Boolean.valueOf(prop); } + @Transactional public List getPublicURLPrefix() throws ConfigurationException{ try { String publicURLPrefixList = configuration.getStringValue( @@ -923,6 +978,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @return a new STORK Configuration or {@code null} * @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral} */ + @Transactional public IStorkConfig getStorkConfig() throws ConfigurationException { IStorkConfig result = null; try { @@ -1009,6 +1065,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @return {@code true} if enable, {@code false} if disabled */ @Override + @Transactional public boolean isTrustmanagerrevoationchecking() { try { @@ -1027,6 +1084,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @return the path to the certstore directory or {@code null} */ @Override + @Transactional public String getCertstoreDirectory() { try { String path = rootConfigFileDir + configuration.getStringValue( @@ -1047,6 +1105,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide } @Override + @Transactional public String getTrustedCACertificates() { try { String path = rootConfigFileDir + configuration.getStringValue( @@ -1073,6 +1132,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @param id the id of the requested online application * @return the requested online application or {@code null} */ + @Transactional public Map getActiveOnlineApplication(String id) { Logger.trace("Get active OnlineApplication with ID " + id + " from database."); Map oaConfig = null; @@ -1173,10 +1233,35 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide return Boolean.valueOf(prop); } + /* (non-Javadoc) + * @see at.gv.egovernment.moa.id.commons.api.AuthConfiguration#getRevocationMethodOrder() + */ + @Override + public String[] getRevocationMethodOrder() { + final String[] DEFAULTORDER = new String[] {RevocationSourceTypes.OCSP, RevocationSourceTypes.CRL}; + List result = new ArrayList(); + + String prop = properties.getProperty("configuration.ssl.validation.revocation.method.order"); + if (MiscUtil.isNotEmpty(prop)) { + String[] configOrder = prop.split(","); + for (String el : configOrder) { + if (RevocationSourceTypes.ALL.contains(el.trim())) { + result.add(el.trim()); + } + } + } + + if (result.isEmpty()) + return DEFAULTORDER; + else + return result.toArray(new String[result.size()]); + } + /* (non-Javadoc) * @see at.gv.egovernment.moa.id.config.auth.AuthConfiguration#getDefaultRevisionsLogEventCodes() */ @Override + @Transactional public List getDefaultRevisionsLogEventCodes() { try { String eventcodes = configuration.getStringValue(MOAIDConfigurationConstants.GENERAL_REVERSION_LOGS_EVENTCODES); @@ -1209,6 +1294,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @see at.gv.egovernment.moa.id.config.auth.AuthConfiguration#getMoaSpIdentityLinkTrustProfileID(boolean) */ @Override + @Transactional public String getMoaSpIdentityLinkTrustProfileID(boolean useTestTrustStore) throws ConfigurationException { if (useTestTrustStore) @@ -1221,6 +1307,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide * @see at.gv.egovernment.moa.id.config.auth.AuthConfiguration#isVirtualIDPsEnabled() */ @Override + @Transactional public boolean isVirtualIDPsEnabled() { try { String value = configuration.getStringValue( diff --git a/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/utils/ELGAMandateServiceMetadataProvider.java b/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/utils/ELGAMandateServiceMetadataProvider.java index 8153fa2a8..c5d2a9553 100644 --- a/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/utils/ELGAMandateServiceMetadataProvider.java +++ b/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/utils/ELGAMandateServiceMetadataProvider.java @@ -23,7 +23,6 @@ package at.gv.egovernment.moa.id.auth.modules.elgamandates.utils; import java.util.List; -import java.util.Timer; import javax.xml.namespace.QName; @@ -54,7 +53,8 @@ import at.gv.egovernment.moa.util.MiscUtil; */ @Service("ELGAMandate_MetadataProvider") -public class ELGAMandateServiceMetadataProvider extends SimpleMOAMetadataProvider { +public class ELGAMandateServiceMetadataProvider extends SimpleMOAMetadataProvider + implements IDestroyableObject { @Autowired AuthConfiguration authConfig; @@ -74,6 +74,8 @@ public class ELGAMandateServiceMetadataProvider extends SimpleMOAMetadataProvide public void destroy() { fullyDestroy(); + } + /* (non-Javadoc) * @see org.opensaml.saml2.metadata.provider.MetadataProvider#requireValidMetadata() */ @@ -239,17 +241,13 @@ public class ELGAMandateServiceMetadataProvider extends SimpleMOAMetadataProvide Logger.error("Create ELGA Mandate-Service Client FAILED: No trustProfileID to verify PVP metadata." ); throw new MetadataProviderException("No trustProfileID to verify PVP metadata."); } - - //initialize Timer if it is null - if (timer == null) - timer = new Timer(true); - + //create metadata validation filter chain MetadataFilterChain filter = new MetadataFilterChain(); filter.addFilter(new SchemaValidationFilter(true)); filter.addFilter(new MOASPMetadataSignatureFilter(trustProfileID)); - metadataProvider = createNewHTTPMetaDataProvider(metdataURL, + HTTPMetadataProvider idpMetadataProvider = createNewHTTPMetaDataProvider(metdataURL, filter, ELGAMandatesAuthConstants.MODULE_NAME_FOR_LOGGING); -- cgit v1.2.3 From 56dc88d3335e371483be7d6c8198bbb51dfce018 Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Thu, 3 Nov 2016 13:27:15 +0100 Subject: fix some more jerry-pick problems --- .../elgamandates/utils/ELGAMandateServiceMetadataProvider.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'id/server') diff --git a/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/utils/ELGAMandateServiceMetadataProvider.java b/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/utils/ELGAMandateServiceMetadataProvider.java index c5d2a9553..b538ba3e9 100644 --- a/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/utils/ELGAMandateServiceMetadataProvider.java +++ b/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/utils/ELGAMandateServiceMetadataProvider.java @@ -53,8 +53,7 @@ import at.gv.egovernment.moa.util.MiscUtil; */ @Service("ELGAMandate_MetadataProvider") -public class ELGAMandateServiceMetadataProvider extends SimpleMOAMetadataProvider - implements IDestroyableObject { +public class ELGAMandateServiceMetadataProvider extends SimpleMOAMetadataProvider { @Autowired AuthConfiguration authConfig; @@ -276,11 +275,7 @@ public class ELGAMandateServiceMetadataProvider extends SimpleMOAMetadataProvide } } - /* (non-Javadoc) - * @see at.gv.egovernment.moa.id.auth.IDestroyableObject#fullyDestroy() - */ - @Override - public void fullyDestroy() { + private void fullyDestroy() { if (metadataProvider != null) { metadataProvider.destroy(); -- cgit v1.2.3 From 5a9ebb9a13299cf8cb5360bfd9de1860e257afc1 Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Thu, 3 Nov 2016 15:07:59 +0100 Subject: fix cherry-pick problem in case of moa-id 3.2.x config already exists --- .../moa/id/commons/config/ConfigurationMigrationUtils.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'id/server') diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java index 6099760e0..d80856c1c 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java @@ -970,7 +970,12 @@ public class ConfigurationMigrationUtils { // transfer the incoming data to the database model stork.setStorkLogonEnabled(Boolean.parseBoolean(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ENABLED))); if (MiscUtil.isNotEmpty(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_MINQAALEVEL))) - stork.setQaa(Integer.valueOf(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_MINQAALEVEL))); + try { + stork.setQaa(Integer.valueOf(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_MINQAALEVEL))); + } catch (NumberFormatException e) { + Logger.info("Downgraded OA config found -> change eIDAS LoA to STORK QAA"); + stork.setQaa(4); + } if (MiscUtil.isNotEmpty(oa.get(MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES)) && oa.get(MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES).equals(MOAIDConfigurationConstants.PREFIX_VIDP)) -- cgit v1.2.3 From 7cfb5362036273fbd7cd20f49072d3bbe9ad9425 Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Thu, 3 Nov 2016 15:34:46 +0100 Subject: update first parts in readme, handbook, and default configuration # Conflicts: # id/history.txt --- .../data/deploy/conf/moa-id/moa-id.properties | 2 +- id/server/doc/handbook/additional/additional.html | 5 + id/server/doc/handbook/config/config.html | 125 +++++++++++++++------ .../src/main/resources/mainGUI/index.html | 2 +- .../src/main/resources/mainGUI/moa_errorcodes.html | 2 +- 5 files changed, 99 insertions(+), 37 deletions(-) (limited to 'id/server') diff --git a/id/server/data/deploy/conf/moa-id/moa-id.properties b/id/server/data/deploy/conf/moa-id/moa-id.properties index 784f66602..b9e2f6c8d 100644 --- a/id/server/data/deploy/conf/moa-id/moa-id.properties +++ b/id/server/data/deploy/conf/moa-id/moa-id.properties @@ -16,6 +16,7 @@ protocols.pvp2.schemavalidation=true #MOA-ID 3.x session information encryption key (PassPhrase) configuration.moasession.key=SessionEncryptionKey configuration.moaconfig.key=ConfigurationEncryptionKey +configuration.ssl.validation.revocation.method.order=ocsp,crl #MOA-ID 3.x Monitoring Servlet configuration.monitoring.active=false @@ -143,7 +144,6 @@ moa.id.protocols.eIDAS.metadata.validation.truststore=eIDAS_metadata ### HBV Mandate-Service client module ### modules.elga_mandate.nameID.target=urn:publicid:gv.at:cdid+GH -modules.elga_mandate.service.entityID= modules.elga_mandate.service.metadata.trustprofileID= modules.elga_mandate.service.mandateprofiles= modules.elga_mandate.keystore.path=keys/moa_idp[password].p12 diff --git a/id/server/doc/handbook/additional/additional.html b/id/server/doc/handbook/additional/additional.html index 00b36c4cd..ec57a74c6 100644 --- a/id/server/doc/handbook/additional/additional.html +++ b/id/server/doc/handbook/additional/additional.html @@ -565,6 +565,11 @@ IP Adresse IP Adresse mit der das externe Vollmachten Service die Vollmacht ausgeliefert hat + + 6004 + EntityID + EntityID des externen Vollmachten Services an welches die Anfrage gesendet wird + 6100 EntityID diff --git a/id/server/doc/handbook/config/config.html b/id/server/doc/handbook/config/config.html index b373fb83d..6fb5aad80 100644 --- a/id/server/doc/handbook/config/config.html +++ b/id/server/doc/handbook/config/config.html @@ -122,6 +122,7 @@

  • BKU Konfiguration
  • Test Credentials
  • Vollmachten
  • +
  • SZR-Gateway Service
  • Single Sign-On (SSO)
  • Secure idenTity acrOss boRders linKed (STORK)
  • Authentifizierungsprotokolle @@ -353,7 +354,7 @@ https://<host>:<port>/moa-id-configuration/secure/usermanagementInit Sollte die Validierung der eMail Adresse nicht innerhalb des in Abschnitt 2.2.1.1 konfigurierten Zeitraums erfolgen, wird die Benutzeranforderung automatisch gelöscht und die Benutzerin / der Benutzer muss sich erneut am Konfigurationstool registrieren.
  • 2.1.4.2 Benutzerrechte
    -

    Alle Benutzer die Admin–Rechte (Eigenschaft admin) besitzen haben vollen Zugriff auf die gesamte Konfiguration der verwalteten MOA-ID-Auth Instanz. Benutzer ohne Admin-Rechten stehen nur folgende Operationen zur Verf\FCgung wobei diese auch besondere Einschr\E4nkungen aufweisen k\F6nnen.

    +

    Alle Benutzer die Admin–Rechte (Eigenschaft admin) besitzen haben vollen Zugriff auf die gesamte Konfiguration der verwalteten MOA-ID-Auth Instanz. Benutzer ohne Admin-Rechten stehen nur folgende Operationen zur Verf\FCgung wobei diese auch besondere Einschr\E4nkungen aufweisen können.

    • Online-Applikationen bearbeiten: Ein Benutzer ohne Admin-Rechte kann nur jene Online-Applikationen bearbeiten die von ihm erstellt wurden. Das bearbeiten fremder Online-Applikationen ist nicht möglich. Folgende Parameter können durch diesen Benutzer bearbeitet werden.
        @@ -401,6 +402,12 @@ UNIX: moa.id.configuration=file:C:/Programme/apache/tomcat-8.x.x/conf/moa-id/moa

        Passwort zum Verschlüsseln von Konfigurationsteilen welche in der Datenbank abgelegt werden. Hierbei kann jede beliebige Zeichenfolge aus Buchstaben, Zahlen und Sonderzeichen verwendet werden.

        Hinweis: Dieses Passwort muss identisch zu dem im Modul MOA-ID-Configuration hinterlegten Passwort sein.

        + + configuration.ssl.validation.revocation.method.order + ocsp,crl +

        Definiert die Reihenfolge des Zertifikatsrevokierungschecks bei SSL Verbindungen. Die Defaultreihenfolge ist OCSP, CRL.

        +

        Hinweis: Die Angabe erfolgt als CSV, wobei die Schlüsselwörter 'ocsp' und 'crl' lauten

        + configuration.monitoring.active true / false @@ -1005,7 +1012,7 @@ https://<host>:<port>/moa-id-auth/MonitoringServlet Public URL Prefix https://demo.egiz.gv.at/moa-id-auth/

        URL-Prefix der MOA-ID Instanz. Diese URL wird für die automatische Generierung von Formularen und Informationen verwendet und MUSS konfiguriert werden.

        -

        Hinweis: Wenn virtuelle IDPs aktiviert sind muss hier für jede virtuelle MOA-ID Instanz, der Public URL Prefix als Comma Separatet Value (CSV) eingetragen werden.
        +

        Hinweis: Wenn virtuelle IDPs aktiviert sind muss hier für jede virtuelle MOA-ID Instanz, der Public URL Prefix als Comma Separatet Value (CSV) eingetragen werden. Bei CSV werden die einzelnen Public URL Prefix durch Beistrich (',') getrennt.
        (z.B.: https://demo.egiz.gv.at/moa-id-auth/,https://apps.egiz.gv.at/moa-id-auth/)

        @@ -1163,23 +1170,37 @@ Checking Beschreibung - Online-Vollmachten Service + Online-Vollmachten Service (CSV) https://vollmachten.egiz.gv.at/mis-test/MandateIssueRequest -

        URL zum Online-Vollmachten Service

        +

        URL(s) zum Online-Vollmachten Service

        +
      +

      Hinweis: Die URLs auf die unterschiedlichen Instanzen des Online-Vollmachten Services können auch als Comma Separatet Value (CSV) eingetragen werden. Bei CSV werden die einzelnen URLs durch Beistrich (',') getrennt. Sind mehrere URLs hinterlegt kann das zu verwendeten Service je Online Applikation konfiguriert werden (siehe Kapitel 3.2.4).
      +(z.B.: https://vollmachten.stammzahlenregister.gv.at/mis/MandateIssueRequest,https://vollmachten.egiz.gv.at/mis-test/MandateIssueRequest)

      +

      Hinweis: Erfolgt in der Online Applikation keine konkrete Auswahl wird Standardmäßig das erste eingetragen Service verwendet.

      - SZR-Gateway Service + SZR-Gateway Service (CSV) https://szrgw.egiz.gv.at:8443/szr-gateway_2.0/services/IdentityLinkCreation -

      URL zum Stammzahlen-Register Gateway

      -

      Hinweis: Der SZR-Gateway Service welcher in der MOA-ID 1.5.1 Konfiguration verwendet wurde ist nicht mehr kompatibel zu MOA-ID 2.0. Das aktualisierte Test SZR-Gateway Service für MOA-ID 2.x steht unter folgender URL zur Verfügung. https://szrgw.egiz.gv.at:8443/szr-gateway_2.0/services/IdentityLinkCreation

      - +

      URL(s) zum Stammzahlen-Register Gateway

      +

      Hinweis: Der SZR-Gateway Service welcher in der MOA-ID 1.5.1 Konfiguration verwendet wurde ist nicht mehr kompatibel zu MOA-ID 2.0. Das aktualisierte Test SZR-Gateway Service für MOA-ID 2.x steht unter folgender URL zur Verfügung. https://szrgw.egiz.gv.at:8443/szr-gateway_2.0/services/IdentityLinkCreation

      + +

      Hinweis: Die URLs auf die unterschiedlichen Instanzen des SZR-Gateway Services können auch als Comma Separatet Value (CSV) eingetragen werden. Bei CSV werden die einzelnen URLs durch Beistrich (',') getrennt. Sind mehrere URLs hinterlegt kann das zu verwendeten Service je Online Applikation konfiguriert werden (siehe Kapitel 3.2.4).
      + (z.B.: https://szrgw.egiz.gv.at/services_2.0/IdentityLinkCreation,https://szrgw.egiz.gv.at:8443/services_2.0/IdentityLinkCreation)

      +

      Hinweis: Erfolgt in der Online Applikation keine konkrete Auswahl wird Standardmäßig das erste eingetragen Service verwendet.

      + + + ELGA Mandate Service (CSV) +   +

      EnitityID(s) der ELGA Vertretungsservices

      +

      Hinweis: Die EntityIDs auf die unterschiedlichen Instanzen des ELGA Vertretungsservice können auch als Comma Separatet Value (CSV) eingetragen werden. Bei CSV werden die einzelnen URLs durch Beistrich (',') getrennt. Sind mehrere URLs hinterlegt kann das zu verwendeten Service je Online Applikation konfiguriert werden (siehe Kapitel 3.2.4).
      + (z.B.: https://aaaaaa.demo.att/bbbb/service/metadata,https://bbbbb.at/cccc/service/metadata)

      +

      Hinweis: Erfolgt in der Online Applikation keine konkrete Auswahl wird Standardmäßig das erste eingetragen Service verwendet.

      3.1.8 Single-Sign On (SSO)

      @@ -1726,11 +1747,11 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der

      Dieser Abschnitt behandelt online-applikationsspezifische Einstellungen zur Anmeldung mittels Online-Vollmachen.

      - - - - - + + + + + @@ -1753,10 +1774,46 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der + + + + + + + + + + + + + +
      NameBeispielwertAdminOptionalBeschreibungNameBeispielwertAdminOptionalBeschreibung
      Vollmachten (ja/nein)X Definiert ob eine Online-Applikation ausschließlich Anmeldungen mittels Online-Vollmachten unterstützt. Wenn ja, wird in während der BKU-Auswahl die Option in Vertretung für eine Anmeldung in Vertretung standardmäßig aktiviert und diese Einstellung kann durch die Benutzerin oder den Benutzer nicht geändert werden.
      MIS Mandate-Service URL   

      Definiert das MIS Mandate-Service (Vollmachtsservice der österreichischen Datenschutzbehörde) welches von dieser Online-Applikation verwendet werden soll. Hierfür stehen all jene Auswahlmöglichkeiten zur Verfügung welche in der Allgemeinen Konfiguration (siehe Kapitel 3.1.7) festgelegt wurden.

      +

      Hinweis: Wird keine spezifische Auswahl getroffen wird automatisch das Erste in der allgemeinen Konfiguration eingetragene Service verwendet.

      ELGA Mandate-Service EntityID   

      Definiert das ELGA Mandate-Service (Vollmachtsservice für Vertretungen aus dem ELGA Kontext) welches von dieser Online-Applikation verwendet werden soll. Hierfür stehen all jene Auswahlmöglichkeiten zur Verfügung welche in der Allgemeinen Konfiguration (siehe Kapitel 3.1.7) festgelegt wurden.

      +

      Hinweis: Wird keine spezifische Auswahl getroffen wird automatisch das Erste in der allgemeinen Konfiguration eingetragene Service verwendet.

       

      Hinweis: Werden für die Online-Applikation eigene Templates für die Bürgerkartenauswahl oder die zusätzliche Anmeldeabfrage im SSO Fall (siehe Abschnitt 3.2.2) verwendet, stehen alle Konfigurationsparameter die Einfluss auf die BKU-Auswahl haben nicht zur Verfügung. Die Funktionalität der entsprechenden Parameter hat jedoch weiterhin Einfluss auf den Anmeldevorgang.

      -

      3.2.5 Single Sign-On (SSO)

      +

      3.2.5 SZR-Gateway Service

      +

      Dieser Abschnitt behandelt online-applikationsspezifische Einstellungen zum Stammzahlenregistergateway der österreichischen Datenschutzbehörde.

      + + + + + + + + + + + + + + + +
      NameBeispielwertAdminOptionalBeschreibung
      SZR-Gateway Service URL   

      Definiert das Stammzahlenregister-Gateway Service welches von dieser Online-Applikation verwendet werden soll. Hierfür stehen all jene Auswahlmöglichkeiten zur Verfügung welche in der Allgemeinen Konfiguration (siehe Kapitel 3.1.7) festgelegt wurden.

      +

      Hinweis: Wird keine spezifische Auswahl getroffen wird automatisch das Erste in der allgemeinen Konfiguration eingetragene Service verwendet.

      +

       

      +

      3.2.6 Single Sign-On (SSO)

      Dieser Abschnitt behandelt online-applikationsspezifische Einstellungen zu Single Sign-On

      @@ -1783,7 +1840,7 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der

      Hinweis: Diese Abfrage ist standardmäßig aktiviert und kann nur durch einen Benutzer mit der Role admin deaktiviert werden.

      -

      3.2.6 Secure idenTity acrOss boRders linKed (STORK)

      +

      3.2.7 Secure idenTity acrOss boRders linKed (STORK)

      Dieser Abschnitt behandelt Online-Applikationsspezifische Einstellungen zu STORK.

      @@ -1821,10 +1878,10 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der

       

      Hinweis: Werden für die Online-Applikation eigene Templates für die Bürgerkartenauswahl oder die zusätzliche Anmeldeabfrage im SSO Fall (siehe Abschnitt 3.2.2) verwendet, stehen alle Konfigurationsparameter die Einfluss auf die BKU-Auswahl haben nicht zur Verfügung.

      -

      3.2.7 Authentifizierungsprotokolle

      +

      3.2.8 Authentifizierungsprotokolle

      Dieser Abschnitt behandelt online-applikationsspezifische Einstellungen zu den von der Online-Applikation unterstützen Authentifizierungsprotokollen. Eine Verwendung aller zur Verfügung stehender Authentifizierungsprotokolle durch die Online-Applikation ist ebenfalls möglich. Hierfür müssen nur alle benötigten Protokolle konfiguriert werden. Nähere Informationen zu den unterstützten Protokollen finden sie im Kapitel Protokolle.

      Aus Gründen der Übersichtlichkeit kann der Konfigurationsbereich für jeden Protokoll, in der Web-Oberfläche des Konfigurationstools, ein- oder ausgeblendet werden.

      -
      3.2.7.1 SAML1
      +
      3.2.8.1 SAML1

      Für das Protokoll SAML1 stehen folgende Konfigurationsparameter zur Verfügung.

      @@ -1879,7 +1936,7 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der

       

      Hinweis: Das Modul MOA-ID-Auth in der Version 2.0 unterstützt SAML1 nur mehr zur Abwärtskompatibilität mit bereits bestehenden Online-Applikationen. Wir empfehlen den Umstieg auf ein anderes, von MOA-ID-Auth unterstütztes, Authentifizierungsprotokoll. Aus diesem Grund steht die Konfiguration des SAML1 Protokolls nur mehr einer Benutzerin oder einem Benutzer mit der Role admin zur Verfügung.

      -
      3.2.7.2 PVP 2.1
      +
      3.2.8.2 PVP 2.1

      In diesem Bereich erfolgt die applikationsspezifische Konfiguration für das Authentifizierungsprotokoll PVP 2.1.

      @@ -1913,7 +1970,7 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
      Zertifikat mit dem die Metadaten der Online-Applikation signiert sind. Dieses wird benötigt um die Metadaten zu verifizieren.
      -
      3.2.7.3 OpenID Connect
      +
      3.2.8.3 OpenID Connect

      In diesem Bereich erfolgt die applikationsspezifische Konfiguration für OpenID Connect (OAuth 2.0).

      @@ -1945,7 +2002,7 @@ Soll die Bürgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
      OpenID Connect Redirect URL. Nach erfolgreicher Authentifizierung wird die Benutzerin oder der Benutzer an diese URL zurückgeleitet.
      -
      3.2.8 Zusätzliche allgemeine Einstellungen
      +
      3.2.9 Zusätzliche allgemeine Einstellungen

      In Abschnitt ermöglicht eine erweiterte online-applikationsspezifische Individualisierung des AuthBlocks und der Bürgerkartenauswahl. Die Individualisierung des AuthBlocks steht jedoch dann zur Verfügung wenn die dem Module MOA-ID-Auth beigelegte Security-Layer Transformation verwendet wird oder wenn die individuelle Security-Layer Transformation den Formvorschriften der Spezifikation entspricht.

      @@ -1980,7 +2037,7 @@ wenn die individuelle Security-Layer Transformation den Formvorschriften der Sp Wird diese Option gewählt wird im AuthBlock, welcher im Anmeldevorgang signiert wird, keine bPK oder wbPK dargestellt. -
      3.2.8.1 Login-Fenster Konfiguration
      +
      3.2.9.1 Login-Fenster Konfiguration

      Diese Konfigurationsparameter bieten zusätzliche Einstellungen für eine Anpassung der Bürgerkartenauswahl welche von MOA-ID-Auth generiert wird. Zur besseren Handhabung werden die angegebenen Parameter direkt in einer Vorschau dargestellt. Alle in diesem Abschnitt angegebenen Parameter sind Optional und werden bei Bedarf durch Standardwerte ergänzt. @@ -2069,7 +2126,7 @@ Alle in diesem Abschnitt angegebenen Parameter sind Optional und werden bei Beda

       

      Hinweis: Bei Verwendung einer online-applikationsspezifischen Bürgerkartenauswahl stehen alle Parameter die die Bürgerkartenauswahl betreffen nicht zur Verfügung.

      Hinweis: Bei Verwendung eines online-applikationsspezifischen Security-Layer-Request Templates stehen alle Parameter die das SL-Template betreffen nicht zur Verfügung.

      -
      3.2.9 Revisionslogging
      +
      3.2.10 Revisionslogging

      Ab MOA-ID 3.x steht ein erweitertes speziell für Revisionsaufgaben abgestimmtest Logging zur Verfügung. Über dieses Feld können die zu loggenden Events als CSV codierte Eventcodes konfiguriert werden. Werden keine Eventcodes konfiguriert wird eine in MOA-ID hinterlegte Defaultkonfiguration verwendet. Eine Liste aller möglichen Eventcodes finden Sie hier.

      3.3 Import / Export

      Üer diese Funktionalität besteht die Möglichkeit eine bestehende MOA-ID 2.x.x @@ -2143,13 +2200,13 @@ Exportfunktion verwendet werden.

      heigth 200 X - Höhe des Java Applets falls die Online-BKU gewählt wurde. Die Konfiguration der Höhe kann jedoch auch über die Konfiguration der Online-Applikation erfolgen. (siehe Kapitel 3.2.7.1) + Höhe des Java Applets falls die Online-BKU gewählt wurde. Die Konfiguration der Höhe kann jedoch auch über die Konfiguration der Online-Applikation erfolgen. (siehe Kapitel 3.2.8.1) width 250 X - Breite des Java Applets falls die Online-BKU gewählt wurde. Die Konfiguration der Breite kann jedoch auch über die Konfiguration der Online-Applikation erfolgen. (siehe Kapitel 3.2.7.1) + Breite des Java Applets falls die Online-BKU gewählt wurde. Die Konfiguration der Breite kann jedoch auch über die Konfiguration der Online-Applikation erfolgen. (siehe Kapitel 3.2.8.1)


      @@ -2274,7 +2331,7 @@ Die nachfolgende Form zeigt ein Beispiel für den Aufbau des im BKU-Auswahl </form>

      Als Beispiel für ein Single Sign-On Anmeldeabfrage Template steht auch das bei MOA-ID-Auth hinterlegte Standardtemplate zur Verfügung. Dieses finden Sie hier.

      4.3 Security-Layer Request

      -

      Das Security-Layer (SL) Request Template dient zur Kommunikation zwischen dem Modul MOA-ID-Auth und der gewählten Bürgerkartenumgebung. Diese Kommunikation erfolgt über ein http Formular welches als http POST Request an die Bürgerkartenumgebung gesendet wird. Bei MOA-ID-Auth werden SL Templates mitgeliefert, wobei einige Template Parameter auch über das Konfigurationstool je Online-Applikation angepasst werden können (siehe Kapitel 3.2.7.1).

      +

      Das Security-Layer (SL) Request Template dient zur Kommunikation zwischen dem Modul MOA-ID-Auth und der gewählten Bürgerkartenumgebung. Diese Kommunikation erfolgt über ein http Formular welches als http POST Request an die Bürgerkartenumgebung gesendet wird. Bei MOA-ID-Auth werden SL Templates mitgeliefert, wobei einige Template Parameter auch über das Konfigurationstool je Online-Applikation angepasst werden können (siehe Kapitel 3.2.8.1).

      Für den Fall das individuelle Anpassungen am SL Template erforderlich sind müssen diese folgende Formvorschriften erfüllen.

      <form name="CustomizedForm" action="<BKU>" method="post">
         <input type="hidden" name="XMLRequest" value="<XMLRequest>"/> 
      @@ -2307,7 +2364,7 @@ Die nachfolgende Form zeigt ein Beispiel für den Aufbau des im  BKU-Auswahl
         
       
       

       

      -

      Folgende zusätzliche Tags zur Layout Anpassung (siehe Kapitel 3.2.7.1) stehen optional zur Verfügung und können über das SL Template an die Bürgerkartenumgebung übergeben werden. Ein Beispiel für die Verwendung dieser zusätzlichen Tags finden Sie im beigelegten SL Template.

      +

      Folgende zusätzliche Tags zur Layout Anpassung (siehe Kapitel 3.2.8.1) stehen optional zur Verfügung und können über das SL Template an die Bürgerkartenumgebung übergeben werden. Ein Beispiel für die Verwendung dieser zusätzlichen Tags finden Sie im beigelegten SL Template.

      @@ -2317,22 +2374,22 @@ Die nachfolgende Form zeigt ein Beispiel für den Aufbau des im BKU-Auswahl - + - + - + - +
      Name
      <REDIRECTTARGET> XMit diesem Tag wird der Parameter Targetparameter aus Kapitel 3.2.7.1 an die Bürgerkartenumgebung übermittelt.Mit diesem Tag wird der Parameter Targetparameter aus Kapitel 3.2.8.1 an die Bürgerkartenumgebung übermittelt.
      <APPLETWIDTH> XMit diesem Tag wird der Parameter Appletbreite aus Kapitel 3.2.7.1 an die Bürgerkartenumgebung übermittelt.Mit diesem Tag wird der Parameter Appletbreite aus Kapitel 3.2.8.1 an die Bürgerkartenumgebung übermittelt.
      <APPLETHEIGHT> XMit diesem Tag wird der Parameter Applethöhe aus Kapitel 3.2.7.1 an die Bürgerkartenumgebung übermittelt.Mit diesem Tag wird der Parameter Applethöhe aus Kapitel 3.2.8.1 an die Bürgerkartenumgebung übermittelt.
      <COLOR> XMit diesem Tag wird der Parameter Hintergrundfarbe aus Kapitel 3.2.7.1 an die Bürgerkartenumgebung übermittelt.Mit diesem Tag wird der Parameter Hintergrundfarbe aus Kapitel 3.2.8.1 an die Bürgerkartenumgebung übermittelt.

       

      diff --git a/id/server/moa-id-frontend-resources/src/main/resources/mainGUI/index.html b/id/server/moa-id-frontend-resources/src/main/resources/mainGUI/index.html index d2e7d1e1b..5f7e92321 100644 --- a/id/server/moa-id-frontend-resources/src/main/resources/mainGUI/index.html +++ b/id/server/moa-id-frontend-resources/src/main/resources/mainGUI/index.html @@ -2,7 +2,7 @@ - MOA-ID 3.1.x + MOA-ID 3.2.x diff --git a/id/server/moa-id-frontend-resources/src/main/resources/mainGUI/moa_errorcodes.html b/id/server/moa-id-frontend-resources/src/main/resources/mainGUI/moa_errorcodes.html index a5702d60d..ba1b12a84 100644 --- a/id/server/moa-id-frontend-resources/src/main/resources/mainGUI/moa_errorcodes.html +++ b/id/server/moa-id-frontend-resources/src/main/resources/mainGUI/moa_errorcodes.html @@ -2,7 +2,7 @@ - MOA-ID 2.0.x + MOA-ID 3.2.x -- cgit v1.2.3 From e4ecb5e5708662b9bccbdaee9b377cda5ced4b86 Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Thu, 3 Nov 2016 16:15:11 +0100 Subject: fix maven build problem --- id/server/idserverlib/pom.xml | 3 +++ 1 file changed, 3 insertions(+) (limited to 'id/server') diff --git a/id/server/idserverlib/pom.xml b/id/server/idserverlib/pom.xml index fb6ba1bc6..3e982d94a 100644 --- a/id/server/idserverlib/pom.xml +++ b/id/server/idserverlib/pom.xml @@ -457,6 +457,9 @@ jar + + -Xdoclint:none + -- cgit v1.2.3