From 43e57a42832ea8b4ceb0317f3c9028a4174ffa7b Mon Sep 17 00:00:00 2001 From: mcentner Date: Wed, 8 Aug 2007 07:25:32 +0000 Subject: Adapted project directory structure to suit the new maven based build process. git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@909 d688527b-c9ab-4aba-bd8d-4036d912da1d --- id/server/doc/moa_id/moa.htm | 248 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 248 insertions(+) create mode 100644 id/server/doc/moa_id/moa.htm (limited to 'id/server/doc/moa_id/moa.htm') diff --git a/id/server/doc/moa_id/moa.htm b/id/server/doc/moa_id/moa.htm new file mode 100644 index 000000000..05a2d3007 --- /dev/null +++ b/id/server/doc/moa_id/moa.htm @@ -0,0 +1,248 @@ + + + MOA Module fuer Online Applikationen + + + + + + + + + +
+ + + + +
+ Module für Online-Applikationen +
+
+  +
+
+Projekt moa  +
+
+ + + + + + + + +
+
MOA-ID

+
+ Allgemein
+ + + + + +
+ +
+
+
+
+ +
Allgemein v.1.4
+

+Dieses Dokument enthält die Dokumentation für das Modul
+

    +
  • MOA-ID (Identifikation)
  • +

+
+ +
+ + + +
+

 

+
+
+
+
+Das Modul Identifikation stellt Online-Applikationen Funktionalität zur Verfügung zu stellen, damit diese +eine Benutzer-Identifikation und -Authentisierung mit Hilfe der Bürgerkarte und deren Signaturfunktion +realisieren können. +

+Das Modul besteht aus zwei Komponenten: +
    +
  • Die Authentisierungskomponente (MOA-ID-AUTH) führt die eigentliche Authentisierung des Benutzers durch und übergibt der +Proxykomponente die Anmeldedaten.
  • +
  • Die Proxykomponente (MOA-ID-PROXY) übernimmt die Anmeldedaten von der Authentisierungskomponente, +führt die Anmeldung an der Online Applikation durch und schleust in der Folge Daten an die Online-Applikation +und Daten an den Benutzer durch.
  • +
+Diese beiden Komponenten können auf unterschiedlichen Rechnern +oder auf dem gleichen Rechner eingesetzt werden. +

+Die Funktionalität und der Aufbau der Schnittstelle zu MOA-ID ist in der +Spezifikation detailliert beschrieben. +
+
+Für den Betrieb von MOA-ID ist der Einsatz von MOA-Signaturprüfung (MOA-SP) erforderlich. +
+ +

+
Ablauf einer Anmeldung
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1Der Benutzer verbindet sich zu einem Web-Portal, über das die verfügbaren Online-Applikationen (OA) erreichbar +sind. Jeder Link zu einer OA verweist auf die Authentisierungs-komponente. +
2Der Benutzer verbindet sich mit MOA-ID-AUTH, die die Authentisierung des +Benutzers durchführt:
2.1MOA-ID-AUTH bietet dem Benutzer optional eine Auswahl von verfügbaren Bürgerkartenumgebungen (engl. Bezeichnung: Security-Layer) an.
2.2MOA-ID-AUTH erzeugt eine HTML-Seite mit einem <InfoboxReadRequest> + zum Auslesen der Personenbindung. Diese HTML-Seite wird an den Browser geschickt.
2.3Der Browser schickt den <InfoboxReadRequest> an den ausgewählten Security-Layer. Der Security-Layer liest die +Personenbindung von der Bürgerkarte und sendet diese an MOA-ID-AUTH, die die Signatur der Personenbindung durch +einen Aufruf von MOA-SP überprüft. +
2.4MOA-ID-AUTH erstellt den AUTH-Block. Der AUTH-Block enthält +
    +
  • Vor- und Nachname aus der Personenbindung,
  • +
  • URL von MOA-ID-AUTH,
  • +
  • URL und Geschäftsbereich der Online-Applikation,
  • +
  • die aktuelle Zeit.
  • +
+Anschließend wird +eine XML Antwortseite, die das Kommando zum Signieren (<CreateXMLSignatureRequest>) des generierten +AUTH-Blocks enthält, an den ausgewählten Security-Layer gesendet.
2.5Der Request wird vom Security-Layer verarbeitet. Die signierten Daten werden an +MOA-ID-AUTH zurückgesendet.
2.6MOA-ID-AUTH überprüft den signierten AUTH-Block und legt für den Benutzer die Anmeldedaten +an. Die Anmeldedaten enthalten +
    +
  • die bereichsspezifische Personenkennzeichen (bPK),
  • +
  • den signierten AUTH-Block (optional),
  • +
  • die Personenbindung (optional),
  • +
  • die PersonData-Struktur aus der Personenbindung (optional),
  • +
  • die Information, ob die Signatur des AUTH-Blocks mit einem qualifiziertem Zertifikat erfolgte,
  • +
  • Informationen zur Behörde, falls die Signatur mit einem Behördenzertifikat erzeugt wurde.
  • +
+
2.7Ist der obige Authentisierungsvorgang erfolgreich, dann wird eine Redirect-Seite +zum Browser gesendet.
3Der Browser führt das Redirect zur Proxykomponente durch. Als Parameter wird das von MOA-ID-AUTH +erzeugte SAML-Artifact übergeben.
4Die Proxykomponente verwendet dieses eindeutige SAML-Artifact, um die Anmeldedaten +von MOA-ID-AUTH zu erhal-ten. Danach werden die Anmeldedaten in MOA-ID-AUTH gelöscht.
5MOA-ID-PROXY liest die Konfigurationsdatei der zugehörigen Online-Applikation, die beschreibt, wie die Anmeldedaten +an die nachfolgende Applikation übergeben werden müssen, und meldet den Benutzer bei der Applikation an.
6Ist die betreffende OA als stateless konfiguriert, so werden in weiterer Folge die Antworten der OA +an den Benutzer weitergeleitet und die Anfragen des Benutzers an die OA weitergeleitet.
+ + +
+

+ + + + + +

+
+
© 2004
+
+
+ + +
+ + -- cgit v1.2.3 From 68af85701b6f797b0d662b89b95e043ee949defd Mon Sep 17 00:00:00 2001 From: mcentner Date: Fri, 2 Jul 2010 07:14:41 +0000 Subject: Merged branch 1.4.7_MOASP_TSL back into trunk. git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@1165 d688527b-c9ab-4aba-bd8d-4036d912da1d --- common/.classpath | 24 +- common/.settings/org.eclipse.wst.common.component | 15 +- common/pom.xml | 4 +- .../java/at/gv/egovernment/moa/util/Constants.java | 6 +- .../at/gv/egovernment/moa/util/StringUtils.java | 14 + .../schemas/MOA-ID-Configuration-1.4.7.xsd | 625 +++++++++++++++++++++ .../resources/resources/schemas/MOA-SPSS-1.4.7.xsd | 486 ++++++++++++++++ .../resources/schemas/MOA-SPSS-config-1.4.7.xsd | 270 +++++++++ id/history.txt | 7 + id/pom.xml | 4 +- id/readme_1.4.7.txt | 304 ++++++++++ .../.settings/org.eclipse.wst.common.component | 36 +- id/server/auth/pom.xml | 4 +- id/server/auth/src/main/webapp/WEB-INF/web.xml | 22 + .../conf/moa-id/SampleMOAIDConfiguration.xml | 8 +- .../conf/moa-id/SampleMOAIDConfigurationProxy.xml | 12 +- .../SampleMOAIDConfiguration_withTestBKs.xml | 12 +- .../SampleMOAIDConfiguration_withTestBKsProxy.xml | 12 +- .../conf/moa-id/SampleMOAWIDConfiguration.xml | 12 +- .../conf/moa-id/SampleMOAWIDConfigurationProxy.xml | 12 +- .../SampleMOAWIDConfiguration_withTestBKs.xml | 12 +- .../SampleMOAWIDConfiguration_withTestBKsProxy.xml | 12 +- .../transforms/TransformsInfoAuthBlockTable_DE.xml | 161 ++++++ .../transforms/TransformsInfoAuthBlockTable_EN.xml | 161 ++++++ .../conf/moa-spss/SampleMOASPSSConfiguration.xml | 8 + .../profiles/MOAIDTransformAuthBlockTable_DE.xml | 159 ++++++ .../profiles/MOAIDTransformAuthBlockTable_EN.xml | 159 ++++++ id/server/data/deploy/demo/demoseite.zip | Bin 0 -> 225100 bytes id/server/doc/MOA-ID-Configuration-1.2.xsd | 350 ------------ id/server/doc/MOA-ID-Configuration-1.3.xsd | 424 -------------- id/server/doc/MOA-ID-Configuration-1.4.2.xsd | 616 -------------------- id/server/doc/MOA-ID-Configuration-1.4.3.xsd | 612 -------------------- id/server/doc/MOA-ID-Configuration-1.4.7.xsd | 624 ++++++++++++++++++++ id/server/doc/MOA-ID-Configuration-1.4.xsd | 505 ----------------- id/server/doc/moa_id/id-admin.htm | 15 +- id/server/doc/moa_id/id-admin_1.htm | 8 +- id/server/doc/moa_id/id-admin_2.htm | 42 +- id/server/doc/moa_id/links.htm | 42 +- id/server/doc/moa_id/moa.htm | 2 +- id/server/idserverlib/.classpath | 22 +- .../.settings/org.eclipse.wst.common.component | 15 +- id/server/idserverlib/pom.xml | 8 +- .../moa/id/auth/AuthenticationServer.java | 417 +++++++++++++- .../moa/id/auth/MOAIDAuthConstants.java | 4 + .../moa/id/auth/WrongParametersException.java | 8 +- .../AuthenticationBlockAssertionBuilder.java | 81 ++- .../CreateXMLSignatureRequestBuilderForeign.java | 126 +++++ .../InfoboxReadRequestBuilderCertificate.java | 94 ++++ .../builder/VerifyXMLSignatureRequestBuilder.java | 62 ++ .../moa/id/auth/data/AuthenticationSession.java | 16 +- .../id/auth/data/CreateXMLSignatureResponse.java | 32 +- .../parser/CreateXMLSignatureResponseParser.java | 26 + .../id/auth/parser/InfoboxReadResponseParser.java | 51 ++ .../moa/id/auth/servlet/AuthServlet.java | 1 + .../moa/id/auth/servlet/GetForeignIDServlet.java | 287 ++++++++++ .../auth/servlet/ProcessValidatorInputServlet.java | 9 +- .../moa/id/auth/servlet/SelectBKUServlet.java | 12 + .../auth/servlet/StartAuthenticationServlet.java | 25 +- .../servlet/VerifyAuthenticationBlockServlet.java | 13 +- .../id/auth/servlet/VerifyCertificateServlet.java | 286 ++++++++++ .../id/auth/servlet/VerifyIdentityLinkServlet.java | 57 +- .../CreateXMLSignatureResponseValidator.java | 116 ++-- .../client/szrgw/CreateIdentityLinkResponse.java | 27 + .../validator/parep/client/szrgw/SZRGWClient.java | 133 ++++- .../moa/id/config/ConfigurationBuilder.java | 50 +- .../moa/id/config/ConnectionParameter.java | 9 + .../gv/egovernment/moa/id/config/OAParameter.java | 24 + .../moa/id/config/TargetToSectorNameMapper.java | 67 +++ .../moa/id/config/TargetsAndSectorNames.java | 194 +++++++ .../id/config/auth/AuthConfigurationProvider.java | 19 + .../moa/id/config/auth/OAAuthParameter.java | 86 +-- .../moa/id/proxy/DefaultConnectionBuilder.java | 3 +- .../id/proxy/DefaultLoginParameterResolver.java | 5 +- .../moa/id/proxy/ElakConnectionBuilder.java | 4 +- .../moa/id/proxy/EnhancedConnectionBuilder.java | 7 +- .../moa/id/proxy/servlet/ProxyServlet.java | 6 +- .../moa/id/util/ParamValidatorUtils.java | 158 ++++++ .../at/gv/egovernment/moa/id/util/SSLUtils.java | 8 +- .../gv/egovernment/moa/id/util/ServletUtils.java | 29 + .../resources/properties/id_messages_de.properties | 1 + id/server/pom.xml | 4 +- .../.settings/org.eclipse.wst.common.component | 34 +- id/server/proxy/pom.xml | 4 +- .../.settings/org.eclipse.wst.common.component | 16 +- id/templates/pom.xml | 2 +- pom.xml | 13 +- .../iaik/prod/iaik_moa/1.27/iaik_moa-1.27.jar | Bin 0 -> 711034 bytes .../iaik/prod/iaik_moa/maven-metadata-local.xml | 12 + .../.settings/org.eclipse.wst.common.component | 16 +- .../clients/webservice/conf/http.properties | 2 +- .../handbook/config/MOA-SPSS-config-1.4.5.xsd | 268 --------- .../handbook/config/MOA-SPSS-config-1.4.7.xsd | 270 +++++++++ spss/handbook/handbook/config/config.html | 10 +- spss/handbook/handbook/faq/faq.html | 2 +- spss/handbook/handbook/index.html | 2 +- spss/handbook/handbook/install/install.html | 4 +- spss/handbook/handbook/intro/intro.html | 2 +- spss/handbook/handbook/spec/MOA-SPSS-1.3.wsdl | 2 +- spss/handbook/handbook/usage/usage.html | 6 +- spss/pom.xml | 2 +- spss/server/history.txt | 13 + spss/server/readme.update.txt | 13 +- spss/server/serverlib/.classpath | 22 +- .../.settings/org.eclipse.wst.common.component | 15 +- spss/server/serverlib/pom.xml | 2 +- .../gv/egovernment/moa/spss/api/SPSSFactory.java | 24 +- .../VerifyCMSSignatureResponseElement.java | 7 + .../moa/spss/api/common/CheckTSLResult.java | 40 ++ .../moa/spss/api/impl/CheckTSLResultImpl.java | 66 +++ .../moa/spss/api/impl/SPSSFactoryImpl.java | 18 +- .../VerifyCMSSignatureResponseElementImpl.java | 17 +- .../api/impl/VerifyXMLSignatureResponseImpl.java | 17 +- .../moa/spss/api/xmlbind/ResponseBuilderUtils.java | 35 ++ .../xmlbind/VerifyCMSSignatureResponseBuilder.java | 9 + .../xmlbind/VerifyXMLSignatureResponseBuilder.java | 7 + .../api/xmlverify/VerifyXMLSignatureResponse.java | 10 + .../server/config/ConfigurationPartsBuilder.java | 36 +- .../moa/spss/server/config/TrustProfile.java | 16 +- .../invoke/CMSSignatureVerificationInvoker.java | 11 +- .../invoke/VerifyCMSSignatureResponseBuilder.java | 66 ++- .../invoke/VerifyXMLSignatureResponseBuilder.java | 17 +- .../invoke/XMLSignatureVerificationInvoker.java | 44 +- .../properties/spss_messages_de.properties | 4 +- .../.settings/org.eclipse.wst.common.component | 28 +- .../serverws/resources/wsdl/MOA-SPSS-1.3.wsdl | 2 +- 125 files changed, 6362 insertions(+), 3247 deletions(-) create mode 100644 common/src/main/resources/resources/schemas/MOA-ID-Configuration-1.4.7.xsd create mode 100644 common/src/main/resources/resources/schemas/MOA-SPSS-1.4.7.xsd create mode 100644 common/src/main/resources/resources/schemas/MOA-SPSS-config-1.4.7.xsd create mode 100644 id/readme_1.4.7.txt create mode 100644 id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_DE.xml create mode 100644 id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_EN.xml create mode 100644 id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_DE.xml create mode 100644 id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_EN.xml create mode 100644 id/server/data/deploy/demo/demoseite.zip delete mode 100644 id/server/doc/MOA-ID-Configuration-1.2.xsd delete mode 100644 id/server/doc/MOA-ID-Configuration-1.3.xsd delete mode 100644 id/server/doc/MOA-ID-Configuration-1.4.2.xsd delete mode 100644 id/server/doc/MOA-ID-Configuration-1.4.3.xsd create mode 100644 id/server/doc/MOA-ID-Configuration-1.4.7.xsd delete mode 100644 id/server/doc/MOA-ID-Configuration-1.4.xsd create mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilderForeign.java create mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/InfoboxReadRequestBuilderCertificate.java create mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GetForeignIDServlet.java create mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyCertificateServlet.java create mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/CreateIdentityLinkResponse.java create mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/TargetToSectorNameMapper.java create mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/TargetsAndSectorNames.java create mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ParamValidatorUtils.java create mode 100644 repository/iaik/prod/iaik_moa/1.27/iaik_moa-1.27.jar create mode 100644 repository/iaik/prod/iaik_moa/maven-metadata-local.xml delete mode 100644 spss/handbook/handbook/config/MOA-SPSS-config-1.4.5.xsd create mode 100644 spss/handbook/handbook/config/MOA-SPSS-config-1.4.7.xsd create mode 100644 spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/common/CheckTSLResult.java create mode 100644 spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/impl/CheckTSLResultImpl.java (limited to 'id/server/doc/moa_id/moa.htm') diff --git a/common/.classpath b/common/.classpath index acbdc4f5b..2ea0c3c6d 100644 --- a/common/.classpath +++ b/common/.classpath @@ -1,10 +1,14 @@ - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/common/.settings/org.eclipse.wst.common.component b/common/.settings/org.eclipse.wst.common.component index 41f61a290..6351b73de 100644 --- a/common/.settings/org.eclipse.wst.common.component +++ b/common/.settings/org.eclipse.wst.common.component @@ -1,8 +1,7 @@ - - - - - - - - + + + + + + + diff --git a/common/pom.xml b/common/pom.xml index d95c642e8..93a4cb259 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -2,12 +2,12 @@ MOA MOA - 1.4.6 + 1.4.7 4.0.0 MOA moa-common - 1.4.6 + 1.4.7 jar MOA common library diff --git a/common/src/main/java/at/gv/egovernment/moa/util/Constants.java b/common/src/main/java/at/gv/egovernment/moa/util/Constants.java index 993026c57..6a42720c0 100644 --- a/common/src/main/java/at/gv/egovernment/moa/util/Constants.java +++ b/common/src/main/java/at/gv/egovernment/moa/util/Constants.java @@ -74,7 +74,7 @@ public interface Constants { /** Local location of the MOA XML schema definition. */ public static final String MOA_SCHEMA_LOCATION = - SCHEMA_ROOT + "MOA-SPSS-1.3.xsd"; + SCHEMA_ROOT + "MOA-SPSS-1.4.7.xsd"; /** URI of the MOA configuration XML namespace. */ public static final String MOA_CONFIG_NS_URI = @@ -92,11 +92,11 @@ public interface Constants { /** Local location of the MOA configuration XML schema definition. */ public static final String MOA_CONFIG_SCHEMA_LOCATION = - SCHEMA_ROOT + "MOA-SPSS-config-1.4.5.xsd"; + SCHEMA_ROOT + "MOA-SPSS-config-1.4.7.xsd"; /** Local location of the MOA ID configuration XML schema definition. */ public static final String MOA_ID_CONFIG_SCHEMA_LOCATION = - SCHEMA_ROOT + "MOA-ID-Configuration-1.4.3.xsd"; + SCHEMA_ROOT + "MOA-ID-Configuration-1.4.7.xsd"; /** URI of the Security Layer 1.0 namespace. */ public static final String SL10_NS_URI = diff --git a/common/src/main/java/at/gv/egovernment/moa/util/StringUtils.java b/common/src/main/java/at/gv/egovernment/moa/util/StringUtils.java index 84f7e8f04..dbc2b5011 100644 --- a/common/src/main/java/at/gv/egovernment/moa/util/StringUtils.java +++ b/common/src/main/java/at/gv/egovernment/moa/util/StringUtils.java @@ -152,4 +152,18 @@ public class StringUtils { } } + /** + * Checks if String is empty + * @param s String to be checked if empty + * @return True if String is empty, false otherwise + */ + public static boolean isEmpty(String s) { + if (s == null || s.length() == 0) + return true; + else + return false; + + } + + } diff --git a/common/src/main/resources/resources/schemas/MOA-ID-Configuration-1.4.7.xsd b/common/src/main/resources/resources/schemas/MOA-ID-Configuration-1.4.7.xsd new file mode 100644 index 000000000..dffca2167 --- /dev/null +++ b/common/src/main/resources/resources/schemas/MOA-ID-Configuration-1.4.7.xsd @@ -0,0 +1,625 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + enthält Parameter der Authentisierungs-Komponente + + + + + enthält Konfigurationsparameter der Proxy-Komponente + + + + + + enthält Parameter für die Kommunikation zw. Proxykomponente und Authenttisierungskomponente + + + + + + enthält Parameter für die SOAP-Verbindung von der Proxy-Komponente zur Auth-Komponente (vgl. AuthComponent/MOA-SP/ConnectionParameter) + + + + + + + + + + + enthält Parameter für die OA + + + + + + + + + + + + + + + + + + + + + + + spezifiziert den Algorithmus ("pkix" oder "chaining") für die Zertifikatspfadvalidierung + + + + + + ein vom SystemDefaultMode abweichender ChiningMode kann für jeden TrustAnchor gesetzt werden + + + + + + + + + + + + + + + + verweist auf ein Verzeichnis, das vertrauenswürdige CA (Zwischen-CA, Wurzel-CA) Zertifikate enthält. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + enthält Parameter für die Kommunikation mit dem Security-Layer + + + + + + + + + + enthält Konfiguratiosnparameter für die Kommunikation mit dem MOA SP Modul + + + + + + enthält Parameter für die SOAP-Verbindung von der AUTH-Komponente zu MOA-SP; das Attribut URL enthält den Endpunkt des Server; wird das Schema "https" verwendet müssen die Kind-Elemente angegeben werden; wird das Schema "http" verwendet dürfen keine Kind-Elemente angegeben werden; wird das Element nicht verwendet dann wird MOA-SP über das API aufgerufen + + + + + enthält Parameter für die Überprüfung der Personenbindung + + + + + + + + + + enthält Parameter für die Überprüfung des AUTH-Blocks + + + + + + + + + + + + + + enthält Informationen über akzeptierte Signers des IdentityLinks + + + + + + akzeptierte Signer des IdentityLinks werden per X509SubjectName (Kodierung nach RFC 2253) identifiziert + + + + + + + + enthält Defaultparameter für die Überprüfung weiterer Infoboxen + + + + + + + + Default Verbindungsparameter zum SZR-Gateway (GetIdentityLink) + + + + + + + + + + das Attribut filename verweist auf eine Datei mit globalem Element TransformsInfo vom Typ sl10:TransformsInfo; diese TransformsInfo werden in den CreateXMLSignatureRequest für die Signatur des AUTH-Blocks inkludiert + + + + + + + + + + + + + das Attribut URL spezifiziert die Lage des Templates + + + + + + Verifikation zusätzlicher Infoboxen + + + + + Optionales DefaultTrustprofil für die Überprüfung aller weiteren Infoboxen + + + + + + + + + + Parameter für Überprüfung weiterer Infoboxen + + + + + + + Parameter zur Überprüfung einzelner Infoboxen + + + + + optionalervName, der für Fehlermeldungen verwendet werden soll; z.B.: "Stellvertretungen" für "Mandates"; fehlt dieser Parameter, dann wird das Identifier-Attribut verwendet + + + + + TrustProfil, das für die Überprüfung der Infobox verwendet werden soll + + + + + Validatorklasse, die für die Prüfung der Infobox verwendet werden soll; muss gesetzt werden, wenn Package- und Klassenname vom Default Package- und Klassennamen abweichen + + + + + + Infobox spezifische Parameter, die der jeweiligen Prüfapplikation übergeben werden + + + + + + + + + + Infobox spezifische Parameter, die der Prüfapplikation für berufliche Parteienvertretung übergeben werden. Dies ist logisch Teil der ApplicationSpecificParameters, kann jedoch aufgrund der Strukturierung validierend geparst werden und dadurch wird eine funktionierende Konfiguration bei Programmstart garantiert. + + + + + + Falls Infoboxinhalte für die berufliche Parteienvertretung in der Vollmachten Infobox "mandates" abgelegt werden und Vertretung für berufliche Parteienvertreter aktiviert ist, so kann mit diesem Schalter die Vollmachtsprüfung für normale Vollmachten deaktiviert werden. Damit wird erreicht, dass mittels der Vollmachten Infobox ausschließlich berufliche Parteienvertretung aktiviert ist. Dieser Schalter ist nur für die Vollmachten Infobox "mandates" relevant. + + + + + Eigentlicher Konfigurationsteil für berufliche Parteienvertretung + + + + + + + + + + + + + + Spezifiziert die Lage von XML Schemas + + + + + + + + + + + + + + + + enthält Parameter über die OA, die die Authentisierungs-Komponente betreffen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + enthält Parameter über die OA, die die Proxy-Komponente betreffen + + + + + + enthält Parameter über die OA, die die Proxy-Komponente betreffen + + + + + + + + + + + + + + + + + + URL zu einem Verzeichnis, das akzeptierte Server-Zertifikate der TLS-Verbindung enthält (keine CA-Zertifikate) + + + + + + + + + + + + URL zu einem KeyStore, der den privaten Schlüssel, der für die TLS-Client-Authentisierung verwendet wird, enthält + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Soll nicht nur bei leerer oder standardisierter Vollmacht mit unvollständigen Daten, sondern beispielsweise zu Kontrollzwecken das Eingabeformular immer angezeigt werden, wenn ein Einschreiten durch berufliche Parteienvertretung geschieht so kann dies mittels dieses Schalters veranlasst werden + + + + + + + + + + + Das Attribut spezifiziert die Lage des Templates, welches der InputProcessor zur Darstellung des Eingabeformulars nutzen soll + + + + + + + + + + Default InputProcessor. Konfiguration eines vom Standardprozess abweichenden Verarbeitungsvorgangs bei der beruflichen Parteienvertretung. Der Wert dieses Elements ist der vollständige Klassenname des InputProzessors + + + + + Default Wert für Formularanzeige. Soll nicht nur bei leerer oder standardisierter Vollmacht mit unvollständigen Daten, sondern beispielsweise zu Kontrollzwecken das Eingabeformular zur vervollständigung der Vertretenendaten immer angezeigt werden, wenn ein Einschreiten durch berufliche Parteienvertretung geschieht so kann dies mittels dieses Schalters veranlasst werden + + + + + Default Verbindungsparameter zum SZR-Gateway (für den EGIZ-Demonstrator im internen Netzwerk: https://129.27.142.5:8443/szr-gateway/services/MandateCreation) + + + + + Falls keine speziellen beruflichen ParteienvertreterInnen definiert sind (Element kommt nicht vor), werden ausschließlich standardisierte Vollmachten mit einer MandateID="*" akzeptiert + + + + + + + + + Konfiguration eines vom Standardprozess abweichenden Verarbeitungsvorgangs bei der beruflichen Parteienvertretung. Der Wert dieses Elements ist der vollständige Klassenname des InputProzessors + + + + + + Optionale Verbindungsparameter zu speziellem (SZR-)Gateway + + + + + + OID der Parteienvertretung lt. "Object Identifier der öffentlichen Verwaltung" - Konvention, Empfehlung. Diese ID muss mit der MandateID der übermittelten standardisierten Vollmacht übereinstimmen. Eine Parteienvertretung für standardisierte Vollmachten mit der MandateID "*" muss nicht definiert werden und erlaubt eine allgemeine berufliche Parteienvertretung mit Standardtexten. In anderen Fällen ist eine erlaubte OID mitttels dieses Attributs zu definieren + + + + + + Legt fest, ob berufliche Parteienvertretung für natürliche Personen erlaubt ist + + + + + + + + Legt fest, ob berufliche Parteienvertretung für juristische Personen erlaubt ist (welche z.B. ein Organwalter nicht vertreten darf und dieser Wert aus diesem Grund dort false sein muss) + + + + + + + + Beschreibender Text, der an Stelle des Standardtexts bei der Signatur der Anmeldedaten im Falle einer vorliegenden beruflichen Parteienvertretung zur Signatur vorgelegt wird + + + + + diff --git a/common/src/main/resources/resources/schemas/MOA-SPSS-1.4.7.xsd b/common/src/main/resources/resources/schemas/MOA-SPSS-1.4.7.xsd new file mode 100644 index 000000000..e3b06b416 --- /dev/null +++ b/common/src/main/resources/resources/schemas/MOA-SPSS-1.4.7.xsd @@ -0,0 +1,486 @@ + + + + + + + + + + + + + + + + + + + + + Ermöglichung der Stapelsignatur durch wiederholte Angabe dieses Elements + + + + + + + + + + + + + + + + + + + Auswahl: Entweder explizite Angabe des Signaturorts sowie ggf. sinnvoller Supplements im Zshg. mit der Signaturumgebung, oder Verweis auf ein benanntes Profil + + + + + + + + + + + + + + + + + + Kardinalität 1..oo erlaubt die Antwort auf eine Stapelsignatur-Anfrage + + + + Resultat, falls die Signaturerstellung erfolgreich war + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert + + + + + + + + + + + only ds:X509Data and RetrievalMethod is supported; QualifiedCertificate is included as X509Data/any;publicAuthority is included as X509Data/any + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Pro dsig:Reference-Element in der zu überprüfenden XML-Signatur muss hier ein ReferenceInfo-Element erscheinen. Die Reihenfolge der einzelnen ReferenceInfo Elemente entspricht jener der dsig:Reference Elemente in der XML-Signatur. + + + + + + + + + + mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert + + + + + + + + + + + only ds:X509Data and ds:RetrievalMethod is supported; QualifiedCertificate is included as X509Data/any; PublicAuthority is included as X509Data/any + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Auswahl: Entweder explizite Angabe EINER Transformationskette inklusive ggf. sinnvoller Supplements oder Verweis auf ein benanntes Profil + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Resultat, falls die Signaturerstellung gescheitert ist + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ein oder mehrere Transformationswege können von der Applikation an MOA mitgeteilt werden. Die zu prüfende Signatur hat zumindest einem dieser Transformationswege zu entsprechen. Die Angabe kann explizit oder als Profilbezeichner erfolgen. + + + + + Profilbezeichner für einen Transformationsweg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Die Angabe des Transformationsparameters (explizit oder als Hashwert) kann unterlassen werden, wenn die Applikation von der Unveränderlichkeit des Inhalts der in "Transformationsparamter", Attribut "URI" angegebenen URI ausgehen kann. + + + + Der Transformationsparameter explizit angegeben. + + + + + Der Hashwert des Transformationsparameters. + + + + + + + + + + + + + + + + + + + + + + Explizite Angabe des Transformationswegs + + + + + + + Alle impliziten Transformationsparameter, die zum Durchlaufen der oben angeführten Transformationskette bekannt sein müssen, müssen hier angeführt werden. Das Attribut "URI" bezeichnet den Transformationsparameter in exakt jener Weise, wie er in der zu überprüfenden Signatur gebraucht wird. + + + + + + + + + + + + + + + + diff --git a/common/src/main/resources/resources/schemas/MOA-SPSS-config-1.4.7.xsd b/common/src/main/resources/resources/schemas/MOA-SPSS-config-1.4.7.xsd new file mode 100644 index 000000000..a61eed289 --- /dev/null +++ b/common/src/main/resources/resources/schemas/MOA-SPSS-config-1.4.7.xsd @@ -0,0 +1,270 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/id/history.txt b/id/history.txt index fda9d59c4..00faecd7d 100644 --- a/id/history.txt +++ b/id/history.txt @@ -2,6 +2,13 @@ Dieses Dokument zeigt die Ver von MOA-ID auf. History MOA-ID: +===== +Version MOA-ID 1.4.7: Änderungen seit Version MOA-ID 1.4.6: + +- Fixed Bug #485 (https://egovlabs.gv.at/tracker/index.php?func=detail&aid=485&group_id=6&atid=105) +- IAIK Libraries aktualisiert: + iaik-moa: Version 1.27 + ===== Version MOA-ID 1.4.6: Änderungen seit Version MOA-ID 1.4.5: diff --git a/id/pom.xml b/id/pom.xml index 04ce2712b..acb29f9e6 100644 --- a/id/pom.xml +++ b/id/pom.xml @@ -3,14 +3,14 @@ MOA MOA - 1.4.6 + 1.4.7 4.0.0 MOA id pom - 1.4.6 + 1.4.7 MOA ID diff --git a/id/readme_1.4.7.txt b/id/readme_1.4.7.txt new file mode 100644 index 000000000..5ce6ad552 --- /dev/null +++ b/id/readme_1.4.7.txt @@ -0,0 +1,304 @@ +=============================================================================== +MOA ID Version 1.4.7 - Wichtige Informationen zur Installation +=============================================================================== + +------------------------------------------------------------------------------- +A. Neuerungen/Änderungen +------------------------------------------------------------------------------- + +Mit MOA ID Version 1.4.7 wurden folgende Neuerungen eingeführt, die jetzt +erstmals in der Veröffentlichung enthalten sind (siehe auch history.txt im +gleichen Verzeichnis): + +- Fixed Bug #485 (https://egovlabs.gv.at/tracker/index.php?func=detail&aid=485&group_id=6&atid=105) +- IAIK Libraries aktualisiert: + iaik-moa: Version 1.27 + +------------------------------------------------------------------------------- +B. Durchführung eines Updates +------------------------------------------------------------------------------- + +Es wird generell eine Neuinstallation lt. Handbuch empfohlen! Dennoch ist auch +eine Aktualisierung bestehender Installationen möglich. + +............................................................................... +B.1 Durchführung eines Updates von Version 1.4.5 oder 1.4.6 +............................................................................... + +1. Stoppen Sie den Tomcat, in dem Ihre bisherige Installation betrieben wird. + Fertigen Sie eine Sicherungskopie Ihrer kompletten Tomcat-Installation an. + +2. Entpacken Sie die Distribution von MOA ID Auth (moa-id-auth-1.4.7.zip) in + ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_AUTH_INST + bezeichnet. + Für MOA ID Proxy: + Entpacken Sie die Distribution von MOA ID Proxy (moa-id-proxy-1.4.7.zip) in + ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_PROXY_INST + bezeichnet. + +3. Wechseln Sie in jenes Verzeichnis, das die Webapplikation von MOA ID Auth + beinhaltet (für gewöhnlich ist dieses Verzeichnis CATALINA_HOME_ID/webapps, + wobei CATALINA_HOME_ID für das Basisverzeichnis der Tomcat-Installation + für MOA ID steht). Löschen Sie darin sowohl die Datei moa-id-auth.war als + auch das komplette Verzeichnis moa-id-auth. + Für MOA ID Proxy: + Wechseln Sie in jenes Verzeichnis, das die Webapplikation von MOA ID Proxy + beinhaltet (für gewöhnlich ist dieses Verzeichnis CATALINA_HOME_ID/webapps, + wobei CATALINA_HOME_ID für das Basisverzeichnis der Tomcat-Installation + für MOA ID steht). Löschen Sie darin sowohl die Datei moa-id-proxy.war als + auch das komplette Verzeichnis moa-id-proxy. + +4. Kopieren Sie die Datei MOA_ID_AUTH_INST/moa-id-auth.war nach + CATALINA_HOME_ID/webapps. + Für MOA ID Proxy: + Kopieren Sie die Datei MOA_ID_PROXY_INST/moa-id-proxy.war nach + CATALINA_HOME_ID/webapps. + +5. Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im + Logging von MOA ID beim Einlesen der erneuerten Konfiguration. + +............................................................................... +B.1 Durchführung eines Updates von Version 1.4.3 oder 1.4.4 +............................................................................... + +1. Stoppen Sie den Tomcat, in dem Ihre bisherige Installation betrieben wird. + Fertigen Sie eine Sicherungskopie Ihrer kompletten Tomcat-Installation an. + +2. Entpacken Sie die Distribution von MOA ID Auth (moa-id-auth-1.4.5.zip) in + ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_AUTH_INST + bezeichnet. + Für MOA ID Proxy: + Entpacken Sie die Distribution von MOA ID Proxy (moa-id-proxy-1.4.5.zip) in + ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_PROXY_INST + bezeichnet. + +3. Wechseln Sie in jenes Verzeichnis, das die Webapplikation von MOA ID Auth + beinhaltet (für gewöhnlich ist dieses Verzeichnis CATALINA_HOME_ID/webapps, + wobei CATALINA_HOME_ID für das Basisverzeichnis der Tomcat-Installation + für MOA ID steht). Löschen Sie darin sowohl die Datei moa-id-auth.war als + auch das komplette Verzeichnis moa-id-auth. + Für MOA ID Proxy: + Wechseln Sie in jenes Verzeichnis, das die Webapplikation von MOA ID Proxy + beinhaltet (für gewöhnlich ist dieses Verzeichnis CATALINA_HOME_ID/webapps, + wobei CATALINA_HOME_ID für das Basisverzeichnis der Tomcat-Installation + für MOA ID steht). Löschen Sie darin sowohl die Datei moa-id-proxy.war als + auch das komplette Verzeichnis moa-id-proxy. + +4. Kopieren Sie die Datei MOA_ID_AUTH_INST/moa-id-auth.war nach + CATALINA_HOME_ID/webapps. + Für MOA ID Proxy: + Kopieren Sie die Datei MOA_ID_PROXY_INST/moa-id-proxy.war nach + CATALINA_HOME_ID/webapps. + +5. Erstellen Sie eine Sicherungskopie aller "iaik*.jar"-Dateien im Verzeichnis + JAVA_HOME\jre\lib\ext und löschen Sie diese Dateien danach. + +6. Kopieren Sie alle Dateien aus dem Verzeichnis MOA_ID_INST_AUTH\ext in das + Verzeichnis JAVA_HOME\jre\lib\ext. + +7. Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im + Logging von MOA ID beim Einlesen der erneuerten Konfiguration. + +............................................................................... +B.2 Durchführung eines Updates von Version 1.4.1 oder 1.4.2 (incl. beta 1) +............................................................................... + +1. Stoppen Sie den Tomcat, in dem Ihre bisherige Installation betrieben wird. + Fertigen Sie eine Sicherungskopie Ihrer kompletten Tomcat-Installation an. + +2. Entpacken Sie die Distribution von MOA ID Auth (moa-id-auth-1.4.5.zip) in + ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_AUTH_INST + bezeichnet. + +3. Wechseln Sie in jenes Verzeichnis, das die Webapplikation von MOA ID Auth + beinhaltet (für gewöhnlich ist dieses Verzeichnis CATALINA_HOME_ID/webapps, + wobei CATALINA_HOME_ID für das Basisverzeichnis der Tomcat-Installation + für MOA ID steht). Löschen Sie darin sowohl die Datei moa-id-auth.war als + auch das komplette Verzeichnis moa-id-auth. + +4. Kopieren Sie die Datei MOA_ID_AUTH_INST/moa-id-auth.war nach + CATALINA_HOME_ID/webapps. + +5. Kopieren Sie die vier Dateien aus dem Verzeichnis + MOA_ID_AUTH_INST/conf/moa-id/transforms in das Verzeichnis transforms Ihres + Stammverzeichnisses für die MOA ID Konfiguration (für gewöhnlich lautet + dieses Stammverzeichnis CATALINA_HOME_ID/conf/moa-id; in weiterer Folge wird + davon ausgegangen). + +6. Kopieren Sie die vier Dateien aus dem Verzeichnis + MOA_ID_AUTH_INST/conf/moa-spss/profiles in das Verzeichnis profiles Ihres + Stammverzeichnisses für die MOA SPSS Konfiguration (für gewöhnlich lautet + dieses Stammverzeichnis CATALINA_HOME_SPSS/conf/moa-spss, wobei + CATALINA_HOME_SPSS für das Basisverzeichnis der Tomcat-Installation + für MOA SPSS steht; wenn Sie MOA SPSS nicht als eigenes Webservice + betreiben, sondern es von MOA ID über die API-Schnittstelle angesprochen + wird, lautet dieses Stammverzeichnis für gewöhnlich + CATALINA_HOME_ID/conf/moa-spss. + +7. Sichern Sie ihre MOA-ID Konfigurationsdatei. Kopieren Sie die + Beispielkonfigurationsdateien aus dem Verzeichnis + MOA_ID_AUTH_INST/conf/moa-id/SampleMOA*.xml nach + CATALINA_HOME_ID/conf/moa-id. + Verwenden Sie in Ihrer Installation bereits die Vollmachtenprüfung, so + verschieben Sie bitte in der MOA-ID Installationsdatei das Element + innerhalb des Konfigurationsteiles für die berufliche + Parteienvertreung (ParepSpecificParameters) unter das Element + ApplicationSpecificParameters. + +8. Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im + Logging von MOA ID beim Einlesen der erneuerten Konfiguration. + +............................................................................... +B.3 Durchführung eines Updates von Version 1.3.1, 1.3.2 oder 1.3.3 +............................................................................... + +1. Stoppen Sie den Tomcat, in dem Ihre bisherige Installation betrieben wird. + Fertigen Sie eine Sicherungskopie Ihrer kompletten Tomcat-Installation an. + +2. Entpacken Sie die Distribution von MOA ID Auth (moa-id-auth-1.4.5.zip) in + ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_AUTH_INST + bezeichnet. + +3. Erstellen Sie eine Sicherungskopie aller "iaik*.jar"-Dateien im Verzeichnis + JAVA_HOME\jre\lib\ext und löschen Sie diese Dateien danach. + +4. Kopieren Sie alle Dateien aus dem Verzeichnis MOA_ID_INST_AUTH\ext in das + Verzeichnis JAVA_HOME\jre\lib\ext. + +5. Erstellen Sie eine Sicherungskopie aller Dateien im Verzeichnis + CATALINA_HOME\common\endorsed und löschen Sie die dort eventuell vorhandene + Dateien xmlParserAPIs.jar + +6. Kopieren Sie die Dateien aus dem Verzeichnis MOA_ID_INST_AUTH\endorsed + in das Verzeichnis CATALINA_HOME\common\endorsed. Überschreiben Sie dabei + etwaige gleichnamige Dateien. + +7. Wechseln Sie in jenes Verzeichnis, das die Webapplikation von MOA ID Auth + beinhaltet (für gewöhnlich ist dieses Verzeichnis CATALINA_HOME_ID/webapps, + wobei CATALINA_HOME_ID für das Basisverzeichnis der Tomcat-Installation + für MOA ID steht). Löschen Sie darin sowohl die Datei moa-id-auth.war als + auch das komplette Verzeichnis moa-id-auth. + +8. Kopieren Sie die Datei MOA_ID_AUTH_INST/moa-id-auth.war nach + CATALINA_HOME_ID/webapps. + +9. Kopieren Sie die vier Dateien aus dem Verzeichnis + MOA_ID_AUTH_INST/conf/moa-id/transforms in das Verzeichnis transforms Ihres + Stammverzeichnisses für die MOA ID Konfiguration (für gewöhnlich lautet + dieses Stammverzeichnis CATALINA_HOME_ID/conf/moa-id; in weiterer Folge wird + davon ausgegangen). + +10.Kopieren Sie die vier Dateien aus dem Verzeichnis + MOA_ID_AUTH_INST/conf/moa-spss/profiles in das Verzeichnis profiles Ihres + Stammverzeichnisses für die MOA SPSS Konfiguration (für gewöhnlich lautet + dieses Stammverzeichnis CATALINA_HOME_SPSS/conf/moa-spss, wobei + CATALINA_HOME_SPSS für das Basisverzeichnis der Tomcat-Installation + für MOA SPSS steht; wenn Sie MOA SPSS nicht als eigenes Webservice + betreiben, sondern es von MOA ID über dmie API-Schnittstelle angesprochen + wird, lautet dieses Stammverzeichnis für gewöhnlich + CATALINA_HOME_ID/conf/moa-spss; in weiterer Folge wird von letzterer + Variante ausgegangen). + +11.Update des Cert-Stores. + Kopieren Sie den Inhalt des Verzeichnisses + MOA_ID_INST_AUTH\conf\moa-spss\certstore in das Verzeichnis + CATALINA_HOME\conf\moa-spss\certstore. Wenn Sie gefragt werden, ob Sie + vorhandene Dateien oder Unterverzeichnisse überschreiben sollen, dann + bejahen sie das. + +12.Sollen zusätzliche Templates für ältere Bürgerkartenumgebungen aktiviert + werden, öffnen Sie die XML-Konfiguration von MOA ID (für gewöhnlich finden + Sie diese XML-Datei direkt im Stammverzeichnis für die MOA ID Konfiguration, + z.B. CATALINA_HOME_ID/conf/moa-id/SampleMOAIDConfiguration.xml); führen Sie + folgende Modifikationen an der XML-Konfiguration durch: + + a. Ändern Sie die applikationsübergreifende Konfiguration der AuthBlock + Transformationen. Sie finden diese Konfiguration im XML-Element + /MOA-IDConfiguration/AuthComponent/SecurityLayer. Fügen Sie zusätzlich zum + bisherigen Inhalt dieses Elements (für gewöhnlich ein Element + TransformsInfo, dessen Attribut filname den Wert + transforms/TransformsInfoAuthBlockText.xml aufweist) ein Element + TransformsInfo an, dessen Attribut filename auf die Datei für ältere BKU + zeigt. Sie können auch auf die vordefinierten Elemente aus den + Musterkonfigurationen dieser Distribution ( + MOA_ID_AUTH_INST/conf/moa-id/SampleMOAIDConfiguration.xml) zurückgreifen. + + b. Fügen Sie Profilbezeichner für die Transformationsprofile in der + Konfiguration für MOA SP an. Sie finden diesen Bezeichner im XML- + Element /MOA-IDConfiguration/AuthComponent/MOA-SP/VerifyAuthBlock. + Hängen Sie ein Element VerifyTransformsInfoProfileID an, das für die Über- + prüfung der Transformation älterer BKU vorgesehen ist. + Siehe auch Inhalt des Elements VerifyAuthBlock aus der Musterkonfiguration + dieser Distribution ( + MOA_ID_AUTH_INST/conf/moa-id/SampleMOAIDConfiguration.xml). + + c. Ändern Sie gegebenenfalls die applikationsspezifische Konfiguration + der Authblock-Tranformationen. Führen Sie dazu die folgende Tätigkeit + für jedes XML-Element /MOA-IDConfiguration/OnlineApplicaton/AuthComponent + durch: Fügen Sie zusätzlich zu einem bestehenden Element TransformsInfo + ein Elemnet TransformsInfo an, das die Transformation für ältere BKU + enthält - gleich wie dies bereits in Schritt a. durchgeführt wurde (wenn + Sie dieses Element nicht vorfinden, oder es auskommentiert ist, muss + Schritt c. nicht durchgeführt werden). + + Öffnen Sie die XML-Konfiguration von MOA SPSS (für gewöhnlich finden Sie + XML-Datei direkt im Stammverzeichnisses für die MOA SPSS Konfiguration, z.B. + CATALINA_HOME_ID/conf/moa-spss/SampleMOASPSSConfiguration.xml); führen Sie + folgende Modifikationen an der XML-Konfiguration durch: + + a. Ändern Sie die konfigurierten Profile für die zulässigen Transformationen + über die signierten Daten. Sie finden diese Profile am Ende der XML-Konfi- + guration von MOA SPSS (Elemente des Namens + cfg:VerifyTransformsInfoProfile). Fügen Sie zusätzlich zu den vorkommenden + Elementen dieses Namens (für gewöhnlich zwei Elemente) zwei weitere + Elemente dieses Namens hinzu, die die Profile für die älteren Bürger- + kartenumgebungen aufnehmen - diese sind durch den Namensteil "_deprecated" + gekennzeichnet (siehe auch Musterkonfigurationen dieser Distribution + MOA_ID_AUTH_INST/conf/moa-spss/SampleMOASPSSConfiguration.xml). + +13.Update der Trust-Profile. Achten sie bei Case-sensitiven Betriebssystemen auf + die Profilbezeichnungen. Aus trustprofiles wurde trustProfiles. + Wenn Sie Ihre alten Trust-Profile durch die neuen ersetzen wollen, dann gehen + Sie vor, wie in Punkt a). Wenn Sie Ihre eigenen Trust-Profile beibehalten + wollen, dann gehen Sie vor, wie in Punkt b). + + a. Gehen Sie wie folgt vor, um die Trust-Profile auszutauschen: + + 1) Löschen Sie das Verzeichnis CATALINA_HOME\conf\moa-spss\trustprofiles. + 2) Kopieren Sie das Verzeichnis + MOA_ID_INST_AUTH\conf\moa-spss\trustProfiles in das Verzeichnis + CATALINA_HOME\conf\moa-spss. + + b. Falls Sie Ihre alten Trust-Profile beibehalten wollen, gehen Sie wie folgt + vor, um die Profile auf den aktuellen Stand zu bringen: + + 1) Benennen Sie ein eventuell vorhandenes Verzeichnis trustprofiles in + trustProfiles um (vergessen Sie nicht, diese Änderung in Ihrer MOA-SP/SS + Konfigurationsdatei ebenfalls zu berücksichtigen und benennen Sie dort + alle gleichartigen Vorkommen von trustprofiles in trustProfiles um) + + 2) Ergänzen Sie ihre Trustprofile durch alle Zertifikate aus den + entsprechenden Profilen im Verzeichnis + MOA_ID_INST_AUTH\conf\moa-spss\trustProfiles, die nicht in Ihren + Profilen enthalten sind. Am einfachsten ist es, wenn Sie den Inhalt der + einzelnen Profile aus der Distribution ( + MOA_ID_INST_AUTH\conf\moa-spss\trustProfiles) in die entsprechenden + Profile Ihrer Installation (CATALINA_HOME\conf\moa-spss\trustProfiles) + kopieren und dabei die vorhandenen gleichnamigen Zertifikate + überschreiben), also z.B: Kopieren des Inhalts von + MOA_ID_INST_AUTH\conf\moa-spss\trustProfiles\ + MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten nach + CATALINA_HOME\conf\moa-spss\trustProfiles\ + MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten usw. + +14.Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im + Logging von MOA ID beim Einlesen der erneuerten Konfiguration. + +............................................................................... +B.4 Durchführung eines Updates von einer älteren Version +............................................................................... + +Bitte führen Sie eine Neuinstallation von MOA ID laut Handbuch durch und passen +Sie die mitgelieferte Musterkonfiguration entsprechend Ihren Bedürfnissen unter +Zuhilfenahme Ihrer bisherigen Konfiguration an. + diff --git a/id/server/auth/.settings/org.eclipse.wst.common.component b/id/server/auth/.settings/org.eclipse.wst.common.component index b116cf610..6e8785869 100644 --- a/id/server/auth/.settings/org.eclipse.wst.common.component +++ b/id/server/auth/.settings/org.eclipse.wst.common.component @@ -1,18 +1,18 @@ - - - - - - - uses - - - uses - - - uses - - - - - + + + + + + + uses + + + uses + + + uses + + + + + diff --git a/id/server/auth/pom.xml b/id/server/auth/pom.xml index e24b3273b..ed9e68aa7 100644 --- a/id/server/auth/pom.xml +++ b/id/server/auth/pom.xml @@ -2,14 +2,14 @@ MOA.id moa-id - 1.4.6 + 1.4.7 4.0.0 MOA.id.server moa-id-auth war - 1.4.6 + 1.4.7 MOA ID-Auth WebService diff --git a/id/server/auth/src/main/webapp/WEB-INF/web.xml b/id/server/auth/src/main/webapp/WEB-INF/web.xml index 5c729ef19..e1261b819 100644 --- a/id/server/auth/src/main/webapp/WEB-INF/web.xml +++ b/id/server/auth/src/main/webapp/WEB-INF/web.xml @@ -22,6 +22,18 @@ Verify identity link coming from security layer at.gv.egovernment.moa.id.auth.servlet.VerifyIdentityLinkServlet + + VerifyCertificate + VerifyCertificate + Verify the certificate coming from security layer + at.gv.egovernment.moa.id.auth.servlet.VerifyCertificateServlet + + + GetForeignID + GetForeignID + Gets the foreign eID from security layer + at.gv.egovernment.moa.id.auth.servlet.GetForeignIDServlet + ProcessInput ProcessInput @@ -76,6 +88,16 @@ VerifyIdentityLink /VerifyIdentityLink + + VerifyCertificate + /VerifyCertificate + + + + GetForeignID + /GetForeignID + + ProcessInput /ProcessInput diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration.xml b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration.xml index 4de75a2af..f8f6f2677 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration.xml @@ -18,6 +18,9 @@ + + + @@ -61,6 +64,9 @@ Auskommentieren, falls die in der Beispiel-Onlineapplikation definierte Transformationverwendet wird:<--> + + MOAIDTransformAuthBlockTable_DE + MOAIDTransformAuthBlockTable_EN @@ -123,7 +129,7 @@ - + Lokale Templates zum Anpassen der Seiten "Auswahl der Bürgerkartenumgebung" und diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfigurationProxy.xml b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfigurationProxy.xml index 3e51b28fd..b6a0ed6a2 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfigurationProxy.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfigurationProxy.xml @@ -18,10 +18,13 @@ + + + - + - + @@ -49,6 +52,9 @@ Auskommentieren, falls die in der Beispiel-Onlineapplikation definierte Transformationverwendet wird:<--> + + MOAIDTransformAuthBlockTable_DE + MOAIDTransformAuthBlockTable_EN @@ -122,7 +128,7 @@ - + Lokale Templates zum Anpassen der Seiten "Auswahl der Bürgerkartenumgebung" und diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKs.xml b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKs.xml index 013487953..f25557ea2 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKs.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKs.xml @@ -20,10 +20,13 @@ + + + - + - + @@ -52,6 +55,9 @@ Auskommentieren, falls die in der Beispiel-Onlineapplikation definierte Transformationverwendet wird:<--> + + MOAIDTransformAuthBlockTable_DE + MOAIDTransformAuthBlockTable_EN @@ -120,7 +126,7 @@ - + Lokale Templates zum Anpassen der Seiten "Auswahl der Bürgerkartenumgebung" und diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKsProxy.xml b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKsProxy.xml index 33e812767..81a3d02ca 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKsProxy.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKsProxy.xml @@ -19,10 +19,13 @@ + + + - + - + @@ -51,6 +54,9 @@ Auskommentieren, falls die in der Beispiel-Onlineapplikation definierte Transformationverwendet wird:<--> + + MOAIDTransformAuthBlockTable_DE + MOAIDTransformAuthBlockTable_EN @@ -130,7 +136,7 @@ - + Lokale Templates zum Anpassen der Seiten "Auswahl der Bürgerkartenumgebung" und diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration.xml b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration.xml index 3d2ccec9f..d6755f14f 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration.xml @@ -18,10 +18,13 @@ + + + - + - + @@ -49,6 +52,9 @@ Auskommentieren, falls die in der Beispiel-Onlineapplikation definierte Transformationverwendet wird:<--> + + MOAIDTransformAuthBlockTable_DE + MOAIDTransformAuthBlockTable_EN @@ -109,7 +115,7 @@ - + diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfigurationProxy.xml b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfigurationProxy.xml index 69f2e17e1..163de5cdb 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfigurationProxy.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfigurationProxy.xml @@ -18,10 +18,13 @@ + + + - + - + @@ -49,6 +52,9 @@ Auskommentieren, falls die in der Beispiel-Onlineapplikation definierte Transformationverwendet wird:<--> + + MOAIDTransformAuthBlockTable_DE + MOAIDTransformAuthBlockTable_EN @@ -120,7 +126,7 @@ - + diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKs.xml b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKs.xml index 116485d33..965222fd0 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKs.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKs.xml @@ -19,10 +19,13 @@ + + + - + - + @@ -51,6 +54,9 @@ Auskommentieren, falls die in der Beispiel-Onlineapplikation definierte Transformationverwendet wird:<--> + + MOAIDTransformAuthBlockTable_DE + MOAIDTransformAuthBlockTable_EN @@ -117,7 +123,7 @@ - + diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKsProxy.xml b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKsProxy.xml index 5a158951d..545cc892b 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKsProxy.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKsProxy.xml @@ -19,10 +19,13 @@ + + + - + - + @@ -51,6 +54,9 @@ Auskommentieren, falls die in der Beispiel-Onlineapplikation definierte Transformationverwendet wird:<--> + + MOAIDTransformAuthBlockTable_DE + MOAIDTransformAuthBlockTable_EN @@ -128,7 +134,7 @@ - + diff --git a/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_DE.xml b/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_DE.xml new file mode 100644 index 000000000..240126693 --- /dev/null +++ b/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_DE.xml @@ -0,0 +1,161 @@ + + + + + + + + Signatur der Anmeldedaten + + + +

Anmeldedaten:

+ +

Daten zur Person

+ + + + + + + + + + + + + + + + + + + +
Name: + +
Geburtsdatum: + + . + + . + +
Rolle:
+ + +
+ Ich bin weiters ermächtigt als + + von + + + , geboren am + + . + + . + + + + , + + + , in deren Auftrag zu handeln. +

+ + +

Daten zur Anwendung

+ + + + + + + + + +
Name:
Staat:Österreich
+ +

Technische Parameter

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
URL:
Bereich:
:
Identifikator: + +
Identifikator des Vollmachtgebers: +
OID: + +
HPI:
Datum: + + . + + . + +
Uhrzeit: + + : + + : + +
+ + +
+
+
+ +
+ + application/xhtml+xml + +
diff --git a/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_EN.xml b/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_EN.xml new file mode 100644 index 000000000..d30dbb42f --- /dev/null +++ b/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_EN.xml @@ -0,0 +1,161 @@ + + + + + + + + Signatur der Anmeldedaten + + + +

Authentication Data:

+ +

Personal Data

+ + + + + + + + + + + + + + + + + + + +
Name: + +
Date of Birth: + + . + + . + +
Role:
+ + +
+ I am also authorized as + + of + + + , born on + + . + + . + + + + , + + + , to act on their behalf. +

+ + +

Application Data

+ + + + + + + + + +
Name:
Country:Austria
+ +

Technical Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
URL:
Sector:
:
Identifier: + +
Identifier of the principal: +
OID: + +
HPI:
Date: + + . + + . + +
Time: + + : + + : + +
+ + +
+
+
+ +
+ + application/xhtml+xml + +
diff --git a/id/server/data/deploy/conf/moa-spss/SampleMOASPSSConfiguration.xml b/id/server/data/deploy/conf/moa-spss/SampleMOASPSSConfiguration.xml index 62337d0fb..22525e2e4 100644 --- a/id/server/data/deploy/conf/moa-spss/SampleMOASPSSConfiguration.xml +++ b/id/server/data/deploy/conf/moa-spss/SampleMOASPSSConfiguration.xml @@ -79,5 +79,13 @@ MOAIDTransformAuthBlockTextPlain profiles/MOAIDTransformAuthBlockTextPlain.xml + + MOAIDTransformAuthBlockTable_DE + profiles/MOAIDTransformAuthBlockTable_DE.xml + + + MOAIDTransformAuthBlockTable_EN + profiles/MOAIDTransformAuthBlockTable_EN.xml + diff --git a/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_DE.xml b/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_DE.xml new file mode 100644 index 000000000..5640412da --- /dev/null +++ b/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_DE.xml @@ -0,0 +1,159 @@ + + + + + + + + + Signatur der Anmeldedaten + + + +

Anmeldedaten:

+ +

Daten zur Person

+ + + + + + + + + + + + + + + + + + + +
Name: + +
Geburtsdatum: + + . + + . + +
Rolle:
+ + +
+ Ich bin weiters ermächtigt als + + von + + + , geboren am + + . + + . + + + + , + + + , in deren Auftrag zu handeln. +

+ + +

Daten zur Anwendung

+ + + + + + + + + +
Name:
Staat:Österreich
+ +

Technische Parameter

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
URL:
Bereich:
:
Identifikator: + +
Identifikator des Vollmachtgebers: +
OID: + +
HPI:
Datum: + + . + + . + +
Uhrzeit: + + : + + : + +
+ + +
+
+
+ +
+
diff --git a/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_EN.xml b/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_EN.xml new file mode 100644 index 000000000..b9c613e2d --- /dev/null +++ b/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_EN.xml @@ -0,0 +1,159 @@ + + + + + + + + + Signatur der Anmeldedaten + + + +

Authentication Data:

+ +

Personal Data

+ + + + + + + + + + + + + + + + + + + +
Name: + +
Date of Birth: + + . + + . + +
Role:
+ + +
+ I am also authorized as + + of + + + , born on + + . + + . + + + + , + + + , to act on their behalf. +

+ + +

Application Data

+ + + + + + + + + +
Name:
Country:Austria
+ +

Technical Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
URL:
Sector:
:
Identifier: + +
Identifier of the principal: +
OID: + +
HPI:
Date: + + . + + . + +
Time: + + : + + : + +
+ + +
+
+
+ +
+
diff --git a/id/server/data/deploy/demo/demoseite.zip b/id/server/data/deploy/demo/demoseite.zip new file mode 100644 index 000000000..1bf3ce84a Binary files /dev/null and b/id/server/data/deploy/demo/demoseite.zip differ diff --git a/id/server/doc/MOA-ID-Configuration-1.2.xsd b/id/server/doc/MOA-ID-Configuration-1.2.xsd deleted file mode 100644 index 4b018db64..000000000 --- a/id/server/doc/MOA-ID-Configuration-1.2.xsd +++ /dev/null @@ -1,350 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enthält Parameter der - Authentisierungs-Komponente - - - - - enthält Konfigurationsparameter der - Proxy-Komponente - - - - - - enthält Parameter für die Kommunikation zw. - Proxykomponente und Authenttisierungskomponente - - - - - - enthält Parameter für die SOAP-Verbindung von der - Proxy-Komponente zur Auth-Komponente (vgl. - AuthComponent/MOA-SP/ConnectionParameter) - - - - - - - - - - - enthält Parameter für die OA - - - - - - - - - - - - - spezifiziert den Algorithmus ("pkix" oder "chaining") für die - Zertifikatspfadvalidierung - - - - - - ein vom SystemDefaultMode abweichender ChiningMode kann - für jeden TrustAnchor gesetzt werden - - - - - - - - - - - - - - - - verweist auf ein Verzeichnis, das vertrauenswürdige CA - (Zwischen-CA, Wurzel-CA) Zertifikate enthält. - - - - - - - - - - - - - - - - - - - - - - - - enthält Parameter für die Kommunikation mit dem - Security-Layer - - - - - - das Attribut filename verweist auf eine Datei mit globalem - Element TransformsInfo vom Typ sl10:TransformsInfo; diese TransformsInfo - werden in den CreateXMLSignatureRequest für die Signatur des AUTH-Blocks - inkludiert - - - - - - - - - - - enthält Konfiguratiosnparameter für die Kommunikation mit dem MOA - SP Modul - - - - - - enthält Parameter für die SOAP-Verbindung von der - AUTH-Komponente zu MOA-SP; das Attribut URL enthält den Endpunkt des Server; - wird das Schema "https" verwendet müssen die Kind-Elemente angegeben werden; - wird das Schema "http" verwendet dürfen keine Kind-Elemente angegeben - werden; wird das Element nicht verwendet dann wird MOA-SP über das API - aufgerufen - - - - - enthält Parameter für die Überprüfung der - Personenbindung - - - - - - - - - - enthält Parameter für die Überprüfung des - AUTH-Blocks - - - - - - - - - - - - - - enthält Informationen über akzeptierte Signers des - IdentityLinks - - - - - - akzeptierte Signer des IdentityLinks werden per - X509SubjectName (Kodierung nach RFC 2253) identifiziert - - - - - - - - - - - - - enthält Parameter über die OA, die die - Authentisierungs-Komponente betreffen - - - - - - - - - - enthält Parameter über die OA, die die Proxy-Komponente - betreffen - - - - - - enthält Parameter über die OA, die die Proxy-Komponente - betreffen - - - - - - - - - - - - - - - - - URL zu einem Verzeichnis, das akzeptierte Server-Zertifikate der - TLS-Verbindung enthält (keine CA-Zertifikate) - - - - - - - - - - - - URL zu einem KeyStore, der den privaten Schlüssel, der für - die TLS-Client-Authentisierung verwendetwird, enthält - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/id/server/doc/MOA-ID-Configuration-1.3.xsd b/id/server/doc/MOA-ID-Configuration-1.3.xsd deleted file mode 100644 index 66c6e1832..000000000 --- a/id/server/doc/MOA-ID-Configuration-1.3.xsd +++ /dev/null @@ -1,424 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enthält Parameter der - Authentisierungs-Komponente - - - - - enthält Konfigurationsparameter der - Proxy-Komponente - - - - - - enthält Parameter für die Kommunikation zw. - Proxykomponente und Authenttisierungskomponente - - - - - - enthält Parameter für die SOAP-Verbindung von der - Proxy-Komponente zur Auth-Komponente (vgl. - AuthComponent/MOA-SP/ConnectionParameter) - - - - - - - - - - - enthält Parameter für die OA - - - - - - - - - - - - - - - - - - - - - spezifiziert den Algorithmus ("pkix" oder "chaining") für die - Zertifikatspfadvalidierung - - - - - - ein vom SystemDefaultMode abweichender ChiningMode kann - für jeden TrustAnchor gesetzt werden - - - - - - - - - - - - - - - - verweist auf ein Verzeichnis, das vertrauenswürdige CA - (Zwischen-CA, Wurzel-CA) Zertifikate enthält. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enthält Parameter für die Kommunikation mit dem - Security-Layer - - - - - - - - - - enthält Konfiguratiosnparameter für die Kommunikation mit dem MOA - SP Modul - - - - - - enthält Parameter für die SOAP-Verbindung von der - AUTH-Komponente zu MOA-SP; das Attribut URL enthält den Endpunkt des Server; - wird das Schema "https" verwendet müssen die Kind-Elemente angegeben werden; - wird das Schema "http" verwendet dürfen keine Kind-Elemente angegeben - werden; wird das Element nicht verwendet dann wird MOA-SP über das API - aufgerufen - - - - - enthält Parameter für die Überprüfung der - Personenbindung - - - - - - - - - - enthält Parameter für die Überprüfung des - AUTH-Blocks - - - - - - - - - - - - - - enthält Informationen über akzeptierte Signers des - IdentityLinks - - - - - - akzeptierte Signer des IdentityLinks werden per - X509SubjectName (Kodierung nach RFC 2253) identifiziert - - - - - - - - - - das Attribut filename verweist auf eine Datei mit globalem - Element TransformsInfo vom Typ sl10:TransformsInfo; diese TransformsInfo - werden in den CreateXMLSignatureRequest für die Signatur des AUTH-Blocks - inkludiert - - - - - - - - - - - - das Attribut URL spezifiziert die Lage des Templates - - - - - - - - - enthält Parameter über die OA, die die - Authentisierungs-Komponente betreffen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enthält Parameter über die OA, die die Proxy-Komponente - betreffen - - - - - - enthält Parameter über die OA, die die Proxy-Komponente - betreffen - - - - - - - - - - - - - - - - - - URL zu einem Verzeichnis, das akzeptierte Server-Zertifikate der - TLS-Verbindung enthält (keine CA-Zertifikate) - - - - - - - - - - - - URL zu einem KeyStore, der den privaten Schlüssel, der für - die TLS-Client-Authentisierung verwendetwird, enthält - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/id/server/doc/MOA-ID-Configuration-1.4.2.xsd b/id/server/doc/MOA-ID-Configuration-1.4.2.xsd deleted file mode 100644 index 360789834..000000000 --- a/id/server/doc/MOA-ID-Configuration-1.4.2.xsd +++ /dev/null @@ -1,616 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enthält Parameter der Authentisierungs-Komponente - - - - - enthält Konfigurationsparameter der Proxy-Komponente - - - - - - enthält Parameter für die Kommunikation zw. Proxykomponente und Authenttisierungskomponente - - - - - - enthält Parameter für die SOAP-Verbindung von der Proxy-Komponente zur Auth-Komponente (vgl. AuthComponent/MOA-SP/ConnectionParameter) - - - - - - - - - - - enthält Parameter für die OA - - - - - - - - - - - - - - - - - - - - - - spezifiziert den Algorithmus ("pkix" oder "chaining") für die Zertifikatspfadvalidierung - - - - - - ein vom SystemDefaultMode abweichender ChiningMode kann für jeden TrustAnchor gesetzt werden - - - - - - - - - - - - - - - - verweist auf ein Verzeichnis, das vertrauenswürdige CA (Zwischen-CA, Wurzel-CA) Zertifikate enthält. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enthält Parameter für die Kommunikation mit dem Security-Layer - - - - - - - - - - enthält Konfiguratiosnparameter für die Kommunikation mit dem MOA SP Modul - - - - - - enthält Parameter für die SOAP-Verbindung von der AUTH-Komponente zu MOA-SP; das Attribut URL enthält den Endpunkt des Server; wird das Schema "https" verwendet müssen die Kind-Elemente angegeben werden; wird das Schema "http" verwendet dürfen keine Kind-Elemente angegeben werden; wird das Element nicht verwendet dann wird MOA-SP über das API aufgerufen - - - - - enthält Parameter für die Überprüfung der Personenbindung - - - - - - - - - - enthält Parameter für die Überprüfung des AUTH-Blocks - - - - - - - - - - - - - - enthält Informationen über akzeptierte Signers des IdentityLinks - - - - - - akzeptierte Signer des IdentityLinks werden per X509SubjectName (Kodierung nach RFC 2253) identifiziert - - - - - - - - enthält Defaultparameter für die Überprüfung weiterer Infoboxen - - - - - - - das Attribut filename verweist auf eine Datei mit globalem Element TransformsInfo vom Typ sl10:TransformsInfo; diese TransformsInfo werden in den CreateXMLSignatureRequest für die Signatur des AUTH-Blocks inkludiert - - - - - - - - - - - - - das Attribut URL spezifiziert die Lage des Templates - - - - - - Verifikation zusätzlicher Infoboxen - - - - - Optionales DefaultTrustprofil für die Überprüfung aller weiteren Infoboxen - - - - - - - - - - Parameter für Überprüfung weiterer Infoboxen - - - - - - - Parameter zur Überprüfung einzelner Infoboxen - - - - - optionalervName, der für Fehlermeldungen verwendet werden soll; z.B.: "Stellvertretungen" für "Mandates"; fehlt dieser Parameter, dann wird das Identifier-Attribut verwendet - - - - - TrustProfil, das für die Überprüfung der Infobox verwendet werden soll - - - - - Validatorklasse, die für die Prüfung der Infobox verwendet werden soll; muss gesetzt werden, wenn Package- und Klassenname vom Default Package- und Klassennamen abweichen - - - - - - Infobox spezifische Parameter, die der jeweiligen Prüfapplikation übergeben werden - - - - - - - - - - Infobox spezifische Parameter, die der Prüfapplikation für berufliche Parteienvertretung übergeben werden. Dies ist logisch Teil der ApplicationSpecificParameters, kann jedoch aufgrund der Strukturierung validierend geparst werden und dadurch wird eine funktionierende Konfiguration bei Programmstart garantiert. - - - - - - Legt fest ob Machtgeber und Machtnehmer in den Anmeldedaten ausgetauscht werden sollen. Lediglich die übermittelte Vollmacht gibt dann Aufschluss darüber, dass eine Vertretung vorliegt. Ziel dieses Schalters ist, dass bisherige Applikationen mit Vollmachten und beruflicher Parteienvertretung nachgerüstet werden können, ohne der Erfordernis Änderungen durchführen zu müssen. - - - - - Falls Infoboxinhalte für die berufliche Parteienvertretung in der Vollmachten Infobox "mandates" abgelegt werden und Vertretung für berufliche Parteienvertreter aktiviert ist, so kann mit diesem Schalter die Vollmachtsprüfung für normale Vollmachten deaktiviert werden. Damit wird erreicht, dass mittels der Vollmachten Infobox ausschließlich berufliche Parteienvertretung aktiviert ist. Dieser Schalter ist nur für die Vollmachten Infobox "mandates" relevant. - - - - - Eigentlicher Konfigurationsteil für berufliche Parteienvertretung - - - - - - - - - - - - - - Spezifiziert die Lage von XML Schemas - - - - - - - - - - - - - - - - enthält Parameter über die OA, die die Authentisierungs-Komponente betreffen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enthält Parameter über die OA, die die Proxy-Komponente betreffen - - - - - - enthält Parameter über die OA, die die Proxy-Komponente betreffen - - - - - - - - - - - - - - - - - - URL zu einem Verzeichnis, das akzeptierte Server-Zertifikate der TLS-Verbindung enthält (keine CA-Zertifikate) - - - - - - - - - - - - URL zu einem KeyStore, der den privaten Schlüssel, der für die TLS-Client-Authentisierung verwendet wird, enthält - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Soll nicht nur bei leerer oder standardisierter Vollmacht mit unvollständigen Daten, sondern beispielsweise zu Kontrollzwecken das Eingabeformular immer angezeigt werden, wenn ein Einschreiten durch berufliche Parteienvertretung geschieht so kann dies mittels dieses Schalters veranlasst werden - - - - - - - - - - - Das Attribut spezifiziert die Lage des Templates, welches der InputProcessor zur Darstellung des Eingabeformulars nutzen soll - - - - - - - - - - Default InputProcessor. Konfiguration eines vom Standardprozess abweichenden Verarbeitungsvorgangs bei der beruflichen Parteienvertretung. Der Wert dieses Elements ist der vollständige Klassenname des InputProzessors - - - - - Default Wert für Formularanzeige. Soll nicht nur bei leerer oder standardisierter Vollmacht mit unvollständigen Daten, sondern beispielsweise zu Kontrollzwecken das Eingabeformular zur vervollständigung der Vertretenendaten immer angezeigt werden, wenn ein Einschreiten durch berufliche Parteienvertretung geschieht so kann dies mittels dieses Schalters veranlasst werden - - - - - Default Verbindungsparameter zum SZR-Gateway (für den EGIZ-Demonstrator im internen Netzwerk: https://129.27.142.5:8443/szr-gateway/services/MandateCreation) - - - - - Falls keine speziellen beruflichen ParteienvertreterInnen definiert sind (Element kommt nicht vor), werden ausschließlich standardisierte Vollmachten mit einer MandateID="*" akzeptiert - - - - - - - - - Konfiguration eines vom Standardprozess abweichenden Verarbeitungsvorgangs bei der beruflichen Parteienvertretung. Der Wert dieses Elements ist der vollständige Klassenname des InputProzessors - - - - - - Optionale Verbindungsparameter zu speziellem (SZR-)Gateway - - - - - - OID der Parteienvertretung lt. "Object Identifier der öffentlichen Verwaltung" - Konvention, Empfehlung. Diese ID muss mit der MandateID der übermittelten standardisierten Vollmacht übereinstimmen. Eine Parteienvertretung für standardisierte Vollmachten mit der MandateID "*" muss nicht definiert werden und erlaubt eine allgemeine berufliche Parteienvertretung mit Standardtexten. In anderen Fällen ist eine erlaubte OID mitttels dieses Attributs zu definieren - - - - - - Legt fest, ob berufliche Parteienvertretung für natürliche Personen erlaubt ist - - - - - - - - Legt fest, ob berufliche Parteienvertretung für juristische Personen erlaubt ist (welche z.B. ein Organwalter nicht vertreten darf und dieser Wert aus diesem Grund dort false sein muss) - - - - - - - - Beschreibender Text, der an Stelle des Standardtexts bei der Signatur der Anmeldedaten im Falle einer vorliegenden beruflichen Parteienvertretung zur Signatur vorgelegt wird - - - - - diff --git a/id/server/doc/MOA-ID-Configuration-1.4.3.xsd b/id/server/doc/MOA-ID-Configuration-1.4.3.xsd deleted file mode 100644 index 570bebd37..000000000 --- a/id/server/doc/MOA-ID-Configuration-1.4.3.xsd +++ /dev/null @@ -1,612 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enthält Parameter der Authentisierungs-Komponente - - - - - enthält Konfigurationsparameter der Proxy-Komponente - - - - - - enthält Parameter für die Kommunikation zw. Proxykomponente und Authenttisierungskomponente - - - - - - enthält Parameter für die SOAP-Verbindung von der Proxy-Komponente zur Auth-Komponente (vgl. AuthComponent/MOA-SP/ConnectionParameter) - - - - - - - - - - - enthält Parameter für die OA - - - - - - - - - - - - - - - - - - - - - - spezifiziert den Algorithmus ("pkix" oder "chaining") für die Zertifikatspfadvalidierung - - - - - - ein vom SystemDefaultMode abweichender ChiningMode kann für jeden TrustAnchor gesetzt werden - - - - - - - - - - - - - - - - verweist auf ein Verzeichnis, das vertrauenswürdige CA (Zwischen-CA, Wurzel-CA) Zertifikate enthält. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enthält Parameter für die Kommunikation mit dem Security-Layer - - - - - - - - - - enthält Konfiguratiosnparameter für die Kommunikation mit dem MOA SP Modul - - - - - - enthält Parameter für die SOAP-Verbindung von der AUTH-Komponente zu MOA-SP; das Attribut URL enthält den Endpunkt des Server; wird das Schema "https" verwendet müssen die Kind-Elemente angegeben werden; wird das Schema "http" verwendet dürfen keine Kind-Elemente angegeben werden; wird das Element nicht verwendet dann wird MOA-SP über das API aufgerufen - - - - - enthält Parameter für die Überprüfung der Personenbindung - - - - - - - - - - enthält Parameter für die Überprüfung des AUTH-Blocks - - - - - - - - - - - - - - enthält Informationen über akzeptierte Signers des IdentityLinks - - - - - - akzeptierte Signer des IdentityLinks werden per X509SubjectName (Kodierung nach RFC 2253) identifiziert - - - - - - - - enthält Defaultparameter für die Überprüfung weiterer Infoboxen - - - - - - - das Attribut filename verweist auf eine Datei mit globalem Element TransformsInfo vom Typ sl10:TransformsInfo; diese TransformsInfo werden in den CreateXMLSignatureRequest für die Signatur des AUTH-Blocks inkludiert - - - - - - - - - - - - - das Attribut URL spezifiziert die Lage des Templates - - - - - - Verifikation zusätzlicher Infoboxen - - - - - Optionales DefaultTrustprofil für die Überprüfung aller weiteren Infoboxen - - - - - - - - - - Parameter für Überprüfung weiterer Infoboxen - - - - - - - Parameter zur Überprüfung einzelner Infoboxen - - - - - optionalervName, der für Fehlermeldungen verwendet werden soll; z.B.: "Stellvertretungen" für "Mandates"; fehlt dieser Parameter, dann wird das Identifier-Attribut verwendet - - - - - TrustProfil, das für die Überprüfung der Infobox verwendet werden soll - - - - - Validatorklasse, die für die Prüfung der Infobox verwendet werden soll; muss gesetzt werden, wenn Package- und Klassenname vom Default Package- und Klassennamen abweichen - - - - - - Infobox spezifische Parameter, die der jeweiligen Prüfapplikation übergeben werden - - - - - - - - - - Infobox spezifische Parameter, die der Prüfapplikation für berufliche Parteienvertretung übergeben werden. Dies ist logisch Teil der ApplicationSpecificParameters, kann jedoch aufgrund der Strukturierung validierend geparst werden und dadurch wird eine funktionierende Konfiguration bei Programmstart garantiert. - - - - - - Falls Infoboxinhalte für die berufliche Parteienvertretung in der Vollmachten Infobox "mandates" abgelegt werden und Vertretung für berufliche Parteienvertreter aktiviert ist, so kann mit diesem Schalter die Vollmachtsprüfung für normale Vollmachten deaktiviert werden. Damit wird erreicht, dass mittels der Vollmachten Infobox ausschließlich berufliche Parteienvertretung aktiviert ist. Dieser Schalter ist nur für die Vollmachten Infobox "mandates" relevant. - - - - - Eigentlicher Konfigurationsteil für berufliche Parteienvertretung - - - - - - - - - - - - - - Spezifiziert die Lage von XML Schemas - - - - - - - - - - - - - - - - enthält Parameter über die OA, die die Authentisierungs-Komponente betreffen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enthält Parameter über die OA, die die Proxy-Komponente betreffen - - - - - - enthält Parameter über die OA, die die Proxy-Komponente betreffen - - - - - - - - - - - - - - - - - - URL zu einem Verzeichnis, das akzeptierte Server-Zertifikate der TLS-Verbindung enthält (keine CA-Zertifikate) - - - - - - - - - - - - URL zu einem KeyStore, der den privaten Schlüssel, der für die TLS-Client-Authentisierung verwendet wird, enthält - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Soll nicht nur bei leerer oder standardisierter Vollmacht mit unvollständigen Daten, sondern beispielsweise zu Kontrollzwecken das Eingabeformular immer angezeigt werden, wenn ein Einschreiten durch berufliche Parteienvertretung geschieht so kann dies mittels dieses Schalters veranlasst werden - - - - - - - - - - - Das Attribut spezifiziert die Lage des Templates, welches der InputProcessor zur Darstellung des Eingabeformulars nutzen soll - - - - - - - - - - Default InputProcessor. Konfiguration eines vom Standardprozess abweichenden Verarbeitungsvorgangs bei der beruflichen Parteienvertretung. Der Wert dieses Elements ist der vollständige Klassenname des InputProzessors - - - - - Default Wert für Formularanzeige. Soll nicht nur bei leerer oder standardisierter Vollmacht mit unvollständigen Daten, sondern beispielsweise zu Kontrollzwecken das Eingabeformular zur vervollständigung der Vertretenendaten immer angezeigt werden, wenn ein Einschreiten durch berufliche Parteienvertretung geschieht so kann dies mittels dieses Schalters veranlasst werden - - - - - Default Verbindungsparameter zum SZR-Gateway (für den EGIZ-Demonstrator im internen Netzwerk: https://129.27.142.5:8443/szr-gateway/services/MandateCreation) - - - - - Falls keine speziellen beruflichen ParteienvertreterInnen definiert sind (Element kommt nicht vor), werden ausschließlich standardisierte Vollmachten mit einer MandateID="*" akzeptiert - - - - - - - - - Konfiguration eines vom Standardprozess abweichenden Verarbeitungsvorgangs bei der beruflichen Parteienvertretung. Der Wert dieses Elements ist der vollständige Klassenname des InputProzessors - - - - - - Optionale Verbindungsparameter zu speziellem (SZR-)Gateway - - - - - - OID der Parteienvertretung lt. "Object Identifier der öffentlichen Verwaltung" - Konvention, Empfehlung. Diese ID muss mit der MandateID der übermittelten standardisierten Vollmacht übereinstimmen. Eine Parteienvertretung für standardisierte Vollmachten mit der MandateID "*" muss nicht definiert werden und erlaubt eine allgemeine berufliche Parteienvertretung mit Standardtexten. In anderen Fällen ist eine erlaubte OID mitttels dieses Attributs zu definieren - - - - - - Legt fest, ob berufliche Parteienvertretung für natürliche Personen erlaubt ist - - - - - - - - Legt fest, ob berufliche Parteienvertretung für juristische Personen erlaubt ist (welche z.B. ein Organwalter nicht vertreten darf und dieser Wert aus diesem Grund dort false sein muss) - - - - - - - - Beschreibender Text, der an Stelle des Standardtexts bei der Signatur der Anmeldedaten im Falle einer vorliegenden beruflichen Parteienvertretung zur Signatur vorgelegt wird - - - - - diff --git a/id/server/doc/MOA-ID-Configuration-1.4.7.xsd b/id/server/doc/MOA-ID-Configuration-1.4.7.xsd new file mode 100644 index 000000000..28e0b947d --- /dev/null +++ b/id/server/doc/MOA-ID-Configuration-1.4.7.xsd @@ -0,0 +1,624 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + enthält Parameter der Authentisierungs-Komponente + + + + + enthält Konfigurationsparameter der Proxy-Komponente + + + + + + enthält Parameter für die Kommunikation zw. Proxykomponente und Authenttisierungskomponente + + + + + + enthält Parameter für die SOAP-Verbindung von der Proxy-Komponente zur Auth-Komponente (vgl. AuthComponent/MOA-SP/ConnectionParameter) + + + + + + + + + + + enthält Parameter für die OA + + + + + + + + + + + + + + + + + + + + + + spezifiziert den Algorithmus ("pkix" oder "chaining") für die Zertifikatspfadvalidierung + + + + + + ein vom SystemDefaultMode abweichender ChiningMode kann für jeden TrustAnchor gesetzt werden + + + + + + + + + + + + + + + + verweist auf ein Verzeichnis, das vertrauenswürdige CA (Zwischen-CA, Wurzel-CA) Zertifikate enthält. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + enthält Parameter für die Kommunikation mit dem Security-Layer + + + + + + + + + + enthält Konfiguratiosnparameter für die Kommunikation mit dem MOA SP Modul + + + + + + enthält Parameter für die SOAP-Verbindung von der AUTH-Komponente zu MOA-SP; das Attribut URL enthält den Endpunkt des Server; wird das Schema "https" verwendet müssen die Kind-Elemente angegeben werden; wird das Schema "http" verwendet dürfen keine Kind-Elemente angegeben werden; wird das Element nicht verwendet dann wird MOA-SP über das API aufgerufen + + + + + enthält Parameter für die Überprüfung der Personenbindung + + + + + + + + + + enthält Parameter für die Überprüfung des AUTH-Blocks + + + + + + + + + + + + + + enthält Informationen über akzeptierte Signers des IdentityLinks + + + + + + akzeptierte Signer des IdentityLinks werden per X509SubjectName (Kodierung nach RFC 2253) identifiziert + + + + + + + + enthält Defaultparameter für die Überprüfung weiterer Infoboxen + + + + + + + + Default Verbindungsparameter zum SZR-Gateway (GetIdentityLink) + + + + + + + + + + das Attribut filename verweist auf eine Datei mit globalem Element TransformsInfo vom Typ sl10:TransformsInfo; diese TransformsInfo werden in den CreateXMLSignatureRequest für die Signatur des AUTH-Blocks inkludiert + + + + + + + + + + + + + das Attribut URL spezifiziert die Lage des Templates + + + + + + Verifikation zusätzlicher Infoboxen + + + + + Optionales DefaultTrustprofil für die Überprüfung aller weiteren Infoboxen + + + + + + + + + + Parameter für Überprüfung weiterer Infoboxen + + + + + + + Parameter zur Überprüfung einzelner Infoboxen + + + + + optionalervName, der für Fehlermeldungen verwendet werden soll; z.B.: "Stellvertretungen" für "Mandates"; fehlt dieser Parameter, dann wird das Identifier-Attribut verwendet + + + + + TrustProfil, das für die Überprüfung der Infobox verwendet werden soll + + + + + Validatorklasse, die für die Prüfung der Infobox verwendet werden soll; muss gesetzt werden, wenn Package- und Klassenname vom Default Package- und Klassennamen abweichen + + + + + + Infobox spezifische Parameter, die der jeweiligen Prüfapplikation übergeben werden + + + + + + + + + + Infobox spezifische Parameter, die der Prüfapplikation für berufliche Parteienvertretung übergeben werden. Dies ist logisch Teil der ApplicationSpecificParameters, kann jedoch aufgrund der Strukturierung validierend geparst werden und dadurch wird eine funktionierende Konfiguration bei Programmstart garantiert. + + + + + + Falls Infoboxinhalte für die berufliche Parteienvertretung in der Vollmachten Infobox "mandates" abgelegt werden und Vertretung für berufliche Parteienvertreter aktiviert ist, so kann mit diesem Schalter die Vollmachtsprüfung für normale Vollmachten deaktiviert werden. Damit wird erreicht, dass mittels der Vollmachten Infobox ausschließlich berufliche Parteienvertretung aktiviert ist. Dieser Schalter ist nur für die Vollmachten Infobox "mandates" relevant. + + + + + Eigentlicher Konfigurationsteil für berufliche Parteienvertretung + + + + + + + + + + + + + + Spezifiziert die Lage von XML Schemas + + + + + + + + + + + + + + + + enthält Parameter über die OA, die die Authentisierungs-Komponente betreffen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + enthält Parameter über die OA, die die Proxy-Komponente betreffen + + + + + + enthält Parameter über die OA, die die Proxy-Komponente betreffen + + + + + + + + + + + + + + + + + + URL zu einem Verzeichnis, das akzeptierte Server-Zertifikate der TLS-Verbindung enthält (keine CA-Zertifikate) + + + + + + + + + + + + URL zu einem KeyStore, der den privaten Schlüssel, der für die TLS-Client-Authentisierung verwendet wird, enthält + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Soll nicht nur bei leerer oder standardisierter Vollmacht mit unvollständigen Daten, sondern beispielsweise zu Kontrollzwecken das Eingabeformular immer angezeigt werden, wenn ein Einschreiten durch berufliche Parteienvertretung geschieht so kann dies mittels dieses Schalters veranlasst werden + + + + + + + + + + + Das Attribut spezifiziert die Lage des Templates, welches der InputProcessor zur Darstellung des Eingabeformulars nutzen soll + + + + + + + + + + Default InputProcessor. Konfiguration eines vom Standardprozess abweichenden Verarbeitungsvorgangs bei der beruflichen Parteienvertretung. Der Wert dieses Elements ist der vollständige Klassenname des InputProzessors + + + + + Default Wert für Formularanzeige. Soll nicht nur bei leerer oder standardisierter Vollmacht mit unvollständigen Daten, sondern beispielsweise zu Kontrollzwecken das Eingabeformular zur vervollständigung der Vertretenendaten immer angezeigt werden, wenn ein Einschreiten durch berufliche Parteienvertretung geschieht so kann dies mittels dieses Schalters veranlasst werden + + + + + Default Verbindungsparameter zum SZR-Gateway (für den EGIZ-Demonstrator im internen Netzwerk: https://129.27.142.5:8443/szr-gateway/services/MandateCreation) + + + + + Falls keine speziellen beruflichen ParteienvertreterInnen definiert sind (Element kommt nicht vor), werden ausschließlich standardisierte Vollmachten mit einer MandateID="*" akzeptiert + + + + + + + + + Konfiguration eines vom Standardprozess abweichenden Verarbeitungsvorgangs bei der beruflichen Parteienvertretung. Der Wert dieses Elements ist der vollständige Klassenname des InputProzessors + + + + + + Optionale Verbindungsparameter zu speziellem (SZR-)Gateway + + + + + + OID der Parteienvertretung lt. "Object Identifier der öffentlichen Verwaltung" - Konvention, Empfehlung. Diese ID muss mit der MandateID der übermittelten standardisierten Vollmacht übereinstimmen. Eine Parteienvertretung für standardisierte Vollmachten mit der MandateID "*" muss nicht definiert werden und erlaubt eine allgemeine berufliche Parteienvertretung mit Standardtexten. In anderen Fällen ist eine erlaubte OID mitttels dieses Attributs zu definieren + + + + + + Legt fest, ob berufliche Parteienvertretung für natürliche Personen erlaubt ist + + + + + + + + Legt fest, ob berufliche Parteienvertretung für juristische Personen erlaubt ist (welche z.B. ein Organwalter nicht vertreten darf und dieser Wert aus diesem Grund dort false sein muss) + + + + + + + + Beschreibender Text, der an Stelle des Standardtexts bei der Signatur der Anmeldedaten im Falle einer vorliegenden beruflichen Parteienvertretung zur Signatur vorgelegt wird + + + + + diff --git a/id/server/doc/MOA-ID-Configuration-1.4.xsd b/id/server/doc/MOA-ID-Configuration-1.4.xsd deleted file mode 100644 index 66a9c0ed4..000000000 --- a/id/server/doc/MOA-ID-Configuration-1.4.xsd +++ /dev/null @@ -1,505 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enthält Parameter der - Authentisierungs-Komponente - - - - - enthält Konfigurationsparameter der - Proxy-Komponente - - - - - - enthält Parameter für die Kommunikation zw. - Proxykomponente und Authenttisierungskomponente - - - - - - enthält Parameter für die SOAP-Verbindung von der - Proxy-Komponente zur Auth-Komponente (vgl. - AuthComponent/MOA-SP/ConnectionParameter) - - - - - - - - - - - enthält Parameter für die OA - - - - - - - - - - - - - - - - - - - - - - spezifiziert den Algorithmus ("pkix" oder "chaining") für die - Zertifikatspfadvalidierung - - - - - - ein vom SystemDefaultMode abweichender ChiningMode kann - für jeden TrustAnchor gesetzt werden - - - - - - - - - - - - - - - - verweist auf ein Verzeichnis, das vertrauenswürdige CA - (Zwischen-CA, Wurzel-CA) Zertifikate enthält. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enthält Parameter für die Kommunikation mit dem - Security-Layer - - - - - - - - - - enthält Konfiguratiosnparameter für die Kommunikation mit dem MOA - SP Modul - - - - - - enthält Parameter für die SOAP-Verbindung von der - AUTH-Komponente zu MOA-SP; das Attribut URL enthält den Endpunkt des Server; - wird das Schema "https" verwendet müssen die Kind-Elemente angegeben werden; - wird das Schema "http" verwendet dürfen keine Kind-Elemente angegeben - werden; wird das Element nicht verwendet dann wird MOA-SP über das API - aufgerufen - - - - - enthält Parameter für die Überprüfung der - Personenbindung - - - - - - - - - - enthält Parameter für die Überprüfung des - AUTH-Blocks - - - - - - - - - - - - - - enthält Informationen über akzeptierte Signers des - IdentityLinks - - - - - - akzeptierte Signer des IdentityLinks werden per - X509SubjectName (Kodierung nach RFC 2253) identifiziert - - - - - - - - enthält Defaultparameter für die Überprüfung weiterer Infoboxen - - - - - - - das Attribut filename verweist auf eine Datei mit globalem - Element TransformsInfo vom Typ sl10:TransformsInfo; diese TransformsInfo - werden in den CreateXMLSignatureRequest für die Signatur des AUTH-Blocks - inkludiert - - - - - - - - - - - - das Attribut URL spezifiziert die Lage des Templates - - - - - - Verifikation zusätzlicher Infoboxen - - - - - Optionales DefaultTrustprofil für die Überprüfung aller weiteren Infoboxen - - - - - - - - - - Parameter für Überprüfung weiterer Infoboxen - - - - - - optionalervName, der für Fehlermeldungen verwendet werden soll; - z.B.: "Stellvertretungen" für "Mandates"; fehlt dieser Parameter, dann wird - das Identifier-Attribut verwendet - - - - - TrustProfil, das für die Überprüfung der Infobox - verwendet werden soll - - - - - Validatorklasse, die für die Prüfung der Infobox - verwendet werden soll; muss gesetzt werden, wenn Package- und Klassenname - vom Default Package- und Klassennamen abweichen - - - - - - Infobox spezifische Parameter, die der jeweiligen Prüfapplikation - übergeben werden - - - - - - - - - - - - - - - - - - - Spezifiziert die Lage von XML Schemas - - - - - - - - - - - - - - - - enthält Parameter über die OA, die die - Authentisierungs-Komponente betreffen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enthält Parameter über die OA, die die Proxy-Komponente - betreffen - - - - - - enthält Parameter über die OA, die die Proxy-Komponente - betreffen - - - - - - - - - - - - - - - - - - URL zu einem Verzeichnis, das akzeptierte Server-Zertifikate der - TLS-Verbindung enthält (keine CA-Zertifikate) - - - - - - - - - - - - URL zu einem KeyStore, der den privaten Schlüssel, der für - die TLS-Client-Authentisierung verwendetwird, enthält - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/id/server/doc/moa_id/id-admin.htm b/id/server/doc/moa_id/id-admin.htm index 4c5a29b26..8238c7c2d 100644 --- a/id/server/doc/moa_id/id-admin.htm +++ b/id/server/doc/moa_id/id-admin.htm @@ -105,17 +105,18 @@ Für den Betrieb von MOA-ID-AUTH sind unterschiedliche Szenarien möglic
Basis-Installation von MOA-ID-AUTH
-

+

Die Basis-Installation stellt einerseits die minimalen Anforderungen für den Betrieb von MOA-ID-AUTH dar, andererseits dient sie als Ausgangspunkt für weitere (optionale) Konfigurations-Möglichkeiten.

Folgende Software ist Voraussetzung für die Basis-Installation: -
+
    -
  • JDK 1.4.0, JDK 1.4.2 oder JDK 1.5.0
  • -
  • Tomcat 4.1.31 oder Tomcat 5.0.28
  • +
  • JDK 1.4.0, JDK 1.4.2, JDK 1.5.0 oder JDK 1.6
  • +
  • Tomcat 4.1.31, Tomcat 5.0.28, Tomcat 5.5 oder Tomcat 6
  • MOA-ID-AUTH 1.4
  • MOA SP/SS 1.4 oder neuer (entweder als WebService oder direkt als interne Bibliothek)
+
Um möglichen Versionskonflikten aus dem Weg zu gehen sollten stets die neuesten Versionen von MOA-ID als auch von MOA-SP/SS verwendet werden.
In diesem Betriebs-Szenario wird MOA-ID-AUTH in Tomcat deployt. Tomcat fungiert gleichzeitig als HTTP- und HTTPS-Endpunkt für MOA-ID-AUTH. Beide Protokolle werden direkt in Tomcat konfiguriert. @@ -236,10 +237,10 @@ Die Versionsangaben beziehen sich auf die Versionen, mit denen die MOA ID Webapp JDK (SDK) - min. 1.4.0 bzw.
+

min. 1.4.0 bzw.
1.4.2

- 1.5.0 - + 1.5.0

+ Tomcat diff --git a/id/server/doc/moa_id/id-admin_1.htm b/id/server/doc/moa_id/id-admin_1.htm index 7b9ea9c1d..3e320d850 100644 --- a/id/server/doc/moa_id/id-admin_1.htm +++ b/id/server/doc/moa_id/id-admin_1.htm @@ -124,7 +124,7 @@ Unterschiede sind in der Installationsanweisung angeführt. für 1.5.0.

- +
@@ -425,7 +425,7 @@ FATAL | 03 13:19:06,924 | main | Fehler In diesem Fall geben die WARN bzw. ERROR Log-Meldungen unmittelbar davor Aufschluss über den genaueren Grund.
-
+
@@ -519,7 +519,7 @@ Wenn nun versucht wird, eine Transaktion mit einer ungültigen SessionID fort

-
+

@@ -530,7 +530,7 @@ Wenn nun versucht wird, eine Transaktion mit einer ungültigen SessionID fort

-
© 2004
+
© 2010

diff --git a/id/server/doc/moa_id/id-admin_2.htm b/id/server/doc/moa_id/id-admin_2.htm index e934dc6cc..76df09e54 100644 --- a/id/server/doc/moa_id/id-admin_2.htm +++ b/id/server/doc/moa_id/id-admin_2.htm @@ -115,14 +115,14 @@ Projekt moa  - +
Konfiguration von MOA ID v.1.4

Konfiguration von MOA ID v.1.4

Die Konfiguration von MOA ID wird mittels einer XML-basierten Konfigurationsdatei, die dem Schema - MOA-ID-Configuration-1.4.3.xsd entspricht, durchgeführt. -

Der Ort der Konfigurationsdatei wird im Abschnitt Deployment + MOA-ID-Configuration-1.4.7.xsd entspricht, durchgeführt. +

Der Ort der Konfigurationsdatei wird im Abschnitt Deployment der Web-Applikation in Tomcat beschrieben.

Die folgenden Abschnitte erläutern das Format der Konfigurationsdatei. MOA-ID-Configuration.xml @@ -251,8 +251,8 @@ Projekt moa  dieses Handbuches entnommen werden.

-
-
+ +

AuthComponent/SecurityLayer
Das Element SecurityLayer enthält Parameter zur Nutzung des Security-Layers.
@@ -289,12 +289,7 @@ Projekt moa  von MOA-SP gesetzt werden. Eine beispielhafte MOA-SP Konfigurationsdatei ist in $MOA_ID_INST_AUTH/conf/moa-spss/SampleMOASPSSConfiguration.xml enthalten.

-
-
- - - - +
@@ -321,14 +316,8 @@ Projekt moa  zur überprüfung der Signatur des Auth-Blocks verwendet werden müssen. Diese TrustProfileID muss beim verwendeten MOA-SP Modul konfiguriert sein.

-
-
-
- - - - -
+ +

AuthComponent/IdentityLinkSigners @@ -533,13 +522,16 @@ Projekt moa  -
+


Eine Beispielkonfiguration finden sie am Ende das Abschnitts - OnlineApplication/AuthComponent/VerifyInfoboxes. -
-
+ OnlineApplication/AuthComponent/VerifyInfoboxes. +

-
+

AuthComponent/ForeignIdentities
+Ab Version 1.4.7 bietet MOA-ID die Möglichkeit der Nutzung von ausländischen Karten. Hierfür ist ein Stammzahlenregister-Gateway nötig, dass einen entsprechenden Zugang zum Stammzahlenregister bereitstellt. Es ist hierzu ein ensprechenden ConnectionParameter zu definieren, der die Zugangsdaten zum Gateway bereithält (siehe ConnectionParameter).
+

+

+

ProxyComponent
@@ -1457,7 +1449,7 @@ Im Falle einer fehlerhaften neuen Konfiguration wird die ursprüngliche Konf


-
© 2004
+
© 2010

diff --git a/id/server/doc/moa_id/links.htm b/id/server/doc/moa_id/links.htm index 06aa7afcc..ef6c09083 100644 --- a/id/server/doc/moa_id/links.htm +++ b/id/server/doc/moa_id/links.htm @@ -66,8 +66,7 @@ Projekt moa 
- +
MOA Links
@@ -76,28 +75,28 @@ MOA ist eine Entwicklung des Bundesrechenzentrums BRZ in Zusammenarbeit mit A-Tr

Externe Komponenten

+http://httpd.apache.org/
+http://www.iis.net/
+http://tomcat.apache.org/
Tomcat mod_SSL
-http://httpd.apache.org/docs-2.0/ssl
+http://httpd.apache.org/docs/2.2/ssl/
Tomcat mod_jk
-http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2
+http://tomcat.apache.org/connectors-doc/
Logging Toolkit
-http://jakarta.apache.org/log4j/docs/
+http://jakarta.apache.org/log4j/
IAIK JCE
http://jce.iaik.tugraz.at/products/index.php
PostgreSQL
-http://techdocs.postgresql.org
+http://www.postgresql.org/

Spezifikationen

@@ -108,20 +107,24 @@ MOA ist eine Entwicklung des Bundesrechenzentrums BRZ in Zusammenarbeit mit A-Tr - + - + + + -
Auswahl von Bürgerkartenumgebungen Version 1.0.0
-bku-auswahl.20030408.pdf
-

- - + + +   +   + + @@ -131,7 +134,8 @@ MOA ist eine Entwicklung des Bundesrechenzentrums BRZ in Zusammenarbeit mit A-Tr

-
© 2003
+
© 2010 +

diff --git a/id/server/doc/moa_id/moa.htm b/id/server/doc/moa_id/moa.htm index 05a2d3007..d899dd94c 100644 --- a/id/server/doc/moa_id/moa.htm +++ b/id/server/doc/moa_id/moa.htm @@ -238,7 +238,7 @@ an den Benutzer weitergeleitet und die Anfragen des Benutzers an die OA weiterge

-
© 2004
+
© 2010

diff --git a/id/server/idserverlib/.classpath b/id/server/idserverlib/.classpath index 1c79cc393..f0e483a4a 100644 --- a/id/server/idserverlib/.classpath +++ b/id/server/idserverlib/.classpath @@ -1,9 +1,13 @@ - - - - - - - - - + + + + + + + + + + + + + diff --git a/id/server/idserverlib/.settings/org.eclipse.wst.common.component b/id/server/idserverlib/.settings/org.eclipse.wst.common.component index 554e24c0b..87b873d7b 100644 --- a/id/server/idserverlib/.settings/org.eclipse.wst.common.component +++ b/id/server/idserverlib/.settings/org.eclipse.wst.common.component @@ -1,8 +1,7 @@ - - - - - - - - + + + + + + + diff --git a/id/server/idserverlib/pom.xml b/id/server/idserverlib/pom.xml index c0f704522..45b46242e 100644 --- a/id/server/idserverlib/pom.xml +++ b/id/server/idserverlib/pom.xml @@ -2,14 +2,14 @@ MOA.id moa-id - 1.4.6 + 1.4.7 4.0.0 MOA.id.server moa-id-lib jar - 1.4.6 + 1.4.7 MOA ID API @@ -117,10 +117,10 @@ regexp regexp - + at.gv.egovernment.moa.id mandate-validate diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java index 971fbcef2..fcaa4f053 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java @@ -19,7 +19,6 @@ import iaik.pki.PKIException; import iaik.x509.X509Certificate; import java.io.File; -import java.io.FileOutputStream; import java.io.IOException; import java.security.GeneralSecurityException; import java.util.Calendar; @@ -34,7 +33,6 @@ import java.util.Vector; import javax.xml.transform.TransformerException; -import org.apache.axis.AxisFault; import org.w3c.dom.Element; import at.gv.egovernment.moa.id.AuthenticationException; @@ -90,7 +88,6 @@ import at.gv.egovernment.moa.id.util.Random; import at.gv.egovernment.moa.id.util.SSLUtils; import at.gv.egovernment.moa.logging.LogMsg; import at.gv.egovernment.moa.logging.Logger; -import at.gv.egovernment.moa.spss.MOASystemException; import at.gv.egovernment.moa.util.Base64Utils; import at.gv.egovernment.moa.util.BoolUtils; import at.gv.egovernment.moa.util.Constants; @@ -176,9 +173,9 @@ public class AuthenticationServer implements MOAIDAuthConstants { if ((!authURL.startsWith("https:")) && (false == BoolUtils.valueOf(boolStr))) throw new AuthenticationException("auth.07", new Object[] { authURL + "*" }); if (isEmpty(authURL)) - throw new WrongParametersException("StartAuthentication", "AuthURL"); + throw new WrongParametersException("StartAuthentication", "AuthURL", "auth.5"); if (isEmpty(oaURL)) - throw new WrongParametersException("StartAuthentication", PARAM_OA); + throw new WrongParametersException("StartAuthentication", PARAM_OA, "auth.5"); ConnectionParameter bkuConnParam = AuthConfigurationProvider.getInstance().getBKUConnectionParameter(); @@ -193,7 +190,7 @@ public class AuthenticationServer implements MOAIDAuthConstants { if (!oaParam.getBusinessService()) { if (isEmpty(target)) - throw new WrongParametersException("StartAuthentication", PARAM_TARGET); + throw new WrongParametersException("StartAuthentication", PARAM_TARGET, "auth.5"); } else { if (!isEmpty(target)) { Logger.info("Ignoring target parameter thus application type is \"businessService\""); @@ -220,7 +217,7 @@ public class AuthenticationServer implements MOAIDAuthConstants { // bkuSelectionType==HTMLSelect String bkuSelectTag; try { - bkuSelectTag = readBKUSelectTag(AuthConfigurationProvider.getInstance(), bkuConnParam); + bkuSelectTag = readBKUSelectTag(AuthConfigurationProvider.getInstance(), bkuConnParam); } catch (Throwable ex) { throw new AuthenticationException( "auth.11", @@ -273,9 +270,9 @@ public class AuthenticationServer implements MOAIDAuthConstants { *
  • Creates an HTML form for querying the identity link from the * security layer implementation. *
    Form parameters include - *
      + *
        *
      • the <InfoboxReadRequest>
      • - *
      • the data URL where the security layer implementation sends it response to
      • + *
      • the data URL where the security layer implementation sends it response to
      • *
      *
    * @param authURL URL of the servlet to be used as data URL @@ -302,7 +299,7 @@ public class AuthenticationServer implements MOAIDAuthConstants { if (isEmpty(sessionID)) { if (isEmpty(authURL)) - throw new WrongParametersException("StartAuthentication", "AuthURL"); + throw new WrongParametersException("StartAuthentication", "AuthURL", "auth.5"); //check if HTTP Connection may be allowed (through FRONTEND_SERVLETS_ENABLE_HTTP_CONNECTION_PROPERTY) String boolStr = @@ -311,7 +308,7 @@ public class AuthenticationServer implements MOAIDAuthConstants { if ((!authURL.startsWith("https:")) && (false == BoolUtils.valueOf(boolStr))) throw new AuthenticationException("auth.07", new Object[] { authURL + "*" }); if (isEmpty(oaURL)) - throw new WrongParametersException("StartAuthentication", PARAM_OA); + throw new WrongParametersException("StartAuthentication", PARAM_OA, "auth.5"); } AuthenticationSession session; OAAuthParameter oaParam; @@ -327,7 +324,7 @@ public class AuthenticationServer implements MOAIDAuthConstants { throw new AuthenticationException("auth.00", new Object[] { oaURL }); if (!oaParam.getBusinessService()) { if (isEmpty(target)) - throw new WrongParametersException("StartAuthentication", PARAM_TARGET); + throw new WrongParametersException("StartAuthentication", PARAM_TARGET, "auth.5"); } else { target = null; } @@ -411,8 +408,8 @@ public class AuthenticationServer implements MOAIDAuthConstants { *
  • Verifies all additional infoboxes returned from the BKU
  • *
  • Creates an authentication block to be signed by the user
  • *
  • Creates and returns a <CreateXMLSignatureRequest> - * containg the authentication block, meant to be returned to the - * security layer implementation
  • + * containg the authentication block, meant to be returned to the + * security layer implementation * * * @param sessionID ID of associated authentication session data @@ -441,6 +438,23 @@ public class AuthenticationServer implements MOAIDAuthConstants { throw new AuthenticationException("auth.01", new Object[] { sessionID }); session.setTimestampIdentityLink(); AuthConfigurationProvider authConf = AuthConfigurationProvider.getInstance(); + + // check if an identity link was found + // Errorcode 2911 von Trustdesk BKU (nicht spezifikationskonform (SL1.2)) + CharSequence se = "ErrorCode>2911".substring(0); + boolean b = xmlInfoboxReadResponse.contains(se); + if (b) { // no identity link found + Logger.info("Es konnte keine Personenbindung auf der Karte gefunden werden. Versuche Anmeldung als ausländische eID."); + return null; + } + // spezifikationsgemäßer (SL1.2) Errorcode + se = "ErrorCode>4002"; + b = xmlInfoboxReadResponse.contains(se); + if (b) { // Unbekannter Infoboxbezeichner + Logger.info("Unbekannter Infoboxbezeichner. Versuche Anmeldung als ausländische eID."); + return null; + } + // parses the IdentityLink identityLink = new InfoboxReadResponseParser(xmlInfoboxReadResponse).parseIdentityLink(); @@ -495,6 +509,18 @@ public class AuthenticationServer implements MOAIDAuthConstants { if (authConf==null) authConf = AuthConfigurationProvider.getInstance(); if (oaParam==null) oaParam = AuthConfigurationProvider.getInstance(). getOnlineApplicationParameter(session.getPublicOAURLPrefix()); + + //BZ.., calculate bPK for signing to be already present in AuthBlock + IdentityLink identityLink = session.getIdentityLink(); + if (identityLink.getIdentificationType().equals(Constants.URN_PREFIX_BASEID)) { + // only compute bPK if online application is a public service and we have the Stammzahl + String bpkBase64 = new BPKBuilder().buildBPK( + identityLink.getIdentificationValue(), + session.getTarget()); + identityLink.setIdentificationValue(bpkBase64); + } + //..BZ + // builds the AUTH-block String authBlock = buildAuthenticationBlock(session); @@ -513,6 +539,186 @@ public class AuthenticationServer implements MOAIDAuthConstants { return createXMLSignatureRequest; } + /** + * Returns a CreateXMLSignatureRequest for the foreign ID.
    + * + * @param sessionID ID of associated authentication session data + * @param infoboxReadResponseParameters The parameters from the response returned from + * the BKU + * @param cert The certificate of the foreign ID + * @return String representation of the <CreateXMLSignatureRequest> + */ + public String getCreateXMLSignatureRequestForeignID(String sessionID, Map infoboxReadResponseParameters, X509Certificate cert) + throws + AuthenticationException, + BuildException, + ParseException, + ConfigurationException, + ValidateException, + ServiceException { + + if (isEmpty(sessionID)) + throw new AuthenticationException("auth.10", new Object[] { REQ_VERIFY_IDENTITY_LINK, PARAM_SESSIONID}); + + + AuthenticationSession session = getSession(sessionID); + AuthConfigurationProvider authConf = AuthConfigurationProvider.getInstance(); + + OAAuthParameter oaParam = + AuthConfigurationProvider.getInstance().getOnlineApplicationParameter( + session.getPublicOAURLPrefix()); + + + return getCreateXMLSignatureRequestForeignID(session, authConf, oaParam); + } + + public String getCreateXMLSignatureRequestForeignID(AuthenticationSession session, AuthConfigurationProvider authConf, OAAuthParameter oaParam) + throws + ConfigurationException, + BuildException, + ValidateException { + + + if (authConf==null) authConf = AuthConfigurationProvider.getInstance(); + if (oaParam==null) oaParam = AuthConfigurationProvider.getInstance(). + getOnlineApplicationParameter(session.getPublicOAURLPrefix()); + + //BZ.., calculate bPK for signing to be already present in AuthBlock +// IdentityLink identityLink = session.getIdentityLink(); +// if (identityLink.getIdentificationType().equals(Constants.URN_PREFIX_BASEID)) { +// // only compute bPK if online application is a public service and we have the Stammzahl +// String bpkBase64 = new BPKBuilder().buildBPK( +// identityLink.getIdentificationValue(), +// session.getTarget()); +// identityLink.setIdentificationValue(bpkBase64); +// } + //..BZ + + + // builds the AUTH-block + String authBlock = buildAuthenticationBlock(session); +// session.setAuthBlock(authBlock); + // builds the + String[] transformsInfos = oaParam.getTransformsInfos(); + if ((transformsInfos == null) || (transformsInfos.length == 0)) { + // no OA specific transforms specified, use default ones + transformsInfos = authConf.getTransformsInfos(); + } + String createXMLSignatureRequest = + new CreateXMLSignatureRequestBuilder().build(authBlock, + oaParam.getKeyBoxIdentifier(), + transformsInfos, + oaParam.getSlVersion12()); + return createXMLSignatureRequest; +} + + /** + * Processes an <CreateXMLSignatureResponse> sent by the + * security layer implementation.
    + *
      + *
    • Validates given <CreateXMLSignatureResponse>
    • + *
    • Parses response enclosed in <CreateXMLSignatureResponse>
    • + *
    • Verifies signature by calling the MOA SP component
    • + *
    • Returns the signer certificate
    • + *
    + * + * @param sessionID ID of associated authentication session data + * @param createXMLSignatureResponseParameters The parameters from the response returned from + * the BKU including the <CreateXMLSignatureResponse> + */ + public X509Certificate verifyXMLSignature(String sessionID, Map createXMLSignatureResponseParameters) + throws + AuthenticationException, + BuildException, + ParseException, + ConfigurationException, + ValidateException, + ServiceException { + + + if (isEmpty(sessionID)) + throw new AuthenticationException("auth.10", new Object[] { REQ_GET_FOREIGN_ID, PARAM_SESSIONID}); + + + String xmlCreateXMLSignatureResponse = (String)createXMLSignatureResponseParameters.get(PARAM_XMLRESPONSE); + + System.out.println(xmlCreateXMLSignatureResponse); + + if (isEmpty(xmlCreateXMLSignatureResponse)) + throw new AuthenticationException("auth.10", new Object[] { REQ_GET_FOREIGN_ID, PARAM_XMLRESPONSE}); + + AuthenticationSession session = getSession(sessionID); + /*if (session.getTimestampIdentityLink() != null) + throw new AuthenticationException("auth.01", new Object[] { sessionID });*/ + //session.setTimestampIdentityLink(); + AuthConfigurationProvider authConf = AuthConfigurationProvider.getInstance(); + + + // parses the + CreateXMLSignatureResponseParser p = new CreateXMLSignatureResponseParser(xmlCreateXMLSignatureResponse); + CreateXMLSignatureResponse createXMLSignatureResponse = p.parseResponseDsig(); + + // builds a for a call of MOA-SP + Element domVerifyXMLSignatureRequest = + new VerifyXMLSignatureRequestBuilder().buildDsig( + createXMLSignatureResponse, authConf.getMoaSpAuthBlockTrustProfileID()); + + // invokes the call + Element domVerifyXMLSignatureResponse = + new SignatureVerificationInvoker().verifyXMLSignature(domVerifyXMLSignatureRequest); + + // parses the + VerifyXMLSignatureResponse verifyXMLSignatureResponse = + new VerifyXMLSignatureResponseParser(domVerifyXMLSignatureResponse).parseData(); + + + //int code = verifyXMLSignatureResponse.getSignatureCheckCode(); + + return verifyXMLSignatureResponse.getX509certificate(); + + } + + /** + * Processes an <CreateXMLSignatureResponse> sent by the + * security layer implementation.
    + *
      + *
    • Validates given <CreateXMLSignatureResponse>
    • + *
    • Parses response enclosed in <CreateXMLSignatureResponse>
    • + *
    • Verifies signature by calling the MOA SP component
    • + *
    • Returns the signer certificate
    • + *
    + * + * @param sessionID ID of associated authentication session data + * @param readInfoboxResponseParameters The parameters from the response returned from + * the BKU including the <ReadInfoboxResponse> + */ + public X509Certificate getCertificate(String sessionID, Map readInfoboxResponseParameters) + throws + AuthenticationException, + BuildException, + ParseException, + ConfigurationException, + ValidateException, + ServiceException { + + + if (isEmpty(sessionID)) + throw new AuthenticationException("auth.10", new Object[] { REQ_VERIFY_CERTIFICATE, PARAM_SESSIONID}); + + + String xmlReadInfoboxResponse = (String)readInfoboxResponseParameters.get(PARAM_XMLRESPONSE); + + if (isEmpty(xmlReadInfoboxResponse)) + throw new AuthenticationException("auth.10", new Object[] { REQ_VERIFY_CERTIFICATE, PARAM_XMLRESPONSE}); + + // parses the + InfoboxReadResponseParser p = new InfoboxReadResponseParser(xmlReadInfoboxResponse); + X509Certificate cert = p.parseCertificate(); + + return cert; + + } + /** * Builds an authentication block <saml:Assertion> from given session data. * @param session authentication session @@ -523,16 +729,19 @@ public class AuthenticationServer implements MOAIDAuthConstants { * to be appended to the AUTH-Block. */ private String buildAuthenticationBlock(AuthenticationSession session) throws BuildException { - IdentityLink identityLink = session.getIdentityLink(); - String issuer = identityLink.getName(); - String gebDat = identityLink.getDateOfBirth(); - String identificationValue = identityLink.getIdentificationValue(); - String identificationType = identityLink.getIdentificationType(); - String issueInstant = DateTimeUtils.buildDateTime(Calendar.getInstance()); + IdentityLink identityLink = session.getIdentityLink(); + String issuer = identityLink.getName(); + String gebDat = identityLink.getDateOfBirth(); + String identificationValue = identityLink.getIdentificationValue(); + String identificationType = identityLink.getIdentificationType(); + + String issueInstant = DateTimeUtils.buildDateTime(Calendar.getInstance()); session.setIssueInstant(issueInstant); String authURL = session.getAuthURL(); String target = session.getTarget(); - String oaURL = session.getPublicOAURLPrefix(); + //Bug #485 (https://egovlabs.gv.at/tracker/index.php?func=detail&aid=485&group_id=6&atid=105) + //String oaURL = session.getPublicOAURLPrefix(); + String oaURL = session.getPublicOAURLPrefix().replaceAll("&", "&"); List extendedSAMLAttributes = session.getExtendedSAMLAttributesAUTH(); String authBlock = new AuthenticationBlockAssertionBuilder().buildAuthBlock( issuer, @@ -824,19 +1033,19 @@ public class AuthenticationServer implements MOAIDAuthConstants { *
  • Validates given <CreateXMLSignatureResponse>
  • *
  • Parses <CreateXMLSignatureResponse> for error codes
  • *
  • Parses authentication block enclosed in - * <CreateXMLSignatureResponse>
  • + * <CreateXMLSignatureResponse> *
  • Verifies authentication block by calling the MOA SP component
  • *
  • Creates authentication data
  • *
  • Creates a corresponding SAML artifact
  • *
  • Stores authentication data in the authentication data store - * indexed by the SAML artifact
  • + * indexed by the SAML artifact *
  • Deletes authentication session
  • *
  • Returns the SAML artifact, encoded BASE64
  • * * * @param sessionID session ID of the running authentication session * @param xmlCreateXMLSignatureReadResponse String representation of the - * <CreateXMLSignatureResponse> + * <CreateXMLSignatureResponse> * @return SAML artifact needed for retrieving authentication data, encoded BASE64 */ public String verifyAuthenticationBlock( @@ -851,9 +1060,9 @@ public class AuthenticationServer implements MOAIDAuthConstants { ValidateException { if (isEmpty(sessionID)) - throw new AuthenticationException("auth.10", new Object[] { REQ_VERIFY_AUTH_BLOCK, PARAM_SESSIONID}); + throw new AuthenticationException("auth.10", new Object[] { REQ_VERIFY_AUTH_BLOCK, PARAM_SESSIONID}); if (isEmpty(xmlCreateXMLSignatureReadResponse)) - throw new AuthenticationException("auth.10", new Object[] { REQ_VERIFY_AUTH_BLOCK, PARAM_XMLRESPONSE}); + throw new AuthenticationException("auth.10", new Object[] { REQ_VERIFY_AUTH_BLOCK, PARAM_XMLRESPONSE}); AuthenticationSession session = getSession(sessionID); AuthConfigurationProvider authConf = AuthConfigurationProvider.getInstance(); // parses @@ -874,11 +1083,11 @@ public class AuthenticationServer implements MOAIDAuthConstants { String tpid = authConf.getMoaSpAuthBlockTrustProfileID(); Element domVsreq = new VerifyXMLSignatureRequestBuilder().build(csresp, vtids, tpid); // debug output - + // invokes the call Element domVsresp = new SignatureVerificationInvoker().verifyXMLSignature(domVsreq); // debug output - + // parses the VerifyXMLSignatureResponse vsresp = new VerifyXMLSignatureResponseParser(domVsresp).parseData(); @@ -1015,6 +1224,150 @@ public class AuthenticationServer implements MOAIDAuthConstants { "Anmeldedaten zu MOASession " + sessionID + " angelegt, SAML Artifakt " + samlArtifact); return samlArtifact; } + + /** + * Gets the foreign authentication data.
    + *
      + *
    • Creates authentication data
    • + *
    • Creates a corresponding SAML artifact
    • + *
    • Stores authentication data in the authentication data store + * indexed by the SAML artifact
    • + *
    • Deletes authentication session
    • + *
    • Returns the SAML artifact, encoded BASE64
    • + *
    + * + * @param sessionID session ID of the running authentication session + * @return SAML artifact needed for retrieving authentication data, encoded BASE64 + */ + public String getForeignAuthenticationData( + String sessionID) + throws + AuthenticationException, + BuildException, + ParseException, + ConfigurationException, + ServiceException, + ValidateException { + + if (isEmpty(sessionID)) + throw new AuthenticationException("auth.10", new Object[] { REQ_VERIFY_AUTH_BLOCK, PARAM_SESSIONID}); + + AuthenticationSession session = getSession(sessionID); + //AuthConfigurationProvider authConf = AuthConfigurationProvider.getInstance(); + try { + String serializedAssertion = DOMUtils.serializeNode(session.getIdentityLink().getSamlAssertion()); + session.setAuthBlock(serializedAssertion); + } catch (TransformerException e) { + throw new ParseException("parser.04", new Object[] { REQ_VERIFY_AUTH_BLOCK, PARAM_XMLRESPONSE}); + } catch (IOException e) { + throw new ParseException("parser.04", new Object[] { REQ_VERIFY_AUTH_BLOCK, PARAM_XMLRESPONSE}); + } + // post processing of the infoboxes + Iterator iter = session.getInfoboxValidatorIterator(); + boolean formpending = false; + if (iter != null) { + while (!formpending && iter.hasNext()) { + Vector infoboxValidatorVector = (Vector) iter.next(); + String identifier = (String) infoboxValidatorVector.get(0); + String friendlyName = (String) infoboxValidatorVector.get(1); + InfoboxValidator infoboxvalidator = (InfoboxValidator) infoboxValidatorVector.get(2); + InfoboxValidationResult infoboxValidationResult = null; + try { + infoboxValidationResult = infoboxvalidator.validate(session.getIdentityLink().getSamlAssertion()); + } catch (ValidateException e) { + Logger.error("Error validating " + identifier + " infobox:" + e.getMessage()); + throw new ValidateException( + "validator.44", new Object[] {friendlyName}); + } + if (!infoboxValidationResult.isValid()) { + Logger.info("Validation of " + identifier + " infobox failed."); + throw new ValidateException( + "validator.40", new Object[] {friendlyName, infoboxValidationResult.getErrorMessage()}); + } + String form = infoboxvalidator.getForm(); + if (ParepUtils.isEmpty(form)) { + AddAdditionalSAMLAttributes(session, infoboxValidationResult.getExtendedSamlAttributes(), identifier, friendlyName); + } else { + return "Redirect to Input Processor"; + } + } + } + + // Exchange person data information by a mandate if needed + List oaAttributes = session.getExtendedSAMLAttributesOA(); + IdentityLink replacementIdentityLink = null; + if (session.isMandateCompatibilityMode() && oaAttributes != null && oaAttributes.size()>0) { + // look if we have a mandate + boolean foundMandate = false; + Iterator it = oaAttributes.iterator(); + while (!foundMandate && it.hasNext()) { + ExtendedSAMLAttribute samlAttribute = (ExtendedSAMLAttribute)it.next(); + if (ParepValidator.EXT_SAML_MANDATE_RAW.equals(samlAttribute.getName())) { + Object value = samlAttribute.getValue(); + if (value instanceof Element) { + Element mandate = (Element) value; + replacementIdentityLink = new IdentityLink(); + Element mandator = ParepUtils.extractMandator(mandate); + String dateOfBirth = ""; + Element prPerson = null; + String familyName = ""; + String givenName = ""; + String identificationType = ""; + String identificationValue = ""; + if (mandator != null) { + boolean physical = ParepUtils.isPhysicalPerson(mandator); + if (physical) { + familyName = ParepUtils.extractText(mandator, "descendant-or-self::pr:Name/pr:FamilyName/text()"); + givenName = ParepUtils.extractText(mandator, "descendant-or-self::pr:Name/pr:GivenName/text()"); + dateOfBirth = ParepUtils.extractMandatorDateOfBirth(mandator); + } else { + familyName = ParepUtils.extractMandatorFullName(mandator); + } + identificationType = ParepUtils.getIdentification(mandator, "Type"); + identificationValue = ParepUtils.extractMandatorWbpk(mandator); + prPerson = ParepUtils.extractPrPersonOfMandate(mandate); + if (physical && session.getBusinessService() && identificationType!=null && Constants.URN_PREFIX_BASEID.equals(identificationType)) { + // now we calculate the wbPK and do so if we got it from the BKU + identificationType = Constants.URN_PREFIX_WBPK + "+" + session.getDomainIdentifier(); + identificationValue = new BPKBuilder().buildWBPK(identificationValue, session.getDomainIdentifier()); + ParepUtils.HideStammZahlen(prPerson, true, null, null, true); + } + + } + replacementIdentityLink.setDateOfBirth(dateOfBirth); + replacementIdentityLink.setFamilyName(familyName); + replacementIdentityLink.setGivenName(givenName); + replacementIdentityLink.setIdentificationType(identificationType); + replacementIdentityLink.setIdentificationValue(identificationValue); + replacementIdentityLink.setPrPerson(prPerson); + try { + replacementIdentityLink.setSamlAssertion(session.getIdentityLink().getSamlAssertion()); + } catch (Exception e) { + throw new ValidateException("validator.64", null); + } + } else { + Logger.info("The type of Mandate SAML-Attribute is not \"org.w3c.dom.Element\""); + throw new ValidateException("validator.64", null); + } + } + } + } + + VerifyXMLSignatureResponse vsresp = new VerifyXMLSignatureResponse(); + X509Certificate cert = session.getForeignSignerCertificate(); + vsresp.setX509certificate(cert); + AuthenticationData authData = buildAuthenticationData(session, vsresp, replacementIdentityLink); + String samlArtifact = + new SAMLArtifactBuilder().build(session.getAuthURL(), session.getSessionID()); + storeAuthenticationData(samlArtifact, authData); + + // invalidates the authentication session + sessionStore.remove(sessionID); + Logger.info( + "Anmeldedaten zu MOASession " + sessionID + " angelegt, SAML Artifakt " + samlArtifact); + return samlArtifact; + } + /** * Builds the AuthenticationData object together with the * corresponding <saml:Assertion> @@ -1076,13 +1429,17 @@ public class AuthenticationServer implements MOAIDAuthConstants { authData.setWBPK(identityLink.getIdentificationValue()); } else { authData.setBPK(identityLink.getIdentificationValue()); + + //BZ.., calculation of bPK already before sending AUTHBlock + /* if (identityLink.getIdentificationType().equals(Constants.URN_PREFIX_BASEID)) { // only compute bPK if online application is a public service and we have the Stammzahl String bpkBase64 = new BPKBuilder().buildBPK( identityLink.getIdentificationValue(), session.getTarget()); authData.setBPK(bpkBase64); - } + }*/ + } String ilAssertion = oaParam.getProvideIdentityLink() @@ -1186,7 +1543,7 @@ public class AuthenticationServer implements MOAIDAuthConstants { * @param id Session ID * @return AuthenticationSession created * @exception AuthenticationException - * thrown when an AuthenticationSession is running + * thrown when an AuthenticationSession is running * already for the given session ID */ private static AuthenticationSession newSession() throws AuthenticationException { diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/MOAIDAuthConstants.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/MOAIDAuthConstants.java index 5aa1bf45e..88859dc3f 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/MOAIDAuthConstants.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/MOAIDAuthConstants.java @@ -54,6 +54,10 @@ public interface MOAIDAuthConstants { public static final String REQ_START_AUTHENTICATION = "StartAuthentication"; /** Request name {@link at.gv.egovernment.moa.id.auth.servlet.VerifyIdentityLinkServlet} is mapped to */ public static final String REQ_VERIFY_IDENTITY_LINK = "VerifyIdentityLink"; + /** Request name {@link at.gv.egovernment.moa.id.auth.servlet.GetForeignIDServlet} is mapped to */ + public static final String REQ_GET_FOREIGN_ID = "GetForeignID"; + /** Request name {@link at.gv.egovernment.moa.id.auth.servlet.VerifyCertificateServlet} is mapped to */ + public static final String REQ_VERIFY_CERTIFICATE = "VerifyCertificate"; /** Request name {@link at.gv.egovernment.moa.id.auth.servlet.ProcessValidatorInputServlet} is mapped to */ public static final String REQ_PROCESS_VALIDATOR_INPUT = "ProcessInput"; /** Request name {@link at.gv.egovernment.moa.id.auth.servlet.VerifyAuthenticationBlockServlet} is mapped to */ diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/WrongParametersException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/WrongParametersException.java index 398a6731d..f4827c189 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/WrongParametersException.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/WrongParametersException.java @@ -29,8 +29,10 @@ public class WrongParametersException extends MOAIDException { /** * Constructor */ - public WrongParametersException(String call, String parameter) { - super("auth.05", new Object[] {call, parameter}); + public WrongParametersException(String call, String parameter, String errorID) { + super(errorID, new Object[] {call, parameter}); + //super("auth.5", new Object[] {call, parameter}); + //super("auth.12", new Object[] {call, parameter}); } - + } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationBlockAssertionBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationBlockAssertionBuilder.java index f9d8e7091..d684c16c9 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationBlockAssertionBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationBlockAssertionBuilder.java @@ -18,11 +18,21 @@ package at.gv.egovernment.moa.id.auth.builder; import java.text.MessageFormat; import java.util.List; +import org.w3c.dom.Element; + import at.gv.egovernment.moa.id.BuildException; import at.gv.egovernment.moa.id.ParseException; import at.gv.egovernment.moa.id.auth.data.AuthenticationSession; +import at.gv.egovernment.moa.id.auth.data.ExtendedSAMLAttribute; +import at.gv.egovernment.moa.id.auth.data.ExtendedSAMLAttributeImpl; +import at.gv.egovernment.moa.id.config.ConfigurationException; +import at.gv.egovernment.moa.id.config.TargetToSectorNameMapper; +import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider; +import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; import at.gv.egovernment.moa.logging.Logger; import at.gv.egovernment.moa.util.Constants; +import at.gv.egovernment.moa.util.DOMUtils; +import at.gv.egovernment.moa.util.StringUtils; /** * Builder for the authentication block <saml:Assertion> @@ -66,6 +76,13 @@ public class AuthenticationBlockAssertionBuilder extends AuthenticationAssertion " " + NL + " " + NL; + + private static String PR_IDENTIFICATION_ATTRIBUTE = + " " + NL + + " {0}" + NL + + " {1}" + NL + + " " + NL; + /** * The number of SAML attributes included in this AUTH-Block (without the extended SAML attributes). */ @@ -123,20 +140,72 @@ public class AuthenticationBlockAssertionBuilder extends AuthenticationAssertion session.setSAMLAttributeGebeORwbpk(true); String gebeORwbpk = ""; String wbpkNSDeclaration = ""; + + //BZ.., reading OA parameters + OAAuthParameter oaParam; + try { + oaParam = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter( + session.getPublicOAURLPrefix()); + } catch (ConfigurationException e) { + Logger.error("Error on building AUTH-Block: " + e.getMessage()); + throw new BuildException("builder.00", new Object[] { "AUTH-Block", e.toString()}); + } + //..BZ + + if (target == null) { // OA is a business application if (!Constants.URN_PREFIX_HPI.equals(identityLinkType)) { - // Only add wbPKs to AUTH-Block. HPIs can be added to the AUTH-Block by the corresponding Validator - gebeORwbpk = MessageFormat.format(WBPK_ATTRIBUTE, new Object[] { identityLinkValue, identityLinkType }); - wbpkNSDeclaration = " xmlns:pr=\"" + PD_NS_URI + "\""; + // Only add wbPKs to AUTH-Block. HPIs can be added to the AUTH-Block by the corresponding Validator + gebeORwbpk = MessageFormat.format(WBPK_ATTRIBUTE, new Object[] { identityLinkValue, identityLinkType }); + wbpkNSDeclaration = " xmlns:pr=\"" + PD_NS_URI + "\""; + + //BZ.., adding type of wbPK domain identifier + ExtendedSAMLAttribute idLinkDomainIdentifierTypeAttribute = + new ExtendedSAMLAttributeImpl("IdentityLinkDomainIdentifierType", oaParam.getIdentityLinkDomainIdentifierType(), Constants.MOA_NS_URI, ExtendedSAMLAttribute.ADD_TO_AUTHBLOCK_ONLY); + + extendedSAMLAttributes.add(idLinkDomainIdentifierTypeAttribute); + //..BZ + } else { - // We do not have a wbPK, therefore no SAML-Attribute is provided - session.setSAMLAttributeGebeORwbpk(false); + // We do not have a wbPK, therefore no SAML-Attribute is provided + session.setSAMLAttributeGebeORwbpk(false); } } else { - gebeORwbpk = MessageFormat.format(GESCHAEFTS_BEREICH_ATTRIBUTE, new Object[] { target }); + // OA is a govermental application + //BZ.. + String sectorName = TargetToSectorNameMapper.getSectorNameViaTarget(target); + //gebeORwbpk = MessageFormat.format(GESCHAEFTS_BEREICH_ATTRIBUTE, new Object[] { target }); + gebeORwbpk = MessageFormat.format(GESCHAEFTS_BEREICH_ATTRIBUTE, new Object[] { target + " (" + sectorName + ")" }); + //..BZ + + //BZ.., no business service, adding bPK + + Element bpkSamlValueElement; + try { + bpkSamlValueElement = DOMUtils.parseDocument(MessageFormat.format(PR_IDENTIFICATION_ATTRIBUTE, new Object[] { identityLinkValue, Constants.URN_PREFIX_BPK }), false, null, null).getDocumentElement(); + } catch (Exception e) { + Logger.error("Error on building AUTH-Block: " + e.getMessage()); + throw new BuildException("builder.00", new Object[] { "AUTH-Block", e.toString()}); + } + ExtendedSAMLAttribute bpkAttribute = + new ExtendedSAMLAttributeImpl("bPK", bpkSamlValueElement, Constants.MOA_NS_URI, ExtendedSAMLAttribute.ADD_TO_AUTHBLOCK_ONLY); + + extendedSAMLAttributes.add(bpkAttribute); + //gebeORwbpk = gebeORwbpk + MessageFormat.format(BPK_ATTRIBUTE, new Object[] { identityLinkValue, identityLinkType }); + wbpkNSDeclaration = " xmlns:pr=\"" + PD_NS_URI + "\""; + //..BZ } + //BZ.., adding friendly name of OA + String oaFriendlyName = StringUtils.isEmpty(oaParam.getFriendlyName()) ? "" : oaParam.getFriendlyName(); + + ExtendedSAMLAttribute oaFriendlyNameAttribute = + new ExtendedSAMLAttributeImpl("oaFriendlyName", oaFriendlyName, Constants.MOA_NS_URI, ExtendedSAMLAttribute.ADD_TO_AUTHBLOCK_ONLY); + + extendedSAMLAttributes.add(oaFriendlyNameAttribute); + //..BZ + String assertion; try { assertion = MessageFormat.format( diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilderForeign.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilderForeign.java new file mode 100644 index 000000000..9227d5303 --- /dev/null +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilderForeign.java @@ -0,0 +1,126 @@ +package at.gv.egovernment.moa.id.auth.builder; + +import java.io.IOException; +import java.io.StringReader; +import java.io.StringWriter; + +import at.gv.egovernment.moa.id.BuildException; + + +/** + * Builder for CreateXMLSignatureRequest to sign data from a foreign + * eID card. + * + */ + +public class CreateXMLSignatureRequestBuilderForeign extends Builder { + + /** special tag in the XML template to be substituted for the KeyboxIdentifier */ + private static final String KEYBOXID_TAG = ""; + /** special tag in the XML template to be substituted for the content */ + private static final String XMLCONTENT_TAG = ""; + /** private static int all contains the representation to replace all tags*/ + private static final int ALL = -1; + + /** default HTML template */ + private static final String DEFAULT_XML_TEMPLATE = + "" + + "" + + "" + KEYBOXID_TAG + "" + + "" + + "" + + "" + XMLCONTENT_TAG + "" + + "" + + "" + + "" + + "text/plain" + + "" + + "" + + "" + + ""; + + /** default HTML template */ + private static final String DEFAULT_XHTML_TEMPLATE = + "" + + "" + + "" + KEYBOXID_TAG + "" + + "" + + "" + + "" + XMLCONTENT_TAG + "" + + "" + + "" + + "" + + "application/xhtml+xml" + + "" + + "" + + "" + + ""; + + /** + * Constructor for CreateXMLSignatureRequestBuilderForeign. + */ + public CreateXMLSignatureRequestBuilderForeign() { + super(); + } + /** + * Builds the XML request. + * + * @param xmlRequest XML Request to be sent as a parameter in the form + * @param bkuURL URL of the "Bürgerkartenumgebung" the form will be submitted to; + * may be null, in this case the default URL will be used + * @param dataURL DataURL to be sent as a parameter in the form + */ + public String build( + String keyboxIdentifier, + String xmlContent) + throws BuildException + { + String xmlRequest = DEFAULT_XHTML_TEMPLATE; + xmlRequest = replaceTag(xmlRequest, KEYBOXID_TAG, keyboxIdentifier, true, ALL); + //htmlForm = replaceTag(htmlForm, XMLREQUEST_TAG, encodeParameter(xmlRequest), true, ALL); + xmlRequest = replaceTag(xmlRequest, XMLCONTENT_TAG, xmlContent, true, ALL); + return xmlRequest; + } + /** + * Encodes a string for inclusion as a parameter in the form. + * Double quotes are substituted by "&quot;". + * @param s the string to be encoded + * @return the string encoded + * @throws BuildException on any exception encountered + */ + public static String encodeParameter(String s) throws BuildException { + StringReader in = new StringReader(s); + StringWriter out = new StringWriter(); + try { + for (int ch = in.read(); ch >= 0; ch = in.read()) { + if (ch == '"') + out.write("""); + else if (ch == '<') + out.write("<"); + else if (ch == '>') + out.write(">"); + else if (ch == 'ä') + out.write("ä"); + else if (ch == 'ö') + out.write("ö"); + else if (ch == 'ü') + out.write("ü"); + else if (ch == 'Ä') + out.write("Ä"); + else if (ch == 'Ö') + out.write("Ö"); + else if (ch == 'Ü') + out.write("Ü"); + else if (ch == 'ß') + out.write("ß"); + else + out.write(ch); + } + } + catch (IOException ex) { + throw new BuildException("builder.00", new Object[] {"GetIdentityLinkForm", ex.toString()}); + } + return out.toString(); + } + +} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/InfoboxReadRequestBuilderCertificate.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/InfoboxReadRequestBuilderCertificate.java new file mode 100644 index 000000000..60feb7d2f --- /dev/null +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/InfoboxReadRequestBuilderCertificate.java @@ -0,0 +1,94 @@ +/* +* Copyright 2003 Federal Chancellery Austria +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package at.gv.egovernment.moa.id.auth.builder; + +import at.gv.egovernment.moa.util.Constants; + +/** + * Builder for the <InfoboxReadRequest> structure + * used for requesting the identity link from the security layer implementation. + * + * @author Paul Ivancsics + * @version $Id: InfoboxReadRequestBuilder.java 1087 2008-08-28 07:55:59Z mcentner $ + */ +public class InfoboxReadRequestBuilderCertificate implements Constants { + + + /** + * Constructor for InfoboxReadRequestBuilder. + */ + public InfoboxReadRequestBuilderCertificate() { + } + + + /** + * Builds an <InfoboxReadRequest>. + * + * @param slVersion12 specifies whether the Security Layer version is + * version 1.2 or not + * @param businessService specifies whether the online application is a + * business service or not + * @param identityLinkDomainIdentifier the identification number of the business + * company; maybe null if the OA + * is a public service; must not be null + * if the OA is a business service + * + * @return <InfoboxReadRequest> as String + */ + public String build(boolean slVersion12) { + + String slPrefix; + String slNsDeclaration; + + if (slVersion12) { + slPrefix = SL12_PREFIX; + slNsDeclaration = SL12_NS_URI; + } else { + slPrefix = SL10_PREFIX; + slNsDeclaration = SL10_NS_URI; + } + + StringBuffer sb = new StringBuffer(""); + sb.append("<"); + sb.append(slPrefix); + sb.append(":InfoboxReadRequest xmlns:"); + sb.append(slPrefix); + sb.append("=\""); + sb.append(slNsDeclaration); + sb.append("\">"); + sb.append("<"); + sb.append(slPrefix); + sb.append(":InfoboxIdentifier>Certificates"); + sb.append("<"); + sb.append(slPrefix); + sb.append(":AssocArrayParameters>"); + sb.append("<"); + sb.append(slPrefix); + sb.append(":ReadValue Key=\"SecureSignatureKeypair\"/>"); + sb.append(""); + sb.append(""); + + return sb.toString(); + + } + +} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/VerifyXMLSignatureRequestBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/VerifyXMLSignatureRequestBuilder.java index ffe4ad9b6..a14d0325f 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/VerifyXMLSignatureRequestBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/VerifyXMLSignatureRequestBuilder.java @@ -217,5 +217,67 @@ public class VerifyXMLSignatureRequestBuilder { return requestElem_; } + + /** + * Builds a <VerifyXMLSignatureRequest> + * from the signed data with a known trustProfileID which + * has to exist in MOA-SP + * @param csr - signed AUTH-Block + * @param trustProfileID - a preconfigured TrustProfile at MOA-SP + * @return Element - The complete request as Dom-Element + * @throws ParseException + */ + public Element buildDsig( + CreateXMLSignatureResponse csr, + String trustProfileID) + throws BuildException { //samlAssertionObject + + try { + // build the request +// requestElem_.setAttributeNS(Constants.XMLNS_NS_URI, "xmlns:" +// + Constants.XML_PREFIX, Constants.XMLNS_NS_URI); + + Element verifiySignatureInfoElem = + requestDoc_.createElementNS(MOA_NS_URI, "VerifySignatureInfo"); + requestElem_.appendChild(verifiySignatureInfoElem); + Element verifySignatureEnvironmentElem = + requestDoc_.createElementNS(MOA_NS_URI, "VerifySignatureEnvironment"); + verifiySignatureInfoElem.appendChild(verifySignatureEnvironmentElem); + + Element xmlContentElem = requestDoc_.createElementNS(MOA_NS_URI, "XMLContent"); + verifySignatureEnvironmentElem.appendChild(xmlContentElem); + xmlContentElem.setAttribute(Constants.XML_PREFIX + ":space", "preserve"); + + // insert the dsig:Signature + xmlContentElem.appendChild(requestDoc_.importNode(csr.getDsigSignature(), true)); + // specify the signature location + Element verifySignatureLocationElem = + requestDoc_.createElementNS(MOA_NS_URI, "VerifySignatureLocation"); + verifiySignatureInfoElem.appendChild(verifySignatureLocationElem); + Node signatureLocation = requestDoc_.createTextNode("/"+ DSIG + "Signature"); + verifySignatureLocationElem.appendChild(signatureLocation); + // signature manifest params + Element signatureManifestCheckParamsElem = + requestDoc_.createElementNS(MOA_NS_URI, "SignatureManifestCheckParams"); + requestElem_.appendChild(signatureManifestCheckParamsElem); + signatureManifestCheckParamsElem.setAttribute("ReturnReferenceInputData", "true"); + // add the transform profile IDs + Element referenceInfoElem = requestDoc_.createElementNS(MOA_NS_URI, "ReferenceInfo"); + signatureManifestCheckParamsElem.appendChild(referenceInfoElem); + + Element returnHashInputDataElem = + requestDoc_.createElementNS(MOA_NS_URI, "ReturnHashInputData"); + requestElem_.appendChild(returnHashInputDataElem); + Element trustProfileIDElem = requestDoc_.createElementNS(MOA_NS_URI, "TrustProfileID"); + + trustProfileIDElem.appendChild(requestDoc_.createTextNode(trustProfileID)); + requestElem_.appendChild(trustProfileIDElem); + + } catch (Throwable t) { + throw new BuildException("builder.00", new Object[] { "VerifyXMLSignatureRequest" }, t); + } + + return requestElem_; + } } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/data/AuthenticationSession.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/data/AuthenticationSession.java index 969e628f4..eca02a77b 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/data/AuthenticationSession.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/data/AuthenticationSession.java @@ -15,6 +15,8 @@ */ package at.gv.egovernment.moa.id.auth.data; +import iaik.x509.X509Certificate; + import java.util.ArrayList; import java.util.Date; import java.util.Iterator; @@ -87,7 +89,11 @@ public class AuthenticationSession { * service or not */ private boolean businessService; - + + /** + * Signer certificate of the foreign citizen + */ + private X509Certificate signerCertificate; /** * SAML attributes from an extended infobox validation to be appended * to the SAML assertion delivered to the final online application. @@ -149,6 +155,14 @@ public class AuthenticationSession { infoboxValidators = new ArrayList(); } + public X509Certificate getForeignSignerCertificate() { + return signerCertificate; + } + + public void setForeignSignerCertificate(X509Certificate signerCertificate) { + this.signerCertificate = signerCertificate; + } + /** * Returns the identityLink. * @return IdentityLink diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/data/CreateXMLSignatureResponse.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/data/CreateXMLSignatureResponse.java index 81dc2f736..fc3831161 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/data/CreateXMLSignatureResponse.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/data/CreateXMLSignatureResponse.java @@ -1,18 +1,3 @@ -/* -* Copyright 2003 Federal Chancellery Austria -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ package at.gv.egovernment.moa.id.auth.data; import org.w3c.dom.Element; @@ -35,6 +20,11 @@ private SAMLAttribute[] samlAttributes; * the original saml:Assertion-Element */ private Element samlAssertion; + + /** + * the original dsig:Signature-Element + */ + private Element dsigSignature; /** * Returns the samlAssertion. * @return Element @@ -43,6 +33,14 @@ public Element getSamlAssertion() { return samlAssertion; } +/** + * Returns the dsig:Signature + * @return Element + */ +public Element getDsigSignature() { + return dsigSignature; +} + /** * Returns the samlAttribute. * @return SAMLAttribute[] @@ -67,6 +65,10 @@ public void setSamlAssertion(Element samlAssertion) { this.samlAssertion = samlAssertion; } +public void setDsigSignature(Element dsigSignature) { + this.dsigSignature = dsigSignature; +} + /** * Sets the samlAttribute. * @param samlAttributes The samlAttributes to set diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/CreateXMLSignatureResponseParser.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/CreateXMLSignatureResponseParser.java index 74bad617c..d5b6f9aa9 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/CreateXMLSignatureResponseParser.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/CreateXMLSignatureResponseParser.java @@ -21,6 +21,7 @@ import java.util.ArrayList; import java.util.List; import org.w3c.dom.Element; +import org.w3c.dom.NodeList; import org.w3c.dom.traversal.NodeIterator; import at.gv.egovernment.moa.id.AuthenticationException; @@ -129,6 +130,31 @@ public class CreateXMLSignatureResponseParser { throw new ParseException("parser.01", new Object[] { t.toString()}, t); } } + + /** + * Unmarshalls the <@link sigResponse> to an + * <CreateXMLSignatureResponse> object. + * + * @return a <CreateXMLSignatureResponse> object + * @throws ParseException + */ + + public CreateXMLSignatureResponse parseResponseDsig() throws ParseException { + CreateXMLSignatureResponse cResp; + try { + cResp = new CreateXMLSignatureResponse(); + + NodeList list = sigResponse_.getElementsByTagNameNS(Constants.DSIG_NS_URI, "Signature"); + Element dsigSignatureNode = (Element) list.item(0); + + Element dsigSignatureElement = (Element) dsigSignatureNode; + cResp.setDsigSignature(dsigSignatureElement); + } + catch (Throwable t) { + throw new ParseException("parser.01", new Object[] { t.toString()}, t); + } + return cResp; + } /** * Unmarshalls the <@link sigResponse> to an diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/InfoboxReadResponseParser.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/InfoboxReadResponseParser.java index 954488173..b53a1a2dc 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/InfoboxReadResponseParser.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/InfoboxReadResponseParser.java @@ -15,17 +15,31 @@ */ package at.gv.egovernment.moa.id.auth.parser; +import iaik.x509.X509Certificate; + import java.io.ByteArrayInputStream; import java.io.InputStream; +import java.security.cert.CertificateException; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + +import org.apache.axis.encoding.Base64; +import org.w3c.dom.Document; import org.w3c.dom.Element; import at.gv.egovernment.moa.id.AuthenticationException; import at.gv.egovernment.moa.id.ParseException; import at.gv.egovernment.moa.id.auth.data.IdentityLink; +import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.SZRGWConstants; import at.gv.egovernment.moa.util.Constants; import at.gv.egovernment.moa.util.DOMUtils; import at.gv.egovernment.moa.util.XPathUtils; +import com.sun.org.apache.xpath.internal.XPathAPI; + /** * Parses an <InfoboxReadResponse>. * @@ -175,6 +189,43 @@ public class InfoboxReadResponseParser { IdentityLinkAssertionParser ilParser = new IdentityLinkAssertionParser(samlAssertion); return ilParser.parseIdentityLink(); } + + /** + * Returns the certificate given in the InfoboxReadResponse + * @return + * @throws ParseException + */ + public X509Certificate parseCertificate() throws ParseException { + try { + DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = builder.newDocument(); + + Element nameSpaceNode = doc.createElement("NameSpaceNode"); + nameSpaceNode.setAttribute("xmlns:" + Constants.PD_PREFIX, Constants.PD_NS_URI); + nameSpaceNode.setAttribute("xmlns:" + Constants.DSIG_PREFIX, Constants.DSIG_NS_URI); + nameSpaceNode.setAttribute("xmlns:" + Constants.SL12_PREFIX, Constants.SL12_NS_URI); + + Element base64ContentElement = (Element)XPathAPI.selectSingleNode(infoBoxElem_.getParentNode(), "//sl:Base64Content[1]", nameSpaceNode); + + if (base64ContentElement == null) { + throw new ParseException("parser.01", new Object[] { "Could not find Base64Content for X509Certificate."}); + } + + String base64Content = DOMUtils.getText(base64ContentElement); + + // Decode Base64 value to X509Certificate + byte[] content = Base64.decode(base64Content); + return new X509Certificate(content); + + } catch (ParserConfigurationException e) { + throw new ParseException("parser.01", new Object[] { "Could not parse X509Certificate from InfoboxReadRequest."}, e); + } catch (TransformerException e) { + throw new ParseException("parser.01", new Object[] { "Could not parse X509Certificate from InfoboxReadRequest."}, e); + } catch (CertificateException e) { + throw new ParseException("parser.01", new Object[] { "Could not parse X509Certificate from InfoboxReadRequest."}, e); + } + + } } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/AuthServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/AuthServlet.java index 0656d37d3..bff0a3fca 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/AuthServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/AuthServlet.java @@ -123,6 +123,7 @@ public class AuthServlet extends HttpServlet implements MOAIDAuthConstants { * Logs all servlet parameters for debugging purposes. */ protected void logParameters(HttpServletRequest req) { + //@TODO Parameter? for (Enumeration params = req.getParameterNames(); params.hasMoreElements(); ) { String parname = (String)params.nextElement(); Logger.debug("Parameter " + parname + req.getParameter(parname)); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GetForeignIDServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GetForeignIDServlet.java new file mode 100644 index 000000000..0599c79bd --- /dev/null +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GetForeignIDServlet.java @@ -0,0 +1,287 @@ +package at.gv.egovernment.moa.id.auth.servlet; + +import iaik.pki.PKIException; +import iaik.x509.X509Certificate; + +import java.io.IOException; +import java.security.GeneralSecurityException; +import java.security.cert.CertificateEncodingException; +import java.util.Map; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.axis.encoding.Base64; +import org.apache.commons.fileupload.FileUploadException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Text; + +import at.gv.egovernment.moa.id.MOAIDException; +import at.gv.egovernment.moa.id.ParseException; +import at.gv.egovernment.moa.id.auth.AuthenticationServer; +import at.gv.egovernment.moa.id.auth.WrongParametersException; +import at.gv.egovernment.moa.id.auth.builder.DataURLBuilder; +import at.gv.egovernment.moa.id.auth.data.AuthenticationSession; +import at.gv.egovernment.moa.id.auth.data.IdentityLink; +import at.gv.egovernment.moa.id.auth.parser.IdentityLinkAssertionParser; +import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.CreateIdentityLinkResponse; +import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.SZRGWClient; +import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.SZRGWClientException; +import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.SZRGWConstants; +import at.gv.egovernment.moa.id.config.ConfigurationException; +import at.gv.egovernment.moa.id.config.ConnectionParameter; +import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider; +import at.gv.egovernment.moa.id.util.MOAIDMessageProvider; +import at.gv.egovernment.moa.id.util.ParamValidatorUtils; +import at.gv.egovernment.moa.id.util.SSLUtils; +import at.gv.egovernment.moa.logging.Logger; +import at.gv.egovernment.moa.util.URLEncoder; + +/** + * Servlet requested for getting the foreign eID + * provided by the security layer implementation. + * Utilizes the {@link AuthenticationServer}. + * + */ +public class GetForeignIDServlet extends AuthServlet { + + /** + * Constructor for GetForeignIDServlet. + */ + public GetForeignIDServlet() { + super(); + } + + /** + * GET requested by security layer implementation to verify + * that data URL resource is available. + * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest, HttpServletResponse) + */ + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + + Logger.debug("GET GetForeignIDServlet"); + + + } + + /** + * Verifies the identity link and responds with a new + * CreateXMLSignatureRequest. + *
    + * Request parameters: + *
      + *
    • MOASessionID: ID of associated authentication session
    • + *
    • XMLResponse: <InfoboxReadResponse>
    • + *
    + * Response: + *
      + *
    • Content type: "text/xml"
    • + *
    • Content: see return value of {@link AuthenticationServer#verifyIdentityLink}
    • + *
    • Error status: 500 + *
    + * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest, HttpServletResponse) + */ + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + + Logger.debug("POST GetForeignIDServlet"); + + Map parameters; + try + { + parameters = getParameters(req); + } catch (FileUploadException e) + { + Logger.error("Parsing mulitpart/form-data request parameters failed: " + e.getMessage()); + throw new IOException(e.getMessage()); + } + String sessionID = req.getParameter(PARAM_SESSIONID); + String redirectURL = null; + X509Certificate cert = null; + AuthenticationSession session = null; + try { + // check parameter + if (!ParamValidatorUtils.isValidSessionID(sessionID)) + throw new WrongParametersException("GetForeignID", PARAM_SESSIONID, "auth.12"); + + session = AuthenticationServer.getSession(sessionID); + + cert = AuthenticationServer.getInstance().verifyXMLSignature(sessionID, parameters); + +// Element signature = AuthenticationServer.getInstance().getDsigElement +// (sessionID, parameters); + +// if (signature == null) { + if (cert == null) { + handleError("Error retrieving signature from foreign eID card.", null, req, resp); + } + else { + + // make SZR request + //Element samlAssertion = getIdentityLink(signature); + Element samlAssertion = getIdentityLink(cert); + + IdentityLinkAssertionParser ilParser = new IdentityLinkAssertionParser(samlAssertion); + IdentityLink identitylink = ilParser.parseIdentityLink(); + session.setIdentityLink(identitylink); + + String samlArtifactBase64 = + AuthenticationServer.getInstance().getForeignAuthenticationData(sessionID); + if (!samlArtifactBase64.equals("Redirect to Input Processor")) { + redirectURL = session.getOAURLRequested(); + if (!session.getBusinessService()) { + redirectURL = addURLParameter(redirectURL, PARAM_TARGET, URLEncoder.encode(session.getTarget(), "UTF-8")); + } + redirectURL = addURLParameter(redirectURL, PARAM_SAMLARTIFACT, URLEncoder.encode(samlArtifactBase64, "UTF-8")); + redirectURL = resp.encodeRedirectURL(redirectURL); + } else { + redirectURL = new DataURLBuilder().buildDataURL(session.getAuthURL(), AuthenticationServer.REQ_PROCESS_VALIDATOR_INPUT, session.getSessionID()); + } + resp.setContentType("text/html"); + resp.setStatus(302); + resp.addHeader("Location", redirectURL); + Logger.debug("REDIRECT TO: " + redirectURL); + } + + } + catch (ParseException ex) { + handleError(null, ex, req, resp); + } + catch (MOAIDException ex) { + handleError(null, ex, req, resp); + } + catch (SZRGWClientException ex) { + handleError(null, ex, req, resp); + } + } + + /** + * Adds a parameter to a URL. + * @param url the URL + * @param paramname parameter name + * @param paramvalue parameter value + * @return the URL with parameter added + */ + private static String addURLParameter(String url, String paramname, String paramvalue) { + String param = paramname + "=" + paramvalue; + if (url.indexOf("?") < 0) + return url + "?" + param; + else + return url + "&" + param; + } + + /** + * Does the request to the SZR-GW + * @param givenname + * @param familyname + * @param dateofbirth + * @return Identity link assertion + * @throws SZRGWClientException + */ + /*private Element getIdentityLink(Element signature) throws SZRGWClientException {*/ + private Element getIdentityLink(X509Certificate cert) throws SZRGWClientException { + + SZRGWClient client = new SZRGWClient(); + + try { + AuthConfigurationProvider authConf = AuthConfigurationProvider.getInstance(); + ConnectionParameter connectionParameters = authConf.getForeignIDConnectionParameter(); + //url = "http://localhost:8081/szr-gateway/services/IdentityLinkCreation"; + Logger.debug("Connection Parameters: " + connectionParameters); + client.setAddress(connectionParameters.getUrl()); + if (connectionParameters.getUrl().toLowerCase().startsWith("https:")) { + Logger.debug("Initialisiere SSL Verbindung"); + try { + client.setSSLSocketFactory(SSLUtils.getSSLSocketFactory(AuthConfigurationProvider.getInstance(), connectionParameters)); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (GeneralSecurityException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (PKIException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + Logger.info("Starte Kommunikation mit dem Stammzahlenregister Gateway(" + connectionParameters.getUrl() + ")..."); + + + } + catch (ConfigurationException e) { + Logger.warn(e); + Logger.warn(MOAIDMessageProvider.getInstance().getMessage("config.12", null )); + + } + // create request + Document doc = buildGetIdentityLinkRequest(cert); + Element request = doc.getDocumentElement(); + CreateIdentityLinkResponse response = null; + + //try { + response = client.createIdentityLinkResponse(request); + //} catch (SZRGWClientException e) { + // give him a second try - Nach dem Starten des Tomcat wird beim ersten Mal das Client-Zertifikat offenbar vom HTTPClient nicht mitgeschickt. + // client = new SZRGWClient(url); + // response = client.createIdentityLinkResponse(request); + // } + + + return response.getAssertion(); + + } + + /** + * Builds the szrgw:GetIdentityLinkRequest für the SZR-GW + * @param givenname + * @param familyname + * @param birthday + * @return + */ + private static Document buildGetIdentityLinkRequest(X509Certificate cert) { + + try { + byte[] certbyte = cert.getEncoded(); + String certstring = Base64.encode(certbyte); + + DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document doc = builder.newDocument(); + + Element getIdentityLink = doc.createElementNS(SZRGWConstants.SZRGW_REQUEST_NS, "szrgw:GetIdentityLinkRequest"); + getIdentityLink.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:szrgw", SZRGWConstants.SZRGW_REQUEST_NS); + doc.appendChild(getIdentityLink); + + Element x509certificate = doc.createElementNS(SZRGWConstants.SZRGW_REQUEST_NS, "szrgw:X509Certificate"); + getIdentityLink.appendChild(x509certificate); + Text certbase64 = doc.createTextNode(certstring); + x509certificate.appendChild(certbase64); + + return doc; + } catch (ParserConfigurationException e) { + e.printStackTrace(); + } catch (CertificateEncodingException e) { + e.printStackTrace(); + } + return null; + + } + + /** + * Checks a parameter. + * @param param parameter + * @return true if the parameter is null or empty + */ + private boolean isEmpty(String param) { + return param == null || param.length() == 0; + } + +} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/ProcessValidatorInputServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/ProcessValidatorInputServlet.java index 894b05428..317af3e06 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/ProcessValidatorInputServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/ProcessValidatorInputServlet.java @@ -73,7 +73,7 @@ public class ProcessValidatorInputServlet extends AuthServlet { } catch (FileUploadException e) { Logger.error("Parsing mulitpart/form-data request parameters failed: " + e.getMessage()); throw new IOException(e.getMessage()); - } + } String sessionID = req.getParameter(PARAM_SESSIONID); if (sessionID==null) sessionID = (String) req.getAttribute(PARAM_SESSIONID); if (sessionID==null) sessionID = (String) parameters.get(PARAM_SESSIONID); @@ -124,7 +124,8 @@ public class ProcessValidatorInputServlet extends AuthServlet { } catch (FileUploadException e) { Logger.error("Parsing mulitpart/form-data request parameters failed: " + e.getMessage()); throw new IOException(e.getMessage()); - } + } + //@TODO Parameter String sessionID = req.getParameter(PARAM_SESSIONID); if (sessionID==null) sessionID = (String) req.getAttribute(PARAM_SESSIONID); if (sessionID==null) sessionID = (String) parameters.get(PARAM_SESSIONID); @@ -142,13 +143,15 @@ public class ProcessValidatorInputServlet extends AuthServlet { String htmlForm = null; boolean doInputProcessorSign = false; // If sign process should be within an extra form, provide a parameter. Otherwise transport through security layer is assumed + //@TODO Parameter String inputProcessorSignForm = req.getParameter("Sign_Form"); if (inputProcessorSignForm==null) inputProcessorSignForm = (String) req.getAttribute("Sign_Form"); if (inputProcessorSignForm==null) inputProcessorSignForm = (String) parameters.get("Sign_Form"); if (inputProcessorSignForm==null) inputProcessorSignForm = (String) parameters.get("Sign_Form_"); if (!ParepUtils.isEmpty(inputProcessorSignForm)) doInputProcessorSign = inputProcessorSignForm.equalsIgnoreCase("true"); if (doInputProcessorSign) { - // Test if we have a user input form sign template + // Test if we have a user input form sign template + //@TODO Parameter String inputProcessorSignTemplateURL = req.getParameter(PARAM_INPUT_PROCESSOR_SIGN_TEMPLATE); String inputProcessorSignTemplate = null; OAAuthParameter oaParam = diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/SelectBKUServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/SelectBKUServlet.java index 78c028767..09b3ae15f 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/SelectBKUServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/SelectBKUServlet.java @@ -29,6 +29,7 @@ import at.gv.egovernment.moa.id.auth.MOAIDAuthInitializer; import at.gv.egovernment.moa.id.auth.WrongParametersException; import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider; import at.gv.egovernment.moa.id.util.MOAIDMessageProvider; +import at.gv.egovernment.moa.id.util.ParamValidatorUtils; import at.gv.egovernment.moa.logging.Logger; /** @@ -74,6 +75,7 @@ public class SelectBKUServlet extends AuthServlet { authURL = authURL.concat(":" + req.getServerPort()); } authURL = authURL.concat(req.getContextPath() + "/"); + String target = req.getParameter(PARAM_TARGET); String oaURL = req.getParameter(PARAM_OA); String bkuSelectionTemplateURL = req.getParameter(PARAM_BKUTEMPLATE); @@ -84,6 +86,16 @@ public class SelectBKUServlet extends AuthServlet { resp.addHeader(HEADER_CACHE_CONTROL,HEADER_VALUE_CACHE_CONTROL_IE); try { + + // check parameter + if (!ParamValidatorUtils.isValidTarget(target)) + throw new WrongParametersException("StartAuthentication", PARAM_TARGET, "auth.12"); + if (!ParamValidatorUtils.isValidOA(oaURL)) + throw new WrongParametersException("StartAuthentication", PARAM_OA, "auth.12"); + if (!ParamValidatorUtils.isValidTemplate(templateURL)) + throw new WrongParametersException("StartAuthentication", PARAM_TEMPLATE, "auth.12"); + + String returnValue = AuthenticationServer.getInstance().selectBKU( authURL, target, oaURL, bkuSelectionTemplateURL, templateURL); String bkuSelectionType = AuthConfigurationProvider.getInstance().getBKUSelectionType(); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/StartAuthenticationServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/StartAuthenticationServlet.java index 961511ee7..8165f90f8 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/StartAuthenticationServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/StartAuthenticationServlet.java @@ -28,6 +28,7 @@ import at.gv.egovernment.moa.id.auth.AuthenticationServer; import at.gv.egovernment.moa.id.auth.MOAIDAuthInitializer; import at.gv.egovernment.moa.id.auth.WrongParametersException; import at.gv.egovernment.moa.id.util.MOAIDMessageProvider; +import at.gv.egovernment.moa.id.util.ParamValidatorUtils; import at.gv.egovernment.moa.logging.Logger; /** @@ -61,18 +62,36 @@ public class StartAuthenticationServlet extends AuthServlet { authURL = authURL.concat(":" + req.getServerPort()); } authURL = authURL.concat(req.getContextPath() + "/"); - String target = req.getParameter(PARAM_TARGET); - String oaURL = req.getParameter(PARAM_OA); + + String target = req.getParameter(PARAM_TARGET); + String oaURL = req.getParameter(PARAM_OA); String bkuURL = req.getParameter(PARAM_BKU); String templateURL = req.getParameter(PARAM_TEMPLATE); String sessionID = req.getParameter(PARAM_SESSIONID); + resp.setHeader(HEADER_EXPIRES,HEADER_VALUE_EXPIRES); resp.setHeader(HEADER_PRAGMA,HEADER_VALUE_PRAGMA); resp.setHeader(HEADER_CACHE_CONTROL,HEADER_VALUE_CACHE_CONTROL); resp.addHeader(HEADER_CACHE_CONTROL,HEADER_VALUE_CACHE_CONTROL_IE); - try { + + + try { + // check parameter + if (!ParamValidatorUtils.isValidTarget(target)) + throw new WrongParametersException("StartAuthentication", PARAM_TARGET, "auth.12"); + if (!ParamValidatorUtils.isValidOA(oaURL)) + throw new WrongParametersException("StartAuthentication", PARAM_OA, "auth.12"); + if (!ParamValidatorUtils.isValidBKUURI(bkuURL)) + throw new WrongParametersException("StartAuthentication", PARAM_BKU, "auth.12"); + if (!ParamValidatorUtils.isValidTemplate(templateURL)) + throw new WrongParametersException("StartAuthentication", PARAM_TEMPLATE, "auth.12"); + if (!ParamValidatorUtils.isValidSessionID(sessionID)) + throw new WrongParametersException("StartAuthentication", PARAM_SESSIONID, "auth.12"); + + String getIdentityLinkForm = AuthenticationServer.getInstance().startAuthentication(authURL, target, oaURL, templateURL, bkuURL, sessionID, req.getScheme()); + resp.setContentType("text/html;charset=UTF-8"); PrintWriter out = new PrintWriter(resp.getOutputStream()); out.print(getIdentityLinkForm); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyAuthenticationBlockServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyAuthenticationBlockServlet.java index 43947f6f0..824df9ca8 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyAuthenticationBlockServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyAuthenticationBlockServlet.java @@ -16,9 +16,7 @@ package at.gv.egovernment.moa.id.auth.servlet; import java.io.IOException; -import java.util.Iterator; import java.util.Map; -import java.util.Vector; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -28,11 +26,10 @@ import org.apache.commons.fileupload.FileUploadException; import at.gv.egovernment.moa.id.MOAIDException; import at.gv.egovernment.moa.id.auth.AuthenticationServer; +import at.gv.egovernment.moa.id.auth.WrongParametersException; import at.gv.egovernment.moa.id.auth.builder.DataURLBuilder; import at.gv.egovernment.moa.id.auth.data.AuthenticationSession; -import at.gv.egovernment.moa.id.auth.data.InfoboxValidationResult; -import at.gv.egovernment.moa.id.auth.validator.InfoboxValidator; -import at.gv.egovernment.moa.id.auth.validator.ValidateException; +import at.gv.egovernment.moa.id.util.ParamValidatorUtils; import at.gv.egovernment.moa.logging.Logger; import at.gv.egovernment.moa.util.URLEncoder; @@ -99,10 +96,16 @@ public class VerifyAuthenticationBlockServlet extends AuthServlet { Logger.error("Parsing mulitpart/form-data request parameters failed: " + e.getMessage()); throw new IOException(e.getMessage()); } + //@TODO Parameter String sessionID = req.getParameter(PARAM_SESSIONID); String createXMLSignatureResponse = (String)parameters.get(PARAM_XMLRESPONSE); String redirectURL = null; try { + // check parameter + if (!ParamValidatorUtils.isValidSessionID(sessionID)) + throw new WrongParametersException("VerifyAuthenticationBlock", PARAM_SESSIONID, "auth.12"); + + AuthenticationSession session = AuthenticationServer.getSession(sessionID); String samlArtifactBase64 = AuthenticationServer.getInstance().verifyAuthenticationBlock(sessionID, createXMLSignatureResponse); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyCertificateServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyCertificateServlet.java new file mode 100644 index 000000000..c9c1e794d --- /dev/null +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyCertificateServlet.java @@ -0,0 +1,286 @@ +package at.gv.egovernment.moa.id.auth.servlet; + +import iaik.pki.PKIException; +import iaik.x509.X509Certificate; + +import java.io.IOException; +import java.security.GeneralSecurityException; +import java.security.cert.CertificateEncodingException; +import java.util.Map; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.axis.encoding.Base64; +import org.apache.commons.fileupload.FileUploadException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Text; + +import at.gv.egovernment.moa.id.MOAIDException; +import at.gv.egovernment.moa.id.auth.AuthenticationServer; +import at.gv.egovernment.moa.id.auth.WrongParametersException; +import at.gv.egovernment.moa.id.auth.builder.DataURLBuilder; +import at.gv.egovernment.moa.id.auth.data.AuthenticationSession; +import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.CreateIdentityLinkResponse; +import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.SZRGWClient; +import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.SZRGWClientException; +import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.SZRGWConstants; +import at.gv.egovernment.moa.id.config.ConfigurationException; +import at.gv.egovernment.moa.id.config.ConnectionParameter; +import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider; +import at.gv.egovernment.moa.id.util.MOAIDMessageProvider; +import at.gv.egovernment.moa.id.util.ParamValidatorUtils; +import at.gv.egovernment.moa.id.util.SSLUtils; +import at.gv.egovernment.moa.id.util.ServletUtils; +import at.gv.egovernment.moa.logging.Logger; + +/** + * Servlet requested for getting the foreign eID + * provided by the security layer implementation. + * Utilizes the {@link AuthenticationServer}. + * + */ +public class VerifyCertificateServlet extends AuthServlet { + + /** + * Constructor for VerifyCertificateServlet. + */ + public VerifyCertificateServlet() { + super(); + } + + /** + * GET requested by security layer implementation to verify + * that data URL resource is available. + * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest, HttpServletResponse) + */ + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + + Logger.debug("GET VerifyCertificateServlet"); + + + } + + /** + * Gets the signer certificate from the InfoboxReadRequest and + * responds with a new + * CreateXMLSignatureRequest. + *
    + * Request parameters: + *
      + *
    • MOASessionID: ID of associated authentication session
    • + *
    • XMLResponse: <InfoboxReadResponse>
    • + *
    + * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest, HttpServletResponse) + */ + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + + Logger.debug("POST VerifyCertificateServlet"); + + Map parameters; + try + { + parameters = getParameters(req); + } catch (FileUploadException e) + { + Logger.error("Parsing mulitpart/form-data request parameters failed: " + e.getMessage()); + throw new IOException(e.getMessage()); + } + //@TODO Parameter + String sessionID = req.getParameter(PARAM_SESSIONID); + AuthenticationSession session = null; + try { + // check parameter + if (!ParamValidatorUtils.isValidSessionID(sessionID)) + throw new WrongParametersException("VerifyCertificate", PARAM_SESSIONID, "auth.12"); + + session = AuthenticationServer.getSession(sessionID); + + X509Certificate cert = AuthenticationServer.getInstance().getCertificate(sessionID, parameters); + + System.out.println(cert); + + String createXMLSignatureRequest = AuthenticationServer.getInstance().getCreateXMLSignatureRequestForeignID(sessionID, parameters, cert); + + System.out.println(createXMLSignatureRequest); + + // build dataurl (to the GetForeignIDSerlvet) + String dataurl = + new DataURLBuilder().buildDataURL( + session.getAuthURL(), + REQ_GET_FOREIGN_ID, + session.getSessionID()); + + ServletUtils.writeCreateXMLSignatureRequest(resp, session, createXMLSignatureRequest, AuthenticationServer.REQ_PROCESS_VALIDATOR_INPUT, "VerifyIdentityLink", dataurl); + + +// Logger.debug("Send CreateXMLSignatureRequest to BKU"); +// String keyboxIdentifier = "SecureSignatureKeypair"; +// //String keyboxIdentifier = "CertifiedKeypair"; +// String xmlContent = " " + +// "CreateXMLSignatureRequest" + +// " - - -

    Anmeldedaten:

    - -

    Daten zur Person

    - - - - - - - - - - - - - - - - - - - -
    Name: - -
    Geburtsdatum: - - . - - . - -
    Rolle:
    - - -
    - Ich bin weiters ermächtigt als - - von - - - , geboren am - - . - - . - - - - , - - - , in deren Auftrag zu handeln. -

    - - -

    Daten zur Anwendung

    - - - - - - - - - -
    Name:
    Staat:Österreich
    - -

    Technische Parameter

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    URL:
    Bereich:
    :
    Identifikator: - -
    Identifikator des Vollmachtgebers: -
    OID: - -
    HPI:
    Datum: - - . - - . - -
    Uhrzeit: - - : - - : - -
    - - - - - - - - - application/xhtml+xml - - diff --git a/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_DE.xml.old b/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_DE.xml.old new file mode 100644 index 000000000..240126693 --- /dev/null +++ b/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_DE.xml.old @@ -0,0 +1,161 @@ + + + + + + + + Signatur der Anmeldedaten + + + +

    Anmeldedaten:

    + +

    Daten zur Person

    + + + + + + + + + + + + + + + + + + + +
    Name: + +
    Geburtsdatum: + + . + + . + +
    Rolle:
    + + +
    + Ich bin weiters ermächtigt als + + von + + + , geboren am + + . + + . + + + + , + + + , in deren Auftrag zu handeln. +

    + + +

    Daten zur Anwendung

    + + + + + + + + + +
    Name:
    Staat:Österreich
    + +

    Technische Parameter

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    URL:
    Bereich:
    :
    Identifikator: + +
    Identifikator des Vollmachtgebers: +
    OID: + +
    HPI:
    Datum: + + . + + . + +
    Uhrzeit: + + : + + : + +
    + + +
    +
    +
    + +
    + + application/xhtml+xml + +
    diff --git a/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_EN.xml b/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_EN.xml deleted file mode 100644 index 1f8085aa3..000000000 --- a/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_EN.xml +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - Signing the authentication data - - - -

    Authentication Data:

    - -

    Personal Data

    - - - - - - - - - - - - - - - - - - - -
    Name: - -
    Date of Birth: - - . - - . - -
    Role:
    - - -
    - I am also authorized as - - of - - - , born on - - . - - . - - - - , - - - , to act on their behalf. -

    - - -

    Application Data

    - - - - - - - - - -
    Name:
    Country:Austria
    - -

    Technical Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    URL:
    Sector:
    :
    Identifier: - -
    Identifier of the principal: -
    OID: - -
    HPI:
    Date: - - . - - . - -
    Time: - - : - - : - -
    - - -
    -
    -
    - -
    - - application/xhtml+xml - -
    diff --git a/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_EN.xml.old b/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_EN.xml.old new file mode 100644 index 000000000..1f8085aa3 --- /dev/null +++ b/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_EN.xml.old @@ -0,0 +1,161 @@ + + + + + + + + Signing the authentication data + + + +

    Authentication Data:

    + +

    Personal Data

    + + + + + + + + + + + + + + + + + + + +
    Name: + +
    Date of Birth: + + . + + . + +
    Role:
    + + +
    + I am also authorized as + + of + + + , born on + + . + + . + + + + , + + + , to act on their behalf. +

    + + +

    Application Data

    + + + + + + + + + +
    Name:
    Country:Austria
    + +

    Technical Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    URL:
    Sector:
    :
    Identifier: + +
    Identifier of the principal: +
    OID: + +
    HPI:
    Date: + + . + + . + +
    Time: + + : + + : + +
    + + +
    +
    +
    + +
    + + application/xhtml+xml + +
    diff --git a/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_DE.xml b/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_DE.xml deleted file mode 100644 index 5640412da..000000000 --- a/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_DE.xml +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - Signatur der Anmeldedaten - - - -

    Anmeldedaten:

    - -

    Daten zur Person

    - - - - - - - - - - - - - - - - - - - -
    Name: - -
    Geburtsdatum: - - . - - . - -
    Rolle:
    - - -
    - Ich bin weiters ermächtigt als - - von - - - , geboren am - - . - - . - - - - , - - - , in deren Auftrag zu handeln. -

    - - -

    Daten zur Anwendung

    - - - - - - - - - -
    Name:
    Staat:Österreich
    - -

    Technische Parameter

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    URL:
    Bereich:
    :
    Identifikator: - -
    Identifikator des Vollmachtgebers: -
    OID: - -
    HPI:
    Datum: - - . - - . - -
    Uhrzeit: - - : - - : - -
    - - -
    -
    -
    - -
    -
    diff --git a/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_DE.xml.old b/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_DE.xml.old new file mode 100644 index 000000000..5640412da --- /dev/null +++ b/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_DE.xml.old @@ -0,0 +1,159 @@ + + + + + + + + + Signatur der Anmeldedaten + + + +

    Anmeldedaten:

    + +

    Daten zur Person

    + + + + + + + + + + + + + + + + + + + +
    Name: + +
    Geburtsdatum: + + . + + . + +
    Rolle:
    + + +
    + Ich bin weiters ermächtigt als + + von + + + , geboren am + + . + + . + + + + , + + + , in deren Auftrag zu handeln. +

    + + +

    Daten zur Anwendung

    + + + + + + + + + +
    Name:
    Staat:Österreich
    + +

    Technische Parameter

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    URL:
    Bereich:
    :
    Identifikator: + +
    Identifikator des Vollmachtgebers: +
    OID: + +
    HPI:
    Datum: + + . + + . + +
    Uhrzeit: + + : + + : + +
    + + +
    +
    +
    + +
    +
    diff --git a/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_EN.xml b/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_EN.xml deleted file mode 100644 index 9a067b0ba..000000000 --- a/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_EN.xml +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - Signing the authentication data - - - -

    Authentication Data:

    - -

    Personal Data

    - - - - - - - - - - - - - - - - - - - -
    Name: - -
    Date of Birth: - - . - - . - -
    Role:
    - - -
    - I am also authorized as - - of - - - , born on - - . - - . - - - - , - - - , to act on their behalf. -

    - - -

    Application Data

    - - - - - - - - - -
    Name:
    Country:Austria
    - -

    Technical Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    URL:
    Sector:
    :
    Identifier: - -
    Identifier of the principal: -
    OID: - -
    HPI:
    Date: - - . - - . - -
    Time: - - : - - : - -
    - - -
    -
    -
    - -
    -
    diff --git a/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_EN.xml.old b/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_EN.xml.old new file mode 100644 index 000000000..9a067b0ba --- /dev/null +++ b/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_EN.xml.old @@ -0,0 +1,159 @@ + + + + + + + + + Signing the authentication data + + + +

    Authentication Data:

    + +

    Personal Data

    + + + + + + + + + + + + + + + + + + + +
    Name: + +
    Date of Birth: + + . + + . + +
    Role:
    + + +
    + I am also authorized as + + of + + + , born on + + . + + . + + + + , + + + , to act on their behalf. +

    + + +

    Application Data

    + + + + + + + + + +
    Name:
    Country:Austria
    + +

    Technical Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    URL:
    Sector:
    :
    Identifier: + +
    Identifier of the principal: +
    OID: + +
    HPI:
    Date: + + . + + . + +
    Time: + + : + + : + +
    + + +
    +
    +
    + +
    +
    diff --git a/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/A-Trust-Qual-03.20080425-20180425.SerNoe694(SecureSignatureKeypair).cer b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/A-Trust-Qual-03.20080425-20180425.SerNoe694(SecureSignatureKeypair).cer new file mode 100644 index 000000000..ab9e0cd7d Binary files /dev/null and b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/A-Trust-Qual-03.20080425-20180425.SerNoe694(SecureSignatureKeypair).cer differ diff --git "a/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/A-Trust-Qual-03.20080425-20180425.SerNo\303\224\303\207\303\20403e694(SecureSignatureKeypair).cer" "b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/A-Trust-Qual-03.20080425-20180425.SerNo\303\224\303\207\303\20403e694(SecureSignatureKeypair).cer" deleted file mode 100644 index ab9e0cd7d..000000000 Binary files "a/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/A-Trust-Qual-03.20080425-20180425.SerNo\303\224\303\207\303\20403e694(SecureSignatureKeypair).cer" and /dev/null differ diff --git a/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/A-Trust-Qual-03.20080425-20180425.SerNoe694(SecureSignatureKeypair).cer b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/A-Trust-Qual-03.20080425-20180425.SerNoe694(SecureSignatureKeypair).cer new file mode 100644 index 000000000..ab9e0cd7d Binary files /dev/null and b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/A-Trust-Qual-03.20080425-20180425.SerNoe694(SecureSignatureKeypair).cer differ diff --git "a/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/A-Trust-Qual-03.20080425-20180425.SerNo\303\224\303\207\303\20403e694(SecureSignatureKeypair).cer" "b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/A-Trust-Qual-03.20080425-20180425.SerNo\303\224\303\207\303\20403e694(SecureSignatureKeypair).cer" deleted file mode 100644 index ab9e0cd7d..000000000 Binary files "a/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/A-Trust-Qual-03.20080425-20180425.SerNo\303\224\303\207\303\20403e694(SecureSignatureKeypair).cer" and /dev/null differ diff --git a/id/server/doc/MOA_ID_1.4_Anhang.pdf b/id/server/doc/MOA_ID_1.4_Anhang.pdf new file mode 100644 index 000000000..0c923666f Binary files /dev/null and b/id/server/doc/MOA_ID_1.4_Anhang.pdf differ diff --git a/id/server/doc/moa_id/id-admin_1.htm b/id/server/doc/moa_id/id-admin_1.htm index a695d73b0..bcb67e0fd 100644 --- a/id/server/doc/moa_id/id-admin_1.htm +++ b/id/server/doc/moa_id/id-admin_1.htm @@ -407,7 +407,7 @@ zur Verfügung. Der WebService ist unter http(s)://host:port/moa-id-auth/services/GetAuthenticationData

    erreichbar. Die Verfügbarkeit der Anwendung kann überprüft werden, indem die URLs mit einem Web-Browser aufgerufen werden.

    -

    Musterseite
    +

    Musterseite (MOA-Template zur Bürgerkartenauswahl)
    Nach dem erfolgreichen Starten von Tomcat steht eine Musterseite unter der URL

     http(s)://host:port/moa-id-auth/index.html
    diff --git a/id/server/doc/moa_id/id-admin_2.htm b/id/server/doc/moa_id/id-admin_2.htm index 73569b39d..27d89b5dd 100644 --- a/id/server/doc/moa_id/id-admin_2.htm +++ b/id/server/doc/moa_id/id-admin_2.htm @@ -529,7 +529,8 @@ Projekt moa 

    AuthComponent/ForeignIdentities
    -Ab Version 1.4.7 bietet MOA-ID die Möglichkeit der Nutzung von ausländischen Karten. Hierfür ist ein Stammzahlenregister-Gateway nötig, dass einen entsprechenden Zugang zum Stammzahlenregister bereitstellt. Es ist hierzu ein ensprechenden ConnectionParameter zu definieren, der die Zugangsdaten zum Gateway bereithält (siehe ConnectionParameter). In der Default-Konfiguration ist der Zugang zum Stammzahlenregister-Gateway bereits aktiviert. Es muss nur noch das Client-Zertifikat für die SSL-Verbinung zum Gateway angegeben werden. Voraussetzung dafür ist ein Zertifikat von A-Trust mit Verwaltungseigenschaft. Wenn ihr MOA-ID Zertifikat diese Voraussetzung erfüllt, können Sie dieses hier angeben.

    +Ab Version 1.4.7 bietet MOA-ID die Möglichkeit der Nutzung von ausländischen Karten. Hierfür ist ein Stammzahlenregister-Gateway nötig, dass einen entsprechenden Zugang zum Stammzahlenregister bereitstellt. Es ist hierzu ein ensprechenden ConnectionParameter zu definieren, der die Zugangsdaten zum Gateway bereithält (siehe ConnectionParameter). In der Default-Konfiguration ist der Zugang zum Stammzahlenregister-Gateway bereits aktiviert. Es muss nur noch das Client-Zertifikat für die SSL-Verbinung zum Gateway angegeben werden. Voraussetzung dafür ist ein Zertifikat von A-Trust bzw. A-CERT mit Verwaltungseigenschaft. Wenn ihr MOA-ID Zertifikat diese Voraussetzung erfüllt, können Sie dieses hier angeben.
    +

    ProxyComponent
    ProxyComponent enthält Parameter, die nur die MOA-ID Proxykomponente betreffen. Das Element diff --git a/id/server/doc/moa_id/moa.htm b/id/server/doc/moa_id/moa.htm index bf5d3611d..92e2dfd81 100644 --- a/id/server/doc/moa_id/moa.htm +++ b/id/server/doc/moa_id/moa.htm @@ -230,7 +230,7 @@ an den Benutzer weitergeleitet und die Anfragen des Benutzers an die OA weiterge

    Ergänzung für ausländische Bürger

    Ab der MOA Release 1.4.7 ist es möglich, dass sich auch ausländische Bürger mittels MOA-ID einloggen können. Hierzu wird eine Verbindung zu einem sogenannten Stammzahlenregister-Gateway aufgebaut, dass basierend auf den Zertifikatsdaten des ausländischen Bürgers eine Eintragung im Ergänzungsregister für natürliche Personen gemäß E-Government Gesetz §6(5) vornimmt. Somit ist es möglich, dass eine Personenbindung ausgestellt werden kann, die in weitere Folge an MOA-ID weitergeleitet wird.

    -

    Der Zugang zu diesem Stammzahlenregister-Gateways ist über eine Client-Server Authentifizierung abgesichert. Als Client-Zertifikate werden Zertifikate der Firma A-Trust, die mit der Verwaltungseigenschaft versehene sind, akzeptiert.

    +

    Der Zugang zu diesem Stammzahlenregister-Gateways ist über eine Client-Server Authentifizierung abgesichert. Als Client-Zertifikate werden Zertifikate der Firmen A-Trust bzw. A-CERT, die mit der Verwaltungseigenschaft versehen sind, akzeptiert.

    diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java index 4ef8dc359..c61e2dd84 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java @@ -138,12 +138,18 @@ public class CreateXMLSignatureRequestBuilder implements Constants { request += ""; request += ""; request += "Signatur der Anmeldedaten"; - request += ""; + +// request += ""; request += ""; request += ""; request += "

    Authentication Data:

    "; @@ -151,7 +157,7 @@ public class CreateXMLSignatureRequestBuilder implements Constants { request += ""; request += ""; request += ""; - request += ""; request += ""; @@ -160,21 +166,21 @@ public class CreateXMLSignatureRequestBuilder implements Constants { request += "
    Name:"; + request += ""; request += subject; request += "
    "; request += ""; request += ""; - request += ""; request += ""; request += ""; request += ""; - request += ""; + request += ""; request += ""; request += "
    Name:"; + request += ""; // friendlyname from OA request += StringUtils.isEmpty(oaParam.getFriendlyName()) ? "" : oaParam.getFriendlyName(); request += "
    Country:AustriaAustria
    "; request += "

    Technical Parameters

    "; request += ""; request += ""; request += ""; - request += ""; @@ -188,7 +194,7 @@ public class CreateXMLSignatureRequestBuilder implements Constants { request += ""; - request += ""; request += ""; @@ -198,7 +204,7 @@ public class CreateXMLSignatureRequestBuilder implements Constants { request += ""; request += ""; - request += ""; request += ""; @@ -207,19 +213,19 @@ public class CreateXMLSignatureRequestBuilder implements Constants { request += ""; request += ""; - request += ""; request += ""; request += ""; request += ""; - request += ""; request += ""; request += "
    URL:"; + request += ""; //public URL prefix from OA request += oaParam.getPublicURLPrefix(); request += ""; request += identifierType + ":"; request += ""; + request += ""; request += identifier; request += "
    "; request += "Sector:"; + request += ""; request += target + " (" + sectorName + ")"; request += "
    Date:"; + request += ""; request += date; request += "
    Time:"; + request += ""; request += time; request += "
    "; - request += "

    I hereby request to access this e-government application by using my " + + request += "

    I hereby request to access this e-government application by using my " + "domestic electronic identity.
    " + "I further affirm that I am not yet registered with the Austrian Central " + "Residents Registry and that I am not obliged to register with the Austrian " + diff --git a/spss/server/history.txt b/spss/server/history.txt index d6249e8cd..5e2df26d8 100644 --- a/spss/server/history.txt +++ b/spss/server/history.txt @@ -3,7 +3,7 @@ ############## - Update Konfiguration: - Im Element ServiceOrder unter dem Element RevocationChecking kann nur auch nur ein + Im Element ServiceOrder unter dem Element RevocationChecking kann nun auch nur ein Service eingetragen werden (bspw. nur CRL) - IAIK Libraries aktualisiert: iaik-moa: Version 1.27 -- cgit v1.2.3 From aa06d0b69b4638d4eaa44610dce8831a87514573 Mon Sep 17 00:00:00 2001 From: tkellner Date: Wed, 23 Mar 2011 12:26:33 +0000 Subject: Update link to specification doc git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@1196 d688527b-c9ab-4aba-bd8d-4036d912da1d --- id/server/doc/moa_id/moa.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'id/server/doc/moa_id/moa.htm') diff --git a/id/server/doc/moa_id/moa.htm b/id/server/doc/moa_id/moa.htm index 92e2dfd81..024aed6ba 100644 --- a/id/server/doc/moa_id/moa.htm +++ b/id/server/doc/moa_id/moa.htm @@ -114,7 +114,7 @@ Diese beiden Komponenten können auf unterschiedlichen Rechnern oder auf dem gleichen Rechner eingesetzt werden.

    Die Funktionalität und der Aufbau der Schnittstelle zu MOA-ID ist in der -Spezifikation bzw. im Anhang zur Spezifikation detailliert beschrieben. +Spezifikation bzw. im Anhang zur Spezifikation detailliert beschrieben.

    Für den Betrieb von MOA-ID ist der Einsatz von MOA-Signaturprüfung (MOA-SP) erforderlich. -- cgit v1.2.3 From 2a31c88fda199a37fb7136d86100a9c330e5de34 Mon Sep 17 00:00:00 2001 From: kstranacher Date: Mon, 28 Mar 2011 17:22:32 +0000 Subject: git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@1197 d688527b-c9ab-4aba-bd8d-4036d912da1d --- id/readme_1.5.0.txt | 372 +++++++++++++++++++++ id/server/doc/moa_id/id-admin.htm | 12 +- id/server/doc/moa_id/id-admin_1.htm | 2 +- id/server/doc/moa_id/id-admin_2.htm | 4 +- id/server/doc/moa_id/moa.htm | 2 +- .../moa/id/proxy/servlet/ProxyServlet.java | 14 +- id/templates/pom.xml | 4 +- pom.xml | 2 +- spss/handbook/clients/api/pom.xml | 4 +- spss/handbook/clients/pom.xml | 4 +- spss/handbook/clients/referencedData/pom.xml | 4 +- spss/handbook/clients/webservice/pom.xml | 4 +- spss/handbook/handbook/config/config.html | 2 +- spss/handbook/handbook/faq/faq.html | 2 +- spss/handbook/handbook/index.html | 2 +- spss/handbook/handbook/install/install.html | 8 +- spss/handbook/handbook/intro/intro.html | 2 +- spss/handbook/handbook/usage/usage.html | 2 +- spss/handbook/pom.xml | 4 +- spss/pom.xml | 2 +- spss/server/pom.xml | 4 +- spss/server/serverlib/pom.xml | 2 +- spss/server/serverws/pom.xml | 2 +- spss/server/tools/pom.xml | 4 +- 24 files changed, 416 insertions(+), 48 deletions(-) create mode 100644 id/readme_1.5.0.txt (limited to 'id/server/doc/moa_id/moa.htm') diff --git a/id/readme_1.5.0.txt b/id/readme_1.5.0.txt new file mode 100644 index 000000000..4815e86e1 --- /dev/null +++ b/id/readme_1.5.0.txt @@ -0,0 +1,372 @@ +=============================================================================== +MOA ID Version 1.5.0 - Wichtige Informationen zur Installation +=============================================================================== + +------------------------------------------------------------------------------- +A. Neuerungen/Änderungen +------------------------------------------------------------------------------- + +Mit MOA ID Version 1.5.0 wurden folgende Neuerungen eingeführt, die jetzt +erstmals in der Veröffentlichung enthalten sind (siehe auch history.txt im +gleichen Verzeichnis): + +TODO +------------------------------------------------------------------------------- +B. Durchführung eines Updates +------------------------------------------------------------------------------- +TODO +Es wird generell eine Neuinstallation lt. Handbuch empfohlen! Dennoch ist auch +eine Aktualisierung bestehender Installationen möglich. + +............................................................................... +B.1 Durchführung eines Updates von Version 1.4.7 +............................................................................... + +1. Stoppen Sie den Tomcat, in dem Ihre bisherige Installation betrieben wird. + Fertigen Sie eine Sicherungskopie Ihrer kompletten Tomcat-Installation an. + +2. Entpacken Sie die Distribution von MOA ID Auth (moa-id-auth-1.4.8.zip) in + ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_AUTH_INST + bezeichnet. + Für MOA ID Proxy: + Entpacken Sie die Distribution von MOA ID Proxy (moa-id-proxy-1.4.8.zip) in + ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_PROXY_INST + bezeichnet. + +3. Wechseln Sie in jenes Verzeichnis, das die Webapplikation von MOA ID Auth + beinhaltet (für gewöhnlich ist dieses Verzeichnis CATALINA_HOME_ID/webapps, + wobei CATALINA_HOME_ID für das Basisverzeichnis der Tomcat-Installation + für MOA ID steht). Löschen Sie darin sowohl die Datei moa-id-auth.war als + auch das komplette Verzeichnis moa-id-auth. + Für MOA ID Proxy: + Wechseln Sie in jenes Verzeichnis, das die Webapplikation von MOA ID Proxy + beinhaltet (für gewöhnlich ist dieses Verzeichnis CATALINA_HOME_ID/ + webappsProxy, wobei CATALINA_HOME_ID für das Basisverzeichnis der Tomcat-Installation + für MOA ID steht). Löschen Sie darin sowohl die Datei moa-id-proxy.war als + auch das komplette Verzeichnis moa-id-proxy. + +4. Kopieren Sie die Datei MOA_ID_AUTH_INST/moa-id-auth.war nach + CATALINA_HOME_ID/webapps. + Für MOA ID Proxy: + Kopieren Sie die Datei MOA_ID_PROXY_INST/moa-id-proxy.war nach + CATALINA_HOME_ID/webappsProxy. + +5. Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im + Logging von MOA ID beim Einlesen der Konfiguration. + + +............................................................................... +B.2 Durchführung eines Updates von Version 1.4.3 oder 1.4.4 oder 1.4.5 oder + 1.4.6 +............................................................................... + +1. Stoppen Sie den Tomcat, in dem Ihre bisherige Installation betrieben wird. + Fertigen Sie eine Sicherungskopie Ihrer kompletten Tomcat-Installation an. + +2. Entpacken Sie die Distribution von MOA ID Auth (moa-id-auth-1.4.8.zip) in + ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_AUTH_INST + bezeichnet. + Für MOA ID Proxy: + Entpacken Sie die Distribution von MOA ID Proxy (moa-id-proxy-1.4.8.zip) in + ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_PROXY_INST + bezeichnet. + +3. Wechseln Sie in jenes Verzeichnis, das die Webapplikation von MOA ID Auth + beinhaltet (für gewöhnlich ist dieses Verzeichnis CATALINA_HOME_ID/webapps, + wobei CATALINA_HOME_ID für das Basisverzeichnis der Tomcat-Installation + für MOA ID steht). Löschen Sie darin sowohl die Datei moa-id-auth.war als + auch das komplette Verzeichnis moa-id-auth. + Für MOA ID Proxy: + Wechseln Sie in jenes Verzeichnis, das die Webapplikation von MOA ID Proxy + beinhaltet (für gewöhnlich ist dieses Verzeichnis CATALINA_HOME_ID/ + webappsProxy, wobei CATALINA_HOME_ID für das Basisverzeichnis der Tomcat-Installation + für MOA ID steht). Löschen Sie darin sowohl die Datei moa-id-proxy.war als + auch das komplette Verzeichnis moa-id-proxy. + +4. Kopieren Sie die Datei MOA_ID_AUTH_INST/moa-id-auth.war nach + CATALINA_HOME_ID/webapps. + Für MOA ID Proxy: + Kopieren Sie die Datei MOA_ID_PROXY_INST/moa-id-proxy.war nach + CATALINA_HOME_ID/webappsProxy. + +5. Erstellen Sie eine Sicherungskopie aller "iaik*.jar"-Dateien im Verzeichnis + JAVA_HOME\jre\lib\ext und löschen Sie diese Dateien danach. + +6. Kopieren Sie alle Dateien aus dem Verzeichnis MOA_ID_INST_AUTH\ext in das + Verzeichnis JAVA_HOME\jre\lib\ext. + +7. Kopieren Sie die zwei Dateien aus dem Verzeichnis + MOA_ID_AUTH_INST/conf/moa-id/transforms in das Verzeichnis transforms Ihres + Stammverzeichnisses für die MOA ID Konfiguration (für gewöhnlich lautet + dieses Stammverzeichnis CATALINA_HOME_ID/conf/moa-id; in weiterer Folge + wird davon ausgegangen). + Weiters editieren Sie ihre MOA ID Konfiguration wie folgt: + * Im Element MOA-IDConfiguration/AuthComponent/SecurityLayer fügen + Sie eine der folgende Zeilen ein: + + + je nachdem ob sie einen englischen oder deutschen Text zur + Anzeige wünschen. + Alle weiteren TransformsInfo Elemente löschen Sie bitte. + * Im Element AuthComponent/MOA-SP/VerifyAuthBlock fügen Sie eine + der folgende Zeilen ein: + MOAIDTransformAuthBlockTable_DE + MOAIDTransformAuthBlockTable_EN + je nachdem ob Sie einen englischen oder deutschen Text zur + Anzeige ausgewählt haben. + Alle weiteren VerifyTransformsInfoProfileID Elemente löschen + Sie bitte. +8. Kopieren Sie die zwei Dateien aus dem Verzeichnis + MOA_ID_AUTH_INST/conf/moa-spss/profiles in das Verzeichnis profiles Ihres + Stammverzeichnisses für die MOA SPSS Konfiguration (für gewöhnlich lautet + dieses Stammverzeichnis CATALINA_HOME_SPSS/conf/moa-spss, wobei + CATALINA_HOME_SPSS für das Basisverzeichnis der Tomcat-Installation + für MOA SPSS steht; wenn Sie MOA SPSS nicht als eigenes Webservice + betreiben, sondern es von MOA ID über die API-Schnittstelle angesprochen + wird, lautet dieses Stammverzeichnis für gewöhnlich + CATALINA_HOME_ID/conf/moa-spss. + Weiters editieren Sie ihre MOA SPSS Konfiguration wie folgt: + * Im Element MOAConfiguration/SignatureVerification fügen Sie folgende + Zeilen ein: + + MOAIDTransformAuthBlockTable_DE + profiles/MOAIDTransformAuthBlockTable_DE.xml + + + MOAIDTransformAuthBlockTable_EN + profiles/MOAIDTransformAuthBlockTable_EN.xml + + +9. Kopieren Sie die drei Dateien aus dem Verzeichnis + MOA_ID_AUTH_INST/conf/moa-id/certs/ca-certs in das Verzeichnis + certs/ca-certs Ihres Stammverzeichnisses für die MOA ID Konfiguration + (für gewöhnlich lautet dieses Stammverzeichnis CATALINA_HOME_ID/conf/moa-id; + in weiterer Folge wird davon ausgegangen). + Weiters editieren Sie ihre MOA ID Konfiguration wie folgt: + * Im Element MOA-IDConfiguration/AuthComponent fügend Sie als letztes + Kind-Element folgende Zeilen ein: + + + cert/clientcert.p12 + + + + Anmerkung: Im ClientKeyStore Element geben Sie den Client Keystore für + den Zugriff auf das Stammzahlenregister-Gateway an. Voraussetzung ist + ein A-Trust oder A-CERT Zertifikat mit Verwaltungseigenschaft. Wenn + ihr MOA-ID Zertifikat diese Voraussetzung erfüllt, können Sie dieses + hier angeben. + +10. Update des Cert-Stores. + Kopieren Sie den Inhalt des Verzeichnisses + MOA_ID_INST_AUTH\conf\moa-spss\certstore in das Verzeichnis + CATALINA_HOME\conf\moa-spss\certstore. Wenn Sie gefragt werden, ob Sie + vorhandene Dateien oder Unterverzeichnisse überschreiben sollen, dann + bejahen sie das. + +11. Update der Trust-Profile. Achten sie bei Case-sensitiven Betriebssystemen + auf die Profilbezeichnungen. Aus trustprofiles wurde trustProfiles. + Wenn Sie Ihre alten Trust-Profile durch die neuen ersetzen wollen, dann + gehen Sie vor, wie in Punkt a). Wenn Sie Ihre eigenen Trust-Profile + beibehalten wollen, dann gehen Sie vor, wie in Punkt b). + + a. Gehen Sie wie folgt vor, um die Trust-Profile auszutauschen: + + 1) Löschen Sie das Verzeichnis CATALINA_HOME\conf\moa-spss\trustprofiles. + 2) Kopieren Sie das Verzeichnis + MOA_ID_INST_AUTH\conf\moa-spss\trustProfiles in das Verzeichnis + CATALINA_HOME\conf\moa-spss. + + b. Falls Sie Ihre alten Trust-Profile beibehalten wollen, gehen Sie wie + folgt vor, um die Profile auf den aktuellen Stand zu bringen: + + 1) Benennen Sie ein eventuell vorhandenes Verzeichnis trustprofiles in + trustProfiles um (vergessen Sie nicht, diese Änderung in Ihrer + MOA-SP/SS Konfigurationsdatei ebenfalls zu berücksichtigen und + benennen Sie dort alle gleichartigen Vorkommen von trustprofiles + in trustProfiles um) + + 2) Ergänzen Sie ihre Trustprofile durch alle Zertifikate aus den + entsprechenden Profilen im Verzeichnis + MOA_ID_INST_AUTH\conf\moa-spss\trustProfiles, die nicht in Ihren + Profilen enthalten sind. Am einfachsten ist es, wenn Sie den Inhalt + der einzelnen Profile aus der Distribution + (MOA_ID_INST_AUTH\conf\moa-spss\trustProfiles) in die entsprechenden + Profile Ihrer Installation (CATALINA_HOME\conf\moa-spss\trustProfiles) + kopieren und dabei die vorhandenen gleichnamigen Zertifikate + überschreiben), also z.B: Kopieren des Inhalts von + MOA_ID_INST_AUTH\conf\moa-spss\trustProfiles\ + MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten nach + CATALINA_HOME\conf\moa-spss\trustProfiles\ + MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten usw. + + +12. Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im + Logging von MOA ID beim Einlesen der erneuerten Konfiguration. + +............................................................................... +B.3 Durchführung eines Updates von Version 1.4.1 oder 1.4.2 (incl. beta 1) +............................................................................... + +1. Stoppen Sie den Tomcat, in dem Ihre bisherige Installation betrieben wird. + Fertigen Sie eine Sicherungskopie Ihrer kompletten Tomcat-Installation an. + +2. Entpacken Sie die Distribution von MOA ID Auth (moa-id-auth-1.4.8.zip) in + ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_AUTH_INST + bezeichnet. + Für MOA ID Proxy: + Entpacken Sie die Distribution von MOA ID Proxy (moa-id-proxy-1.4.8.zip) in + ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_PROXY_INST + bezeichnet. + +3. Wechseln Sie in jenes Verzeichnis, das die Webapplikation von MOA ID Auth + beinhaltet (für gewöhnlich ist dieses Verzeichnis CATALINA_HOME_ID/webapps, + wobei CATALINA_HOME_ID für das Basisverzeichnis der Tomcat-Installation + für MOA ID steht). Löschen Sie darin sowohl die Datei moa-id-auth.war als + auch das komplette Verzeichnis moa-id-auth. + Für MOA ID Proxy: + Wechseln Sie in jenes Verzeichnis, das die Webapplikation von MOA ID Proxy + beinhaltet (für gewöhnlich ist dieses Verzeichnis CATALINA_HOME_ID/ + webappsProxy, wobei CATALINA_HOME_ID für das Basisverzeichnis der Tomcat-Installation + für MOA ID steht). Löschen Sie darin sowohl die Datei moa-id-proxy.war als + auch das komplette Verzeichnis moa-id-proxy. + +4. Kopieren Sie die Datei MOA_ID_AUTH_INST/moa-id-auth.war nach + CATALINA_HOME_ID/webapps. + Für MOA ID Proxy: + Kopieren Sie die Datei MOA_ID_PROXY_INST/moa-id-proxy.war nach + CATALINA_HOME_ID/webappsProxy. + +5. Erstellen Sie eine Sicherungskopie aller "iaik*.jar"-Dateien im Verzeichnis + JAVA_HOME\jre\lib\ext und löschen Sie diese Dateien danach. + +6. Kopieren Sie alle Dateien aus dem Verzeichnis MOA_ID_INST_AUTH\ext in das + Verzeichnis JAVA_HOME\jre\lib\ext. + +7. Kopieren Sie die zwei Dateien aus dem Verzeichnis + MOA_ID_AUTH_INST/conf/moa-id/transforms in das Verzeichnis transforms Ihres + Stammverzeichnisses für die MOA ID Konfiguration (für gewöhnlich lautet + dieses Stammverzeichnis CATALINA_HOME_ID/conf/moa-id; in weiterer Folge + wird davon ausgegangen). + Weiters editieren Sie ihre MOA ID Konfiguration wie folgt: + * Im Element MOA-IDConfiguration/AuthComponent/SecurityLayer fügen + Sie eine der folgende Zeilen ein: + + + je nachdem ob sie einen englischen oder deutschen Text zur + Anzeige wünschen. + Alle weiteren TransformsInfo Elemente löschen Sie bitte. + * Im Element AuthComponent/MOA-SP/VerifyAuthBlock fügen Sie eine + der folgende Zeilen ein: + MOAIDTransformAuthBlockTable_DE + MOAIDTransformAuthBlockTable_EN + je nachdem ob sie einen englischen oder deutschen Text zur + Anzeige ausgewählt haben. + Alle weiteren VerifyTransformsInfoProfileID Elemente löschen + Sie bitte. +8. Kopieren Sie die zwei Dateien aus dem Verzeichnis + MOA_ID_AUTH_INST/conf/moa-spss/profiles in das Verzeichnis profiles Ihres + Stammverzeichnisses für die MOA SPSS Konfiguration (für gewöhnlich lautet + dieses Stammverzeichnis CATALINA_HOME_SPSS/conf/moa-spss, wobei + CATALINA_HOME_SPSS für das Basisverzeichnis der Tomcat-Installation + für MOA SPSS steht; wenn Sie MOA SPSS nicht als eigenes Webservice + betreiben, sondern es von MOA ID über die API-Schnittstelle angesprochen + wird, lautet dieses Stammverzeichnis für gewöhnlich + CATALINA_HOME_ID/conf/moa-spss. + Weiters editieren Sie ihre MOA SPSS Konfiguration wie folgt: + * Im Element MOAConfiguration/SignatureVerification fügen Sie folgende + Zeilen ein: + + MOAIDTransformAuthBlockTable_DE + profiles/MOAIDTransformAuthBlockTable_DE.xml + + + MOAIDTransformAuthBlockTable_EN + profiles/MOAIDTransformAuthBlockTable_EN.xml + + +9. Kopieren Sie die drei Dateien aus dem Verzeichnis + MOA_ID_AUTH_INST/conf/moa-id/certs/ca-certs in das Verzeichnis + certs/ca-certs Ihres Stammverzeichnisses für die MOA ID Konfiguration + (für gewöhnlich lautet dieses Stammverzeichnis CATALINA_HOME_ID/conf/moa-id; + in weiterer Folge wird davon ausgegangen). + Weiters editieren Sie ihre MOA ID Konfiguration wie folgt: + * Im Element MOA-IDConfiguration/AuthComponent fügend Sie als letztes + Kind-Element folgende Zeilen ein: + + + cert/clientcert.p12 + + + + Anmerkung: Im ClientKeyStore Element geben Sie den Client Keystore für + den Zugriff auf das Stammzahlenregister-Gateway an. Voraussetzung ist + ein A-Trust oder A-CERT Zertifikat mit Verwaltungseigenschaft. Wenn + ihr MOA-ID Zertifikat diese Voraussetzung erfüllt, können Sie dieses + hier angeben. + +10. Update des Cert-Stores. + Kopieren Sie den Inhalt des Verzeichnisses + MOA_ID_INST_AUTH\conf\moa-spss\certstore in das Verzeichnis + CATALINA_HOME\conf\moa-spss\certstore. Wenn Sie gefragt werden, ob Sie + vorhandene Dateien oder Unterverzeichnisse überschreiben sollen, dann + bejahen sie das. + +11. Update der Trust-Profile. Achten sie bei Case-sensitiven Betriebssystemen + auf die Profilbezeichnungen. Aus trustprofiles wurde trustProfiles. + Wenn Sie Ihre alten Trust-Profile durch die neuen ersetzen wollen, dann + gehen Sie vor, wie in Punkt a). Wenn Sie Ihre eigenen Trust-Profile + beibehalten wollen, dann gehen Sie vor, wie in Punkt b). + + a. Gehen Sie wie folgt vor, um die Trust-Profile auszutauschen: + + 1) Löschen Sie das Verzeichnis CATALINA_HOME\conf\moa-spss\trustprofiles. + 2) Kopieren Sie das Verzeichnis + MOA_ID_INST_AUTH\conf\moa-spss\trustProfiles in das Verzeichnis + CATALINA_HOME\conf\moa-spss. + + b. Falls Sie Ihre alten Trust-Profile beibehalten wollen, gehen Sie wie + folgt vor, um die Profile auf den aktuellen Stand zu bringen: + + 1) Benennen Sie ein eventuell vorhandenes Verzeichnis trustprofiles in + trustProfiles um (vergessen Sie nicht, diese Änderung in Ihrer + MOA-SP/SS Konfigurationsdatei ebenfalls zu berücksichtigen und + benennen Sie dort alle gleichartigen Vorkommen von trustprofiles + in trustProfiles um) + + 2) Ergänzen Sie ihre Trustprofile durch alle Zertifikate aus den + entsprechenden Profilen im Verzeichnis + MOA_ID_INST_AUTH\conf\moa-spss\trustProfiles, die nicht in Ihren + Profilen enthalten sind. Am einfachsten ist es, wenn Sie den Inhalt + der einzelnen Profile aus der Distribution + (MOA_ID_INST_AUTH\conf\moa-spss\trustProfiles) in die entsprechenden + Profile Ihrer Installation (CATALINA_HOME\conf\moa-spss\trustProfiles) + kopieren und dabei die vorhandenen gleichnamigen Zertifikate + überschreiben), also z.B: Kopieren des Inhalts von + MOA_ID_INST_AUTH\conf\moa-spss\trustProfiles\ + MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten nach + CATALINA_HOME\conf\moa-spss\trustProfiles\ + MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten usw. + +13. Sichern Sie ihre MOA-ID Konfigurationsdatei. Kopieren Sie die + Beispielkonfigurationsdateien aus dem Verzeichnis + MOA_ID_AUTH_INST/conf/moa-id/SampleMOA*.xml nach + CATALINA_HOME_ID/conf/moa-id. + Verwenden Sie in Ihrer Installation bereits die Vollmachtenprüfung, so + verschieben Sie bitte in der MOA-ID Installationsdatei das Element + innerhalb des Konfigurationsteiles für die berufliche + Parteienvertreung (ParepSpecificParameters) unter das Element + ApplicationSpecificParameters. + + +14. Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im + Logging von MOA ID beim Einlesen der erneuerten Konfiguration. + +............................................................................... +B.4 Durchführung eines Updates von einer älteren Version +............................................................................... + +Bitte führen Sie eine Neuinstallation von MOA ID laut Handbuch durch und passen +Sie die mitgelieferte Musterkonfiguration entsprechend Ihren Bedürfnissen unter +Zuhilfenahme Ihrer bisherigen Konfiguration an. + diff --git a/id/server/doc/moa_id/id-admin.htm b/id/server/doc/moa_id/id-admin.htm index 8238c7c2d..31500f6f0 100644 --- a/id/server/doc/moa_id/id-admin.htm +++ b/id/server/doc/moa_id/id-admin.htm @@ -70,7 +70,7 @@ Projekt moa  -

    MOA ID-Administration v.1.4
    +
    MOA ID-Administration v.1.5

    Die Komponenten des Moduls Identifikation (MOA-ID), MOA-ID-AUTH und MOA-ID-PROXY, sind als plattformunabhängige Webapplikationen ausgelegt. MOA-ID-AUTH ist die Basiskomponente des Moduls, und MOA-ID-PROXY ist eine optionale Zusatzkomponente. @@ -113,8 +113,8 @@ Folgende Software ist Voraussetzung für die Basis-Installation:

    • JDK 1.4.0, JDK 1.4.2, JDK 1.5.0 oder JDK 1.6
    • Tomcat 4.1.31, Tomcat 5.0.28, Tomcat 5.5 oder Tomcat 6
    • -
    • MOA-ID-AUTH 1.4
    • -
    • MOA SP/SS 1.4 oder neuer (entweder als WebService oder direkt als interne Bibliothek)
    • +
    • MOA-ID-AUTH 1.5
    • +
    • MOA SP/SS 1.5 oder neuer (entweder als WebService oder direkt als interne Bibliothek)
    @@ -251,15 +251,15 @@ Die Versionsangaben beziehen sich auf die Versionen, mit denen die MOA ID Webapp MOA-ID-AUTH - 1.4 (neueste Version) + 1.5 (neueste Version) MOA-ID-PROXY - 1.4 (neueste Version) + 1.5 (neueste Version) MOA-SPSS - 1.4 (neueste Version)  + 1.5 (neueste Version)  Apache Webserver diff --git a/id/server/doc/moa_id/id-admin_1.htm b/id/server/doc/moa_id/id-admin_1.htm index d1410adb7..12e445fe2 100644 --- a/id/server/doc/moa_id/id-admin_1.htm +++ b/id/server/doc/moa_id/id-admin_1.htm @@ -81,7 +81,7 @@ Projekt moa  -

    Basis-Installation v.1.4

    +

    Basis-Installation v.1.5

    Bei der Basis-Installation von MOA-ID-AUTH und von MOA-ID-PROXY ist grundsätzlich gleichartig vorzugehen. Unterschiede sind in der Installationsanweisung angeführt.
    diff --git a/id/server/doc/moa_id/id-admin_2.htm b/id/server/doc/moa_id/id-admin_2.htm index 27d89b5dd..9668dd908 100644 --- a/id/server/doc/moa_id/id-admin_2.htm +++ b/id/server/doc/moa_id/id-admin_2.htm @@ -116,9 +116,9 @@ Projekt moa  -
    Konfiguration von MOA ID v.1.4
    +
    Konfiguration von MOA ID v.1.5
    -

    Konfiguration von MOA ID v.1.4

    +

    Konfiguration von MOA ID v.1.5

    Die Konfiguration von MOA ID wird mittels einer XML-basierten Konfigurationsdatei, die dem Schema MOA-ID-Configuration-1.4.7.xsd entspricht, durchgeführt. diff --git a/id/server/doc/moa_id/moa.htm b/id/server/doc/moa_id/moa.htm index 024aed6ba..3694bb0f3 100644 --- a/id/server/doc/moa_id/moa.htm +++ b/id/server/doc/moa_id/moa.htm @@ -80,7 +80,7 @@ Projekt moa  -

    Allgemein v.1.4
    +
    Allgemein v.1.5

    Dieses Dokument enthält die Dokumentation für das Modul

      diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/proxy/servlet/ProxyServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/proxy/servlet/ProxyServlet.java index 0cd0a0b7a..ce15b75bd 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/proxy/servlet/ProxyServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/proxy/servlet/ProxyServlet.java @@ -659,18 +659,14 @@ private int tunnelRequest(HttpServletRequest req, HttpServletResponse resp, Map } else { Logger.debug("Resp header ---REMOVED--- " + headerKey + ": " + headerValue); } - if (isTransferEncodingChunkedHeader(headerKey, headerValue)) { - chunked = true; - transferEncodingKey = headerKey; + if (isTransferEncodingChunkedHeader(headerKey, headerValue) || "content-length".equalsIgnoreCase(headerKey)) { + respHeaders.remove(respHeader); + Logger.debug("Resp header " + headerKey + " REMOVED"); } - if ("content-length".equalsIgnoreCase(headerKey)) - contentLengthKey = headerKey; + i++; } - if (chunked && contentLengthKey != null) { - respHeaders.remove(transferEncodingKey); - Logger.debug("Resp header " + transferEncodingKey + " REMOVED"); - } + String headerValue; String respHeader[] = new String[2]; diff --git a/id/templates/pom.xml b/id/templates/pom.xml index c7ac886fc..b7a5d537a 100644 --- a/id/templates/pom.xml +++ b/id/templates/pom.xml @@ -4,14 +4,14 @@ MOA id - 1.4.8 + 1.5.0 4.0.0 MOA.id moa-id-templates war - 1.4.3 + 1.5.0 MOA ID Sample Templates diff --git a/pom.xml b/pom.xml index 18b2be57a..e60eeb382 100644 --- a/pom.xml +++ b/pom.xml @@ -205,7 +205,7 @@ MOA.spss.server moa-spss-tools - 1.4 + 1.5 test diff --git a/spss/handbook/clients/api/pom.xml b/spss/handbook/clients/api/pom.xml index 9b557a181..6a38fbb2d 100644 --- a/spss/handbook/clients/api/pom.xml +++ b/spss/handbook/clients/api/pom.xml @@ -2,14 +2,14 @@ MOA.spss.handbook.clients moa-spss-handbook-clients - 1.4 + 1.5 4.0.0 MOA.spss.handbook moa-spss-handbook-apiClient jar - 1.4 + 1.5 MOA SP/SS Handbook API Client diff --git a/spss/handbook/clients/pom.xml b/spss/handbook/clients/pom.xml index a4b5eb216..5a4ab81c8 100644 --- a/spss/handbook/clients/pom.xml +++ b/spss/handbook/clients/pom.xml @@ -3,14 +3,14 @@ MOA.spss.handbook moa-spss-handbook - 1.4 + 1.5 4.0.0 MOA.spss.handbook.clients moa-spss-handbook-clients pom - 1.4 + 1.5 MOA SP/SS Handbook Clients diff --git a/spss/handbook/clients/referencedData/pom.xml b/spss/handbook/clients/referencedData/pom.xml index f7f1e7b20..9a8a3b68e 100644 --- a/spss/handbook/clients/referencedData/pom.xml +++ b/spss/handbook/clients/referencedData/pom.xml @@ -3,14 +3,14 @@ MOA.spss.handbook.clients moa-spss-handbook-clients - 1.4 + 1.5 4.0.0 MOA.spss.handbook moa-spss-handbook-referencedData war - 1.4 + 1.5 MOA SP/SS Handbook Referenced Data diff --git a/spss/handbook/clients/webservice/pom.xml b/spss/handbook/clients/webservice/pom.xml index 52cfb0aa1..70aefa4bc 100644 --- a/spss/handbook/clients/webservice/pom.xml +++ b/spss/handbook/clients/webservice/pom.xml @@ -2,14 +2,14 @@ MOA.spss.handbook.clients moa-spss-handbook-clients - 1.4 + 1.5 4.0.0 MOA.spss.handbook.clients moa-spss-handbook-webserviceClient jar - 1.4 + 1.5 MOA SP/SS Handbook WebService Client diff --git a/spss/handbook/handbook/config/config.html b/spss/handbook/handbook/config/config.html index 16c40a74c..42684ccee 100644 --- a/spss/handbook/handbook/config/config.html +++ b/spss/handbook/handbook/config/config.html @@ -15,7 +15,7 @@
      -

      MOA: Serversignatur (SS) und Signaturprüfung (SP), V 1.4.8

      +

      MOA: Serversignatur (SS) und Signaturprüfung (SP), V 1.5.0

      Konfiguration


      Inhalt

      diff --git a/spss/handbook/handbook/faq/faq.html b/spss/handbook/handbook/faq/faq.html index f2063bdc2..c2bc36814 100644 --- a/spss/handbook/handbook/faq/faq.html +++ b/spss/handbook/handbook/faq/faq.html @@ -15,7 +15,7 @@
      -

      MOA: Serversignatur (SS) und Signaturprüfung (SP), V 1.4.8

      +

      MOA: Serversignatur (SS) und Signaturprüfung (SP), V 1.5.0

      FAQ


      Inhalt

      diff --git a/spss/handbook/handbook/index.html b/spss/handbook/handbook/index.html index 9757832e2..b4fddc1c0 100644 --- a/spss/handbook/handbook/index.html +++ b/spss/handbook/handbook/index.html @@ -16,7 +16,7 @@

      MOA: Serversignatur (SS) und Signaturprüfung (SP)

      -

      Übersicht zur Dokumentation der Version 1.4.8

      +

      Übersicht zur Dokumentation der Version 1.5.0


      Einführung
      diff --git a/spss/handbook/handbook/install/install.html b/spss/handbook/handbook/install/install.html index 6eb65f3b9..8ff511a7e 100644 --- a/spss/handbook/handbook/install/install.html +++ b/spss/handbook/handbook/install/install.html @@ -15,7 +15,7 @@
      -

      MOA: Serversignatur (SS) und Signaturprüfung (SP), V 1.4.8

      +

      MOA: Serversignatur (SS) und Signaturprüfung (SP), V 1.5.0

      Installation


      Inhalt

      @@ -127,7 +127,7 @@
      Installation von Apache Tomcat 4.1
      Installieren Sie Apache Tomcat 4.1.18 oder höher in ein Verzeichnis, das keine Leerzeichen im Pfadnamen enthält. Wir empfehlen die Installation von Apache Tomcat 4.1.31. Verwenden Sie bitte die zu Ihrem J2SE SDK passende Distribution von Tomcat. Das Wurzelverzeichnis der Tomcat-Installation wird im weiteren Verlauf als $CATALINA_HOME bezeichnet.
      Entpacken der MOA SP/SS Webservice Distribution
      -
      Entpacken Sie die Datei moa-spss-1.4.6.zip in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als $MOA_SPSS_INST bezeichnet.
      +
      Entpacken Sie die Datei moa-spss-1.5.0.zip in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als $MOA_SPSS_INST bezeichnet.
      Installation der Krypographiebibliotheken von SIC/IAIK

      Die Installation der Kryptographiebibliotheken von SIC/IAIK:

      @@ -380,7 +380,7 @@ INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=<null>
      Installation von J2SE SDK
      Installieren Sie J2SE 1.4.x SDK oder J2SE 5.0 SDK in ein beliebiges Verzeichnis. Wir empfehlen die Installation von J2SE 5.0 SDK. Das Wurzelverzeichnis der J2SE SDK Installation wird im weiteren Verlauf als $JAVA_HOME bezeichnet.
      Entpacken der MOA SP/SS Klassenbibliotheks-Distribution
      -
      Entpacken Sie die Datei moa-spss-1.4.6-lib.zip in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als $MOA_SPSS_INST bezeichnet.
      +
      Entpacken Sie die Datei moa-spss-1.5.0-lib.zip in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als $MOA_SPSS_INST bezeichnet.
      Installation der Krypographiebibliotheken von SIC/IAIK

      Die Installation der Kryptographiebibliotheken von SIC/IAIK:

      @@ -399,7 +399,7 @@ INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=<null> MOA SP/SS -1.4.6  +1.5.0  moa-spss.jar, moa-common.jar MOA IAIK diff --git a/spss/handbook/handbook/intro/intro.html b/spss/handbook/handbook/intro/intro.html index 73188bee7..5fef6eae7 100644 --- a/spss/handbook/handbook/intro/intro.html +++ b/spss/handbook/handbook/intro/intro.html @@ -15,7 +15,7 @@
      -

      MOA: Serversignatur (SS) und Signaturprüfung (SP), V 1.4.8

      +

      MOA: Serversignatur (SS) und Signaturprüfung (SP), V 1.5.0

      Einführung


      Inhalt

      diff --git a/spss/handbook/handbook/usage/usage.html b/spss/handbook/handbook/usage/usage.html index 385362e37..ca27f4f24 100644 --- a/spss/handbook/handbook/usage/usage.html +++ b/spss/handbook/handbook/usage/usage.html @@ -15,7 +15,7 @@
      -

      MOA: Serversignatur (SS) und Signaturprüfung (SP), V 1.4.8

      +

      MOA: Serversignatur (SS) und Signaturprüfung (SP), V 1.5.0

      Anwendung


      Inhalt

      diff --git a/spss/handbook/pom.xml b/spss/handbook/pom.xml index 3733e8df4..9caf5c181 100644 --- a/spss/handbook/pom.xml +++ b/spss/handbook/pom.xml @@ -3,14 +3,14 @@ MOA spss - 1.4.x + 1.5.x 4.0.0 MOA.spss.handbook moa-spss-handbook pom - 1.4 + 1.5 MOA SP/SS Handbook diff --git a/spss/pom.xml b/spss/pom.xml index b539eb2de..ce76a939d 100644 --- a/spss/pom.xml +++ b/spss/pom.xml @@ -10,7 +10,7 @@ MOA spss pom - 1.4.x + 1.5.x MOA SP/SS diff --git a/spss/server/pom.xml b/spss/server/pom.xml index 39593518e..a78496017 100644 --- a/spss/server/pom.xml +++ b/spss/server/pom.xml @@ -3,14 +3,14 @@ MOA spss - 1.4.x + 1.5.x 4.0.0 MOA.spss moa-spss pom - 1.4.x + 1.5.x MOA SP/SS Server diff --git a/spss/server/serverlib/pom.xml b/spss/server/serverlib/pom.xml index 1f920a3d7..555376fe0 100644 --- a/spss/server/serverlib/pom.xml +++ b/spss/server/serverlib/pom.xml @@ -2,7 +2,7 @@ MOA.spss moa-spss - 1.4.x + 1.5.x 4.0.0 diff --git a/spss/server/serverws/pom.xml b/spss/server/serverws/pom.xml index c3fda458e..6ba951610 100644 --- a/spss/server/serverws/pom.xml +++ b/spss/server/serverws/pom.xml @@ -3,7 +3,7 @@ MOA.spss moa-spss - 1.4.x + 1.5.x 4.0.0 diff --git a/spss/server/tools/pom.xml b/spss/server/tools/pom.xml index a9c9c374f..b276e5441 100644 --- a/spss/server/tools/pom.xml +++ b/spss/server/tools/pom.xml @@ -2,14 +2,14 @@ MOA.spss moa-spss - 1.4.x + 1.5.x 4.0.0 MOA.spss.server moa-spss-tools jar - 1.4 + 1.5 MOA SP/SS Tools -- cgit v1.2.3 From ac9a6c52e96f4c737de3392a7ba16b8fa8958b85 Mon Sep 17 00:00:00 2001 From: kstranacher Date: Wed, 6 Apr 2011 15:29:11 +0000 Subject: - IAIK Libraries (repository) aktualisiert: iaik-moa: Version 1.29 iaik_jce_full: Version 4.0_MOA iaik_cms: Version 4.1_MOA - Einbindung von Online-Vollmachten - Update MOA-Template zur Bürgerkartenauswahl - Update Doku - Update Transformationen (für Online-Vollmachten) - Änderung der Konfiguration für: - Online-Vollmachten MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@1199 d688527b-c9ab-4aba-bd8d-4036d912da1d --- .../java/at/gv/egovernment/moa/util/DOMUtils.java | 80 +++++- .../schemas/MOA-ID-Configuration-1.5.0.xsd | 23 +- id/history.txt | 5 +- id/readme_1.5.0.txt | 99 ++++++-- .../main/webapp/BKAuswahl-MOA-Template-Howto.pdf | Bin 175414 -> 175412 bytes id/server/auth/src/main/webapp/WEB-INF/web.xml | 14 +- id/server/auth/src/main/webapp/css/index.css | 14 +- id/server/auth/src/main/webapp/iframeHandyBKU.html | 5 +- id/server/auth/src/main/webapp/index.html | 57 +++-- .../conf/moa-id/SampleMOAIDConfiguration.xml | 88 +++---- .../conf/moa-id/SampleMOAIDConfigurationProxy.xml | 86 +++---- .../SampleMOAIDConfiguration_withTestBKs.xml | 82 ++---- .../SampleMOAIDConfiguration_withTestBKsProxy.xml | 90 +++---- .../conf/moa-id/SampleMOAWIDConfiguration.xml | 63 +---- .../conf/moa-id/SampleMOAWIDConfigurationProxy.xml | 53 +--- .../SampleMOAWIDConfiguration_withTestBKs.xml | 53 +--- .../SampleMOAWIDConfiguration_withTestBKsProxy.xml | 58 +---- .../transforms/TransformsInfoAuthBlockTable_DE.xml | 272 ++++++++++---------- .../transforms/TransformsInfoAuthBlockTable_EN.xml | 270 ++++++++++---------- .../profiles/MOAIDTransformAuthBlockTable_DE.xml | 274 +++++++++++---------- .../profiles/MOAIDTransformAuthBlockTable_EN.xml | 272 ++++++++++---------- id/server/doc/MOA-ID-Configuration-1.5.0.xsd | 15 +- id/server/doc/moa_id/id-admin.htm | 7 +- id/server/doc/moa_id/id-admin_1.htm | 5 +- id/server/doc/moa_id/id-admin_2.htm | 29 ++- id/server/doc/moa_id/id-anwendung_1.htm | 12 +- id/server/doc/moa_id/moa.htm | 8 +- id/server/idserverlib/pom.xml | 7 +- .../moa/id/auth/AuthenticationServer.java | 240 +++++++++++++++++- .../moa/id/auth/MOAIDAuthConstants.java | 2 + .../auth/builder/GetIdentityLinkFormBuilder.java | 67 +++++ .../builder/VerifyXMLSignatureRequestBuilder.java | 79 ++++++ .../moa/id/auth/data/AuthenticationSession.java | 45 ++++ .../moa/id/auth/servlet/GetForeignIDServlet.java | 9 +- .../id/auth/servlet/GetMISSessionIDServlet.java | 174 +++++++++++++ .../auth/servlet/ProcessValidatorInputServlet.java | 4 +- .../auth/servlet/StartAuthenticationServlet.java | 18 +- .../servlet/VerifyAuthenticationBlockServlet.java | 2 + .../id/auth/servlet/VerifyCertificateServlet.java | 214 ++++++++++------ .../id/auth/servlet/VerifyIdentityLinkServlet.java | 37 ++- .../moa/id/auth/validator/parep/ParepUtils.java | 9 +- .../id/auth/validator/parep/ParepValidator.java | 6 +- .../moa/id/config/ConfigurationBuilder.java | 32 ++- .../id/config/auth/AuthConfigurationProvider.java | 15 ++ .../moa/id/config/auth/OAAuthParameter.java | 21 ++ .../moa/id/proxy/servlet/ProxyServlet.java | 12 +- .../moa/id/util/ParamValidatorUtils.java | 3 + .../gv/egovernment/moa/id/util/ServletUtils.java | 3 +- .../moa/id/util/client/mis/simple/MISMandate.java | 48 ++++ .../id/util/client/mis/simple/MISSessionId.java | 22 ++ .../id/util/client/mis/simple/MISSimpleClient.java | 261 ++++++++++++++++++++ .../mis/simple/MISSimpleClientException.java | 22 ++ .../resources/properties/id_messages_de.properties | 4 + .../test/abnahme/A/Test100StartAuthentication.java | 16 +- .../test/java/test/abnahme/AbnahmeTestCase.java | 1 + .../abnahme/P/Test100LoginParameterResolver.java | 251 +++++++++---------- .../moa/id/auth/AuthenticationServerTest.java | 2 +- pom.xml | 6 +- .../prod/iaik_cms/4.1_MOA/iaik_cms-4.1_MOA.jar | Bin 0 -> 364606 bytes .../prod/iaik_cms/4.1_MOA/iaik_cms-4.1_MOA.pom | 6 + repository/iaik/prod/iaik_cms/maven-metadata.xml | 7 +- .../4.0_MOA/iaik_jce_full-4.0_MOA.jar | Bin 0 -> 999669 bytes .../4.0_MOA/iaik_jce_full-4.0_MOA.pom | 6 + .../prod/iaik_jce_full/maven-metadata-central.xml | 5 +- .../iaik/prod/iaik_jce_full/maven-metadata.xml | 7 +- .../iaik/prod/iaik_moa/1.29/iaik_moa-1.29.jar | Bin 0 -> 711857 bytes .../iaik/prod/iaik_moa/1.29/iaik_moa-1.29.pom | 6 + .../iaik/prod/iaik_moa/maven-metadata-MOA.xml | 1 + .../iaik/prod/iaik_moa/maven-metadata-local.xml | 4 +- spss/pom.xml | 2 +- spss/server/history.txt | 4 +- spss/server/readme.update.txt | 8 +- .../moa/spss/server/invoke/DataObjectFactory.java | 166 ++++++++----- 73 files changed, 2518 insertions(+), 1370 deletions(-) create mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GetMISSessionIDServlet.java create mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISMandate.java create mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSessionId.java create mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSimpleClient.java create mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSimpleClientException.java create mode 100644 repository/iaik/prod/iaik_cms/4.1_MOA/iaik_cms-4.1_MOA.jar create mode 100644 repository/iaik/prod/iaik_cms/4.1_MOA/iaik_cms-4.1_MOA.pom create mode 100644 repository/iaik/prod/iaik_jce_full/4.0_MOA/iaik_jce_full-4.0_MOA.jar create mode 100644 repository/iaik/prod/iaik_jce_full/4.0_MOA/iaik_jce_full-4.0_MOA.pom create mode 100644 repository/iaik/prod/iaik_moa/1.29/iaik_moa-1.29.jar create mode 100644 repository/iaik/prod/iaik_moa/1.29/iaik_moa-1.29.pom (limited to 'id/server/doc/moa_id/moa.htm') diff --git a/common/src/main/java/at/gv/egovernment/moa/util/DOMUtils.java b/common/src/main/java/at/gv/egovernment/moa/util/DOMUtils.java index 39cdf4e87..c5daacdc3 100644 --- a/common/src/main/java/at/gv/egovernment/moa/util/DOMUtils.java +++ b/common/src/main/java/at/gv/egovernment/moa/util/DOMUtils.java @@ -19,6 +19,7 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; +import java.io.StringWriter; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -31,20 +32,15 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; +import javax.xml.transform.Result; +import javax.xml.transform.Source; import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.DocumentFragment; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - import org.apache.xerces.parsers.DOMParser; import org.apache.xerces.parsers.SAXParser; import org.apache.xerces.parsers.XMLGrammarPreparser; @@ -53,12 +49,18 @@ import org.apache.xerces.util.XMLGrammarPoolImpl; import org.apache.xerces.xni.grammars.XMLGrammarDescription; import org.apache.xerces.xni.grammars.XMLGrammarPool; import org.apache.xerces.xni.parser.XMLInputSource; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.DocumentFragment; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; import org.xml.sax.EntityResolver; import org.xml.sax.ErrorHandler; import org.xml.sax.InputSource; import org.xml.sax.SAXException; - import at.gv.egovernment.moa.logging.Logger; /** @@ -255,6 +257,48 @@ public class DOMUtils { return parser.getDocument(); } + /** + * Parse an XML document from an InputStream. + * + * @param inputStream The InputStream containing the XML + * document. + * @param validating If true, parse validating. + * @param externalSchemaLocations A String containing namespace + * URI to schema location pairs, the same way it is accepted by the xsi: + * schemaLocation attribute. + * @param externalNoNamespaceSchemaLocation The schema location of the + * schema for elements without a namespace, the same way it is accepted by the + * xsi:noNamespaceSchemaLocation attribute. + * @param entityResolver An EntityResolver to resolve external + * entities (schemas and DTDs). If null, it will not be set. + * @param errorHandler An ErrorHandler to decide what to do + * with parsing errors. If null, it will not be set. + * @return The parsed XML document as a DOM tree. + * @throws SAXException An error occurred parsing the document. + * @throws IOException An error occurred reading the document. + * @throws ParserConfigurationException An error occurred configuring the XML + * parser. + */ + public static Document parseDocumentSimple(InputStream inputStream) + throws SAXException, IOException, ParserConfigurationException { + + DOMParser parser; + + parser = new DOMParser(); + // set parser features and properties + parser.setFeature(NAMESPACES_FEATURE, true); + parser.setFeature(VALIDATION_FEATURE, false); + parser.setFeature(SCHEMA_VALIDATION_FEATURE, false); + parser.setFeature(NORMALIZED_VALUE_FEATURE, false); + parser.setFeature(INCLUDE_IGNORABLE_WHITESPACE_FEATURE, true); + parser.setFeature(CREATE_ENTITY_REF_NODES_FEATURE, false); + + parser.parse(new InputSource(inputStream)); + + return parser.getDocument(); + } + + /** * Parse an XML document from an InputStream. * @@ -1000,5 +1044,23 @@ public class DOMUtils { } return v; } + + /** + * Returns a byte array from given node. + * @param node + * @return + * @throws TransformerException + */ + public static byte[] nodeToByteArray(Node node) throws TransformerException { + Source source = new DOMSource(node); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + //StringWriter stringWriter = new StringWriter(); + Result result = new StreamResult(out); + TransformerFactory factory = TransformerFactory.newInstance(); + Transformer transformer = factory.newTransformer(); + transformer.transform(source, result); + return out.toByteArray(); + } + } diff --git a/common/src/main/resources/resources/schemas/MOA-ID-Configuration-1.5.0.xsd b/common/src/main/resources/resources/schemas/MOA-ID-Configuration-1.5.0.xsd index 9078bab98..2e4c33c03 100644 --- a/common/src/main/resources/resources/schemas/MOA-ID-Configuration-1.5.0.xsd +++ b/common/src/main/resources/resources/schemas/MOA-ID-Configuration-1.5.0.xsd @@ -1,4 +1,5 @@ + @@ -190,7 +191,7 @@ - + @@ -277,7 +278,18 @@ - Default Verbindungsparameter zum SZR-Gateway (GetIdentityLink) + Verbindungsparameter zum SZR-Gateway (GetIdentityLink) + + + + + + + + + + + Verbindungsparameter zum Online-Vollmachten-Service @@ -433,6 +445,13 @@ + + + + + + + diff --git a/id/history.txt b/id/history.txt index e7ccdc38f..4aa774480 100644 --- a/id/history.txt +++ b/id/history.txt @@ -11,10 +11,13 @@ Version MOA-ID 1.5.0: - Fixed Bug #551 (http://egovlabs.gv.at/tracker/index.php?func=detail&aid=551&group_id=6&atid=105) - Fixed Bug #550 (http://egovlabs.gv.at/tracker/index.php?func=detail&aid=550&group_id=6&atid=105) - IAIK Libraries aktualisiert: - iaik-moa: TODO + iaik-moa: Version 1.29 + iaik_jce_full: Version 4.0_MOA + iaik_cms: Version 4.1_MOA - Update Parameterüberprüfung - Einbindung von Online-Vollmachten - Update MOA-Template zur Bürgerkartenauswahl +- Update Transformationen (für Online-Vollmachten) - Änderung der Konfiguration für: - Angabe einer Liste von vertrauenswürdigen BKUs (aufgrund Parameterprüfung) - Online-Vollmachten diff --git a/id/readme_1.5.0.txt b/id/readme_1.5.0.txt index 4815e86e1..56a08cc0c 100644 --- a/id/readme_1.5.0.txt +++ b/id/readme_1.5.0.txt @@ -10,26 +10,39 @@ Mit MOA ID Version 1.5.0 wurden folgende Neuerungen eingef erstmals in der Veröffentlichung enthalten sind (siehe auch history.txt im gleichen Verzeichnis): -TODO +- Fixed Bug #552 (http://egovlabs.gv.at/tracker/index.php?func=detail&aid=552&group_id=6&atid=105) +- Fixed Bug #551 (http://egovlabs.gv.at/tracker/index.php?func=detail&aid=551&group_id=6&atid=105) +- Fixed Bug #550 (http://egovlabs.gv.at/tracker/index.php?func=detail&aid=550&group_id=6&atid=105) +- IAIK Libraries aktualisiert: + iaik-moa: Version 1.29 + iaik_jce_full: Version 4.0_MOA + iaik_cms: Version 4.1_MOA +- Update Parameterüberprüfung +- Einbindung von Online-Vollmachten +- Update MOA-Template zur Bürgerkartenauswahl +- Update Transformationen (für Online-Vollmachten) +- Änderung der Konfiguration für: + - Angabe einer Liste von vertrauenswürdigen BKUs (aufgrund Parameterprüfung) + - Online-Vollmachten ------------------------------------------------------------------------------- B. Durchführung eines Updates ------------------------------------------------------------------------------- -TODO + Es wird generell eine Neuinstallation lt. Handbuch empfohlen! Dennoch ist auch eine Aktualisierung bestehender Installationen möglich. ............................................................................... -B.1 Durchführung eines Updates von Version 1.4.7 +B.1 Durchführung eines Updates von Version 1.4.8 ............................................................................... 1. Stoppen Sie den Tomcat, in dem Ihre bisherige Installation betrieben wird. Fertigen Sie eine Sicherungskopie Ihrer kompletten Tomcat-Installation an. -2. Entpacken Sie die Distribution von MOA ID Auth (moa-id-auth-1.4.8.zip) in +2. Entpacken Sie die Distribution von MOA ID Auth (moa-id-auth-1.5.0.zip) in ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_AUTH_INST bezeichnet. Für MOA ID Proxy: - Entpacken Sie die Distribution von MOA ID Proxy (moa-id-proxy-1.4.8.zip) in + Entpacken Sie die Distribution von MOA ID Proxy (moa-id-proxy-1.5.0.zip) in ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_PROXY_INST bezeichnet. @@ -50,8 +63,42 @@ B.1 Durchf Für MOA ID Proxy: Kopieren Sie die Datei MOA_ID_PROXY_INST/moa-id-proxy.war nach CATALINA_HOME_ID/webappsProxy. + +5. Erstellen Sie eine Sicherungskopie aller "iaik*.jar"-Dateien im Verzeichnis + JAVA_HOME\jre\lib\ext und löschen Sie diese Dateien danach. -5. Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im +6. Kopieren Sie alle Dateien aus dem Verzeichnis MOA_ID_INST_AUTH\ext in das + Verzeichnis JAVA_HOME\jre\lib\ext. + +7. Kopieren Sie die zwei Dateien aus dem Verzeichnis + MOA_ID_AUTH_INST/conf/moa-id/transforms in das Verzeichnis transforms Ihres + Stammverzeichnisses für die MOA ID Konfiguration (für gewöhnlich lautet + dieses Stammverzeichnis CATALINA_HOME_ID/conf/moa-id; in weiterer Folge + wird davon ausgegangen). + +8. Kopieren Sie die zwei Dateien aus dem Verzeichnis + MOA_ID_AUTH_INST/conf/moa-spss/profiles in das Verzeichnis profiles Ihres + Stammverzeichnisses für die MOA SPSS Konfiguration (für gewöhnlich lautet + dieses Stammverzeichnis CATALINA_HOME_SPSS/conf/moa-spss, wobei + CATALINA_HOME_SPSS für das Basisverzeichnis der Tomcat-Installation + für MOA SPSS steht; wenn Sie MOA SPSS nicht als eigenes Webservice + betreiben, sondern es von MOA ID über die API-Schnittstelle angesprochen + wird, lautet dieses Stammverzeichnis für gewöhnlich + CATALINA_HOME_ID/conf/moa-spss. + +9. Update der MOA-ID Konfiguration: Fügen sie als letztes Kindelement von + MOA-IDConfiguration folgendes ein: + + https://www.handy-signatur.at/mobile/https-security-layer-request/default.aspx + https://www.a-trust.at/mobile/https-security-layer-request/default.aspx + + Fügen Sie allfällige weitere URLs zu verwendeten BKUs hinzu (bspw. eine + Online-BKU) + Ab Version 1.5.0 überprüft MOA-ID den Parameter bkuURI ob diese URI in der + Konfiguration vorhanden ist. URIs für lokale BKUs müssen nicht + angegeben werden. + +10. Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im Logging von MOA ID beim Einlesen der Konfiguration. @@ -200,8 +247,19 @@ B.2 Durchf CATALINA_HOME\conf\moa-spss\trustProfiles\ MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten usw. - -12. Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im +12. Update der MOA-ID Konfiguration: Fügen sie als letztes Kindelement von + MOA-IDConfiguration folgendes ein: + + https://www.handy-signatur.at/mobile/https-security-layer-request/default.aspx + https://www.a-trust.at/mobile/https-security-layer-request/default.aspx + + Fügen Sie allfällige weitere URLs zu verwendeten BKUs hinzu (bspw. eine + Online-BKU) + Ab Version 1.5.0 überprüft MOA-ID den Parameter bkuURI ob diese URI in der + Konfiguration vorhanden ist. URIs für lokale BKUs müssen nicht + angegeben werden. + +13. Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im Logging von MOA ID beim Einlesen der erneuerten Konfiguration. ............................................................................... @@ -348,18 +406,19 @@ B.3 Durchf CATALINA_HOME\conf\moa-spss\trustProfiles\ MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten usw. -13. Sichern Sie ihre MOA-ID Konfigurationsdatei. Kopieren Sie die - Beispielkonfigurationsdateien aus dem Verzeichnis - MOA_ID_AUTH_INST/conf/moa-id/SampleMOA*.xml nach - CATALINA_HOME_ID/conf/moa-id. - Verwenden Sie in Ihrer Installation bereits die Vollmachtenprüfung, so - verschieben Sie bitte in der MOA-ID Installationsdatei das Element - innerhalb des Konfigurationsteiles für die berufliche - Parteienvertreung (ParepSpecificParameters) unter das Element - ApplicationSpecificParameters. - - -14. Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im +12. Update der MOA-ID Konfiguration: Fügen sie als letztes Kindelement von + MOA-IDConfiguration folgendes ein: + + https://www.handy-signatur.at/mobile/https-security-layer-request/default.aspx + https://www.a-trust.at/mobile/https-security-layer-request/default.aspx + + Fügen Sie allfällige weitere URLs zu verwendeten BKUs hinzu (bspw. eine + Online-BKU) + Ab Version 1.5.0 überprüft MOA-ID den Parameter bkuURI ob diese URI in der + Konfiguration vorhanden ist. URIs für lokale BKUs müssen nicht + angegeben werden. + +13. Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im Logging von MOA ID beim Einlesen der erneuerten Konfiguration. ............................................................................... diff --git a/id/server/auth/src/main/webapp/BKAuswahl-MOA-Template-Howto.pdf b/id/server/auth/src/main/webapp/BKAuswahl-MOA-Template-Howto.pdf index b68d247cb..bb0e11a80 100644 Binary files a/id/server/auth/src/main/webapp/BKAuswahl-MOA-Template-Howto.pdf and b/id/server/auth/src/main/webapp/BKAuswahl-MOA-Template-Howto.pdf differ diff --git a/id/server/auth/src/main/webapp/WEB-INF/web.xml b/id/server/auth/src/main/webapp/WEB-INF/web.xml index e1261b819..ef75dff24 100644 --- a/id/server/auth/src/main/webapp/WEB-INF/web.xml +++ b/id/server/auth/src/main/webapp/WEB-INF/web.xml @@ -28,6 +28,13 @@ Verify the certificate coming from security layer at.gv.egovernment.moa.id.auth.servlet.VerifyCertificateServlet + + GetMISSessionID + GetMISSessionID + Get the MIS session ID coming from security layer + at.gv.egovernment.moa.id.auth.servlet.GetMISSessionIDServlet + + GetForeignID GetForeignID @@ -88,11 +95,14 @@ VerifyIdentityLink /VerifyIdentityLink - + VerifyCertificate /VerifyCertificate - + + GetMISSessionID + /GetMISSessionID + GetForeignID /GetForeignID diff --git a/id/server/auth/src/main/webapp/css/index.css b/id/server/auth/src/main/webapp/css/index.css index 39b715a6e..28fea78e3 100644 --- a/id/server/auth/src/main/webapp/css/index.css +++ b/id/server/auth/src/main/webapp/css/index.css @@ -94,7 +94,7 @@ h2#tabheader, h2#contentheader { #bkulogin { overflow:hidden; - width:220px; + width:220px; } #bkukarte { @@ -212,18 +212,6 @@ p { vertical-align: middle; } -.infobutton { - background-color: #005a00; - color: white; - font-family: serif; - text-decoration: none; - padding-top: 2px; - padding-right: 4px; - padding-bottom: 2px; - padding-left: 4px; - font-weight: bold; -} - /* [OPTIONAL] Geben Sie hier die Farbe fuer den hellen Hintergrund an */ .hell { background-color : #DDDDDD; diff --git a/id/server/auth/src/main/webapp/iframeHandyBKU.html b/id/server/auth/src/main/webapp/iframeHandyBKU.html index 06639c7e5..4661eea70 100644 --- a/id/server/auth/src/main/webapp/iframeHandyBKU.html +++ b/id/server/auth/src/main/webapp/iframeHandyBKU.html @@ -28,9 +28,6 @@ i = url.indexOf(follower); url = url.substring(0, i-1); } - - - // alert (name + ": " + url); return url; @@ -42,7 +39,7 @@
      - +
      diff --git a/id/server/auth/src/main/webapp/index.html b/id/server/auth/src/main/webapp/index.html index 0e12035e9..51bcc7156 100644 --- a/id/server/auth/src/main/webapp/index.html +++ b/id/server/auth/src/main/webapp/index.html @@ -12,25 +12,30 @@ // [MUSS] Geben Sie hier die URL zum Aufruf von MOA-ID an // z.B.: https://yoururl.at/moa-id-auth/StartAuthentication?Target=IT&OA=https://youronlineapplication.at - var MOA_ID_STARTAUTHENTICATION = "[MOA_ID_STARTAUTHENTICATION]"; + // var MOA_ID_STARTAUTHENTICATION = "[MOA_ID_STARTAUTHENTICATION]"; + var MOA_ID_STARTAUTHENTICATION = "https://localhost:8443/moa-id-auth/StartAuthentication?Target=sss&OA=https://localhost:8443/TestMOAID_OA/LoginServletExample"; // [MUSS] Geben Sie hier die URL zum MOA-ID Template fuer die lokale BKU an // z.B.: https://yoururl.at/moa-id-auth/template_localBKU.html - var URL_TO_LOKALBKU_TEMPLATE = "[URL_TO_LOKALBKU_TEMPLATE]"; + //var URL_TO_LOKALBKU_TEMPLATE = "[URL_TO_LOKALBKU_TEMPLATE]"; + var URL_TO_LOKALBKU_TEMPLATE = "https://localhost:8443/moa-id-auth/template_localBKU.html"; // [MUSS] Geben Sie hier die URL zum MOA-ID Template fuer die Online BKU an // z.B.: "https://yoururl.at/moa-id-auth/template_onlineBKU.html" - var URL_TO_ONLINEBKU_TEMPLATE = "[URL_TO_ONLINEBKU_TEMPLATE]"; + //var URL_TO_ONLINEBKU_TEMPLATE = "[URL_TO_ONLINEBKU_TEMPLATE]"; + var URL_TO_ONLINEBKU_TEMPLATE = "https://localhost:8443/moa-id-auth/template_onlineBKU.html"; // [MUSS] Geben Sie hier die URL zur Online BKU an // z.B.: value="https://yoururl.at/bkuonline/https-security-layer-request" - var URL_TO_ONLINEBKU = "[URL_TO_ONLINEBKU]"; - + //var URL_TO_ONLINEBKU = "[URL_TO_ONLINEBKU]"; + //var URL_TO_ONLINEBKU = "http://localhost:8082/bkuonline/http-security-layer-request"; + var URL_TO_ONLINEBKU = "https://localhost:8444/bkuonline/https-security-layer-request"; + // [MUSS] Geben Sie hier die URL zum MOA-ID Template fuer die Handy Signatur an --> - var URL_TO_HANDYSIGNATUR_TEMPLATE = "[URL_TO_HANDYSIGNATUR_TEMPLATE]"; - - + //var URL_TO_HANDYSIGNATUR_TEMPLATE = "[URL_TO_HANDYSIGNATUR_TEMPLATE]"; + var URL_TO_HANDYSIGNATUR_TEMPLATE = "https://localhost:8443/moa-id-auth/template_handyBKU.html"; + window.onload=function() { document.getElementById("localBKU").style.display="none"; @@ -45,23 +50,23 @@ // set values for local BKU document.getElementById("form_local_bku").action = MOA_ID_STARTAUTHENTICATION; document.getElementById("input_localBKU_template").value = URL_TO_LOKALBKU_TEMPLATE; - if (document.getElementById("mandateCheckBox").checked) { - document.getElementById("useMandate").value = "true"; - } - else { - document.getElementById("useMandate").value = "false"; + document.getElementById("useMandate").value = "false"; + var checkbox = document.getElementById("mandateCheckBox") + if (checkbox != null) { + if (document.getElementById("mandateCheckBox").checked) { + document.getElementById("useMandate").value = "true"; + } } - + // set values for online BKU var el = document.getElementById("bkulogin"); var parent = el.parentNode; - var checkBox = document.getElementById("mandateCheckBox"); var iFrameURL = "iframeOnlineBKU.html" + "?"; iFrameURL += "bkuURI=" + URL_TO_ONLINEBKU + "&"; iFrameURL += "Template=" + URL_TO_ONLINEBKU_TEMPLATE + "&"; iFrameURL += "startAuth=" + MOA_ID_STARTAUTHENTICATION + "&"; - iFrameURL += "useMandate=" + checkBox.checked ; + iFrameURL += "useMandate=" + document.getElementById("useMandate").value; var iframe = document.createElement("iframe"); iframe.setAttribute("src", iFrameURL); @@ -78,17 +83,24 @@ function bkuHandyClicked() { document.getElementById("localBKU").style.display="none"; + document.getElementById("useMandate").value = "false"; + var checkbox = document.getElementById("mandateCheckBox") + if (checkbox != null) { + if (document.getElementById("mandateCheckBox").checked) { + document.getElementById("useMandate").value = "true"; + } + } + // set values for Handy Signatur var el = document.getElementById("bkulogin"); var parent = el.parentNode; - var checkBox = document.getElementById("mandateCheckBox"); + var iFrameURL = "iframeHandyBKU.html" + "?"; iFrameURL += "Template=" + URL_TO_HANDYSIGNATUR_TEMPLATE + "&"; iFrameURL += "startAuth=" + MOA_ID_STARTAUTHENTICATION + "&"; - iFrameURL += "useMandate=" + checkBox.checked ; + iFrameURL += "useMandate=" + document.getElementById("useMandate").value; - var iframe = document.createElement("iframe"); iframe.setAttribute("src", iFrameURL); iframe.setAttribute("width", "220"); @@ -136,9 +148,12 @@
      -
      - + + +
      +
      +
      diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration.xml b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration.xml index b1418fb0b..8dd49e2d7 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration.xml @@ -39,63 +39,10 @@ MOAIDBuergerkarteAuthentisierungsDaten - MOAIDTransformAuthBlockTable_DE - + + MOAIDTransformAuthBlockTable_EN - - - - Vollmachten - - false - - --> - - - - false - - - - - - - - - file_to_clientkeystore - - - - - - - - - - - - - @@ -104,11 +51,28 @@ - - + + cert/clientcert.p12 + + + + + + + + + + + + + + + + + @@ -132,6 +96,14 @@ + + + + + + + + @@ -151,7 +123,9 @@ + + https://www.handy-signatur.at/mobile/https-security-layer-request/default.aspx https://www.a-trust.at/mobile/https-security-layer-request/default.aspx diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfigurationProxy.xml b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfigurationProxy.xml index 0f09ff7d5..11b794888 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfigurationProxy.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfigurationProxy.xml @@ -43,60 +43,8 @@ - - - - Vollmachten - - false - - --> - - - - false - - - - - - - - - file_to_clientkeystore - - - - - - - - - - - - - - + + @@ -104,11 +52,27 @@ - - + + cert/clientcert.p12 + + + + + + + + + + + + + + + + @@ -142,6 +106,13 @@ + + + + + + + @@ -171,7 +142,10 @@ + + https://www.handy-signatur.at/mobile/https-security-layer-request/default.aspx https://www.a-trust.at/mobile/https-security-layer-request/default.aspx + diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKs.xml b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKs.xml index fd565b538..80c7a8dfd 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKs.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKs.xml @@ -44,64 +44,6 @@ - - - - - - - - - Vollmachten - - false - - --> - - - - false - - - - - - - - - file_to_clientkeystore - - - - - - - - - - - - - @@ -115,6 +57,22 @@ cert/clientcert.p12 + + + + + + + + + + + + + + + + @@ -138,6 +96,13 @@ + + + + + + + @@ -159,6 +124,7 @@ + https://www.handy-signatur.at/mobile/https-security-layer-request/default.aspx https://www.a-trust.at/mobile/https-security-layer-request/default.aspx diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKsProxy.xml b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKsProxy.xml index b3c655155..dd207f76d 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKsProxy.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKsProxy.xml @@ -44,77 +44,36 @@ - - - - - - - - - Vollmachten - - false - - --> - - - - false - - - - - - - - - file_to_clientkeystore - - - - - - - - - - - - - - + - - + + cert/clientcert.p12 + + + + + + + + + + + + + + + + + @@ -148,6 +107,13 @@ + + + + + + + @@ -177,7 +143,9 @@ + + https://www.handy-signatur.at/mobile/https-security-layer-request/default.aspx https://www.a-trust.at/mobile/https-security-layer-request/default.aspx diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration.xml b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration.xml index 3f1d95562..3d062900d 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration.xml @@ -43,70 +43,20 @@ - - - - Vollmachten - - false - - --> - - - - false - - - - - - - - - file_to_clientkeystore - - - - - - - - - - - - + - + - - + + cert/clientcert.p12 + @@ -154,7 +104,10 @@ + + https://www.handy-signatur.at/mobile/https-security-layer-request/default.aspx https://www.a-trust.at/mobile/https-security-layer-request/default.aspx + diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfigurationProxy.xml b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfigurationProxy.xml index e381d9bda..c8c88c22d 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfigurationProxy.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfigurationProxy.xml @@ -43,57 +43,6 @@ - - - - Vollmachten - - false - - --> - - - - false - - - - - - - - - file_to_clientkeystore - - - - - - - - - - - @@ -174,7 +123,9 @@ + + https://www.handy-signatur.at/mobile/https-security-layer-request/default.aspx https://www.a-trust.at/mobile/https-security-layer-request/default.aspx diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKs.xml b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKs.xml index f1202a542..225270f5b 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKs.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKs.xml @@ -49,57 +49,6 @@ - - - - Vollmachten - - false - - --> - - - - false - - - - - - - - - file_to_clientkeystore - - - - - - - - - - - @@ -160,7 +109,9 @@ + + https://www.handy-signatur.at/mobile/https-security-layer-request/default.aspx https://www.a-trust.at/mobile/https-security-layer-request/default.aspx diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKsProxy.xml b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKsProxy.xml index 068ab90b1..4f2a5977c 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKsProxy.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKsProxy.xml @@ -44,62 +44,6 @@ - - - - - - - - - Vollmachten - - false - - --> - - - - false - - - - - - - - - file_to_clientkeystore - - - - - - - - - - - @@ -180,7 +124,9 @@ + + https://www.handy-signatur.at/mobile/https-security-layer-request/default.aspx https://www.a-trust.at/mobile/https-security-layer-request/default.aspx diff --git a/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_DE.xml b/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_DE.xml index fd6004811..7fae15b7c 100644 --- a/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_DE.xml +++ b/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_DE.xml @@ -1,6 +1,7 @@ - + + @@ -12,139 +13,156 @@ .titlestyle{ text-decoration:underline; font-weight:bold; font-family: Verdana; font-size: medium; } .h4style{ font-size: large; font-family: Verdana; } - - -

      Anmeldedaten:

      - -

      Daten zur Person

      - + + +

      Anmeldedaten:

      +

      Daten zur Person

      +
      - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + +
      Name: - -
      Geburtsdatum: - - . - - . - -
      Rolle:
      Name: + +
      Geburtsdatum: + + . + + . + +
      Rolle: + +
      Vollmacht: + Ich bin weiters ermächtigt als + + von + + + , geboren am + + . + + . + + + + , + + + , in deren Auftrag zu handeln. +
      - - -
      - Ich bin weiters ermächtigt als - - von - - - , geboren am - - . - - . - - - - , - - - , in deren Auftrag zu handeln. -

      - - -

      Daten zur Anwendung

      - - - - - - - - - -
      Name:
      Staat:Österreich
      - -

      Technische Parameter

      - +

      Daten zur Anwendung

      +
      + + + + + + + + +
      Name: + +
      Staat:Österreich
      +

      Technische Parameter

      + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - -
      URL:URL: + +
      Bereich:
      :
      Identifikator: - -
      Identifikator des Vollmachtgebers:
      OID:
      Bereich: + +
      + : + +
      Identifikator: + + +
      Identifikator des Vollmachtgebers: + +
      OID: + +
      HPI:
      HPI: + +
      Datum: - - . - - . - -
      Uhrzeit: - - : - - : - -
      + Datum: + + + . + + . + + + + + Uhrzeit: + + + : + + : + + + +
      diff --git a/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_EN.xml b/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_EN.xml index 4e2b9444c..17691ca8d 100644 --- a/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_EN.xml +++ b/id/server/data/deploy/conf/moa-id/transforms/TransformsInfoAuthBlockTable_EN.xml @@ -1,6 +1,7 @@ - + + @@ -13,138 +14,155 @@ .h4style{ font-size: large; font-family: Verdana; } - -

      Authentication Data:

      - -

      Personal Data

      - + +

      Authentication Data:

      +

      Personal Data

      +
      - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + +
      Name: - -
      Date of Birth: - - . - - . - -
      Role:
      Name: + +
      Date of Birth: + + . + + . + +
      Role: + +
      Mandate: + I am also authorized as + + of + + + , born on + + . + + . + + + + , + + + , to act on their behalf. +
      - - -
      - I am also authorized as - - of - - - , born on - - . - - . - - - - , - - - , to act on their behalf. -

      - - -

      Application Data

      - - - - - - - - - -
      Name:
      Country:Austria
      - -

      Technical Parameters

      - +

      Application Data

      +
      + + + + + + + + +
      Name: + +
      Country:Austria
      +

      Technical Parameters

      + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - -
      URL:URL: + +
      Sector:
      :
      Identifier: - -
      Identifier of the principal:
      OID:
      Sector: + +
      + : + +
      Identifier: + + +
      Identifier of the principal: + +
      OID: + +
      HPI:
      HPI: + +
      Date: - - . - - . - -
      Time: - - : - - : - -
      + Date: + + + . + + . + + + + + Time: + + + : + + : + + + +
      diff --git a/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_DE.xml b/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_DE.xml index db638d545..24b0bfc38 100644 --- a/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_DE.xml +++ b/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_DE.xml @@ -1,7 +1,8 @@ - + + @@ -13,139 +14,156 @@ .titlestyle{ text-decoration:underline; font-weight:bold; font-family: Verdana; font-size: medium; } .h4style{ font-size: large; font-family: Verdana; } - - -

      Anmeldedaten:

      - -

      Daten zur Person

      - + + +

      Anmeldedaten:

      +

      Daten zur Person

      +
      - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + +
      Name: - -
      Geburtsdatum: - - . - - . - -
      Rolle:
      Name: + +
      Geburtsdatum: + + . + + . + +
      Rolle: + +
      Vollmacht: + Ich bin weiters ermächtigt als + + von + + + , geboren am + + . + + . + + + + , + + + , in deren Auftrag zu handeln. +
      - - -
      - Ich bin weiters ermächtigt als - - von - - - , geboren am - - . - - . - - - - , - - - , in deren Auftrag zu handeln. -

      - - -

      Daten zur Anwendung

      - - - - - - - - - -
      Name:
      Staat:Österreich
      - -

      Technische Parameter

      - +

      Daten zur Anwendung

      +
      + + + + + + + + +
      Name: + +
      Staat:Österreich
      +

      Technische Parameter

      + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - -
      URL:URL: + +
      Bereich:
      :
      Identifikator: - -
      Identifikator des Vollmachtgebers:
      OID:
      Bereich: + +
      + : + +
      Identifikator: + + +
      Identifikator des Vollmachtgebers: + +
      OID: + +
      HPI:
      HPI: + +
      Datum: - - . - - . - -
      Uhrzeit: - - : - - : - -
      + Datum: + + + . + + . + + + + + Uhrzeit: + + + : + + : + + + +
      @@ -153,4 +171,4 @@
      -
      + diff --git a/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_EN.xml b/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_EN.xml index 6db367871..207296d52 100644 --- a/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_EN.xml +++ b/id/server/data/deploy/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_EN.xml @@ -1,7 +1,8 @@ - + + @@ -14,138 +15,155 @@ .h4style{ font-size: large; font-family: Verdana; } - -

      Authentication Data:

      - -

      Personal Data

      - + +

      Authentication Data:

      +

      Personal Data

      +
      - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + +
      Name: - -
      Date of Birth: - - . - - . - -
      Role:
      Name: + +
      Date of Birth: + + . + + . + +
      Role: + +
      Mandate: + I am also authorized as + + of + + + , born on + + . + + . + + + + , + + + , to act on their behalf. +
      - - -
      - I am also authorized as - - of - - - , born on - - . - - . - - - - , - - - , to act on their behalf. -

      - - -

      Application Data

      - - - - - - - - - -
      Name:
      Country:Austria
      - -

      Technical Parameters

      - +

      Application Data

      +
      + + + + + + + + +
      Name: + +
      Country:Austria
      +

      Technical Parameters

      + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - -
      URL:URL: + +
      Sector:
      :
      Identifier: - -
      Identifier of the principal:
      OID:
      Sector: + +
      + : + +
      Identifier: + + +
      Identifier of the principal: + +
      OID: + +
      HPI:
      HPI: + +
      Date: - - . - - . - -
      Time: - - : - - : - -
      + Date: + + + . + + . + + + + + Time: + + + : + + : + + + +
      @@ -153,4 +171,4 @@
      -
      + diff --git a/id/server/doc/MOA-ID-Configuration-1.5.0.xsd b/id/server/doc/MOA-ID-Configuration-1.5.0.xsd index 9078bab98..c5d6f0b07 100644 --- a/id/server/doc/MOA-ID-Configuration-1.5.0.xsd +++ b/id/server/doc/MOA-ID-Configuration-1.5.0.xsd @@ -190,7 +190,7 @@ - + @@ -277,7 +277,18 @@ - Default Verbindungsparameter zum SZR-Gateway (GetIdentityLink) + Verbindungsparameter zum SZR-Gateway (GetIdentityLink) + + + +
      +
      + + + + + + Verbindungsparameter zum Online-Vollmachten-Service diff --git a/id/server/doc/moa_id/id-admin.htm b/id/server/doc/moa_id/id-admin.htm index 31500f6f0..7192f02e2 100644 --- a/id/server/doc/moa_id/id-admin.htm +++ b/id/server/doc/moa_id/id-admin.htm @@ -239,14 +239,17 @@ Die Versionsangaben beziehen sich auf die Versionen, mit denen die MOA ID Webapp JDK (SDK)

      min. 1.4.0 bzw.
      1.4.2

      - 1.5.0

      + 1.5.0
      + 1.6.0 +

      Tomcat

      4.1.31
      - 5.0.28

      + 5.5.x
      + 6.0.x

      diff --git a/id/server/doc/moa_id/id-admin_1.htm b/id/server/doc/moa_id/id-admin_1.htm index 12e445fe2..2b3ade1ed 100644 --- a/id/server/doc/moa_id/id-admin_1.htm +++ b/id/server/doc/moa_id/id-admin_1.htm @@ -120,8 +120,9 @@ Unterschiede sind in der Installationsanweisung angeführt. der Download-Seite des jeweiligen JDK in der Sektion "Other Downloads". D.h. JDK hier für 1.4.0, das JDK hier - für 1.4.2 bzw. das JDK hier - für 1.5.0.

      + für 1.4.2, das JDK hier + für 1.5.0 bzw. das JDK hier + für 1.6.0

    diff --git a/id/server/doc/moa_id/id-admin_2.htm b/id/server/doc/moa_id/id-admin_2.htm index 4268565c0..bc4709f02 100644 --- a/id/server/doc/moa_id/id-admin_2.htm +++ b/id/server/doc/moa_id/id-admin_2.htm @@ -80,6 +80,8 @@ Projekt moa    MOA-SP
      IdentityLinkSigners
      VerifyInfoboxes
    +  ForeignIdentities
    +  OnlineMandates
    ProxyComponent
    OnlineApplication
      AuthComponent
    @@ -125,9 +127,6 @@ Projekt moa  MOA-ID-Configuration-1.5.0.xsd entspricht, durchgeführt.

    Der Ort der Konfigurationsdatei wird im Abschnitt Deployment der Web-Applikation in Tomcat beschrieben. -

    @TODO Die folgenden Abschnitte erläutern das Format der Konfigurationsdatei. - MOA-ID-Configuration.xml - zeigt ein Beispiel für eine umfassende Konfigurationsdatei.

    Enthält die Konfigurationsdatei relative Pfadangaben, werden diese relativ zum Verzeichnis, in dem sich die MOA-ID Konfigurationsdatei befindet, interpretiert.
    @@ -187,8 +186,9 @@ Projekt moa 

  • IdentityLinkSigners
  • VerifyInfoboxes (optional ab Version 1.4)
  • ForeignIdentities
  • +
  • OnlineMandates
  • -

    +

    AuthComponent/BKUSelection
    Das optionale Element BKUSelection enthält Parameter @@ -529,9 +529,15 @@ Projekt moa  OnlineApplication/AuthComponent/VerifyInfoboxes.

    +

    AuthComponent/ForeignIdentities
    -Ab Version 1.4.7 bietet MOA-ID die Möglichkeit der Nutzung von ausländischen Karten. Hierfür ist ein Stammzahlenregister-Gateway nötig, dass einen entsprechenden Zugang zum Stammzahlenregister bereitstellt. Es ist hierzu ein ensprechenden ConnectionParameter zu definieren, der die Zugangsdaten zum Gateway bereithält (siehe ConnectionParameter). In der Default-Konfiguration ist der Zugang zum Stammzahlenregister-Gateway bereits aktiviert. Es muss nur noch das Client-Zertifikat für die SSL-Verbinung zum Gateway angegeben werden. Voraussetzung dafür ist ein Zertifikat von A-Trust bzw. A-CERT mit Verwaltungseigenschaft. Wenn ihr MOA-ID Zertifikat diese Voraussetzung erfüllt, können Sie dieses hier angeben.
    +Ab Version 1.4.7 bietet MOA-ID die Möglichkeit der Nutzung von ausländischen Karten. Hierfür ist ein Stammzahlenregister-Gateway nötig, dass einen entsprechenden Zugang zum Stammzahlenregister bereitstellt. Es ist hierzu ein ensprechender ConnectionParameter zu definieren, der die Zugangsdaten zum Gateway bereithält (siehe ConnectionParameter). In der Default-Konfiguration ist der Zugang zum Stammzahlenregister-Gateway bereits aktiviert. Es muss nur noch das Client-Zertifikat für die SSL-Verbinung zum Gateway angegeben werden. Voraussetzung dafür ist ein Zertifikat von A-Trust bzw. A-CERT mit Verwaltungseigenschaft oder Dienstleistereigenschaft. Wenn ihr MOA-ID Zertifikat diese Voraussetzung erfüllt, können Sie dieses hier angeben.

    +

    AuthComponent/OnlineMandates

    +Ab Version 1.5.0 bietet MOA-ID die Möglichkeit der Nutzung von Online-Vollmachten für Anwendungen aus dem öffentlichen Bereich. Hierfür ist ein Online-Vollmachten-Service nötig. Es ist hierzu ein ensprechender ConnectionParameter zu definieren, der die Zugangsdaten zum Online-Vollmachten-Service bereithält (siehe ConnectionParameter). In der Default-Konfiguration ist der Zugang zum Online-Vollmachten-Service bereits aktiviert. Es muss nur noch das Client-Zertifikat für die SSL-Verbinung zum Service angegeben werden. Voraussetzung dafür ist ein Zertifikat von A-Trust bzw. A-CERT mit Verwaltungseigenschaft oder Dienstleistereigenschaft. Wenn ihr MOA-ID Zertifikat diese Voraussetzung erfüllt, können Sie dieses hier angeben.
    +Hinweis: Um den Online-Vollmachten Modus für eine Online Applikation zu aktivieren, müssen Sie das Vollmachten Profil angeben - siehe hier. + +

    ProxyComponent
    ProxyComponent enthält Parameter, die nur die MOA-ID Proxykomponente betreffen. Das Element @@ -923,7 +929,16 @@ Ab Version 1.4.7 bietet MOA-ID die Möglichkeit der Nutzung von ausländ

    -

    + +
    +

    OnlineApplication/AuthComponent/Mandates +
    + Mit Hilfe diese Elements werden die Online-Vollmachten für die Online-Applikation aktiviert. + Als Kindelement muss Profiles angegeben werden. Diese Element beinhaltet eine (Komma-separierte) + Liste von Vollmachten-Identifikatoren, die festlegen mit welchen Vollmachtstyp man sich bei der Online-Applikation anmelden kann.
    + Hinweis: Hierzu muss auch die Verbindung zum Online-Vollmachten Service konfigurieren - siehe hier +

    +

    OnlineApplication/ProxyComponent @@ -1159,7 +1174,7 @@ Ab Version 1.4.7 bietet MOA-ID die Möglichkeit der Nutzung von ausländ

    TrustedBKUs
    Das Element TrustedBKUs ermöglicht das Setzen von vertrauenswürdigen Bürgerkartenumgebungen. - In den BKUURL Unterelement werden die vertrauenswürdigen URLs eingetragen. Diese Liste an URL wird mit dem Parameter bkuURI abgeglichen. Lokale Bürgerkartenumgebungn müssen nicht eingetragen werden - diesen wird automatisch vertraut. + In BKUURL Unterelementen werden die vertrauenswürdigen URLs eingetragen. Diese Liste an URL wird mit dem Parameter bkuURI abgeglichen. Lokale Bürgerkartenumgebungn müssen nicht eingetragen werden - diesen wird automatisch vertraut.

    diff --git a/id/server/doc/moa_id/id-anwendung_1.htm b/id/server/doc/moa_id/id-anwendung_1.htm index 637d28253..041cd437a 100644 --- a/id/server/doc/moa_id/id-anwendung_1.htm +++ b/id/server/doc/moa_id/id-anwendung_1.htm @@ -73,13 +73,14 @@ Projekt moa  Der Aufruf erfolgt durch einen Verweis der Form:
    <a href="https://<moa-id-server-und-pfad>/
     StartAuthentication?Target=<geschäftsbereich>
    -&OA=<oa-url>&Template=<template-url>">
    +&OA=<oa-url>&Template=<template-url>&useMandate=false"> - + + @@ -87,7 +88,12 @@ StartAuthentication?Target=<geschäftsbereich> -
    <moa-id-server-und-pfad>Server und Pfad, wo MOA-ID-AUTH installiert ist
    Target=<geschäftsbereich>Angabe, für welches Verfahren der Benutzer authentisiert werden soll (siehe TODO: Link auf Verzeichnis der Geschäftsbereich)Target=<geschäftsbereich>Angabe, für welches Verfahren der Benutzer authentisiert werden soll
    OA=<oa-url>Webseite, auf die der Browser nach erfolgter Authentisierung weitergeleitet werden soll
    Template=<template-url>optional; HTML-Vorlage für der Anmeldeseite von MOA-ID-AUTH, über die der Bürger den Authentisierungsvorgang startet. Über diesen Parameter kann das Aussehen der Anmeldeseite an das Aussehen der Online-Applikation angepasst werden.
    + + useMandate=<true/false> + optional; Gibt an ob eine Anmeldung im Online-Vollmachten-Modus durchgeführt werden soll (=true) oder nicht (=false); + + +

    diff --git a/id/server/doc/moa_id/moa.htm b/id/server/doc/moa_id/moa.htm index 3694bb0f3..e0da90e98 100644 --- a/id/server/doc/moa_id/moa.htm +++ b/id/server/doc/moa_id/moa.htm @@ -230,8 +230,14 @@ an den Benutzer weitergeleitet und die Anfragen des Benutzers an die OA weiterge
    Ergänzung für ausländische Bürger

    Ab der MOA Release 1.4.7 ist es möglich, dass sich auch ausländische Bürger mittels MOA-ID einloggen können. Hierzu wird eine Verbindung zu einem sogenannten Stammzahlenregister-Gateway aufgebaut, dass basierend auf den Zertifikatsdaten des ausländischen Bürgers eine Eintragung im Ergänzungsregister für natürliche Personen gemäß E-Government Gesetz §6(5) vornimmt. Somit ist es möglich, dass eine Personenbindung ausgestellt werden kann, die in weitere Folge an MOA-ID weitergeleitet wird.

    -

    Der Zugang zu diesem Stammzahlenregister-Gateways ist über eine Client-Server Authentifizierung abgesichert. Als Client-Zertifikate werden Zertifikate der Firmen A-Trust bzw. A-CERT, die mit der Verwaltungseigenschaft versehen sind, akzeptiert.

    +

    Der Zugang zu diesem Stammzahlenregister-Gateways ist über eine Client-Server Authentifizierung abgesichert. Als Client-Zertifikate werden Zertifikate der Firmen A-Trust bzw. A-CERT, die mit der Verwaltungs- oder Dienstleistereigenschaft versehen sind, akzeptiert.

    + +
    Online-Vollmachten
    +
    +

    Ab der MOA Release 1.5.0 werden Online-Vollmachten (für Anwendungen aus dem öffentlichen Bereich) unterstützt. Hierzu werden diese Vollmachten über eine Online-Vollmachten-Service ausgewählt. Der Zugang zu diesem Online-Vollmachten Service ist über eine Client-Server Authentifizierung abgesichert. Als Client-Zertifikate werden Zertifikate der Firmen A-Trust bzw. A-CERT, die mit der Verwaltungs- oder Dienstleistereigenschaft versehen sind, akzeptiert.

    +
    +

    diff --git a/id/server/idserverlib/pom.xml b/id/server/idserverlib/pom.xml index 6553182b4..eb21c2fd3 100644 --- a/id/server/idserverlib/pom.xml +++ b/id/server/idserverlib/pom.xml @@ -121,11 +121,11 @@ commons-httpclient commons-httpclient --> - + commons-lang commons-lang @@ -135,10 +135,11 @@ - + org.apache.maven.plugins maven-jar-plugin + true false diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java index 64eaf30cd..a772e0457 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java @@ -15,14 +15,11 @@ */ package at.gv.egovernment.moa.id.auth; -import iaik.ixsil.exceptions.UtilsException; -import iaik.ixsil.util.Utils; import iaik.pki.PKIException; import iaik.x509.X509Certificate; +import java.io.ByteArrayInputStream; import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; import java.security.GeneralSecurityException; import java.security.Principal; @@ -39,10 +36,11 @@ import java.util.Vector; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerException; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.SAXException; -import HTTPClient.Util; import at.gv.egovernment.moa.id.AuthenticationException; import at.gv.egovernment.moa.id.BuildException; import at.gv.egovernment.moa.id.ParseException; @@ -63,6 +61,7 @@ import at.gv.egovernment.moa.id.auth.builder.VerifyXMLSignatureRequestBuilder; import at.gv.egovernment.moa.id.auth.data.AuthenticationSession; import at.gv.egovernment.moa.id.auth.data.CreateXMLSignatureResponse; import at.gv.egovernment.moa.id.auth.data.ExtendedSAMLAttribute; +import at.gv.egovernment.moa.id.auth.data.ExtendedSAMLAttributeImpl; import at.gv.egovernment.moa.id.auth.data.IdentityLink; import at.gv.egovernment.moa.id.auth.data.InfoboxValidationResult; import at.gv.egovernment.moa.id.auth.data.InfoboxValidatorParams; @@ -81,6 +80,7 @@ import at.gv.egovernment.moa.id.auth.validator.ValidateException; import at.gv.egovernment.moa.id.auth.validator.VerifyXMLSignatureResponseValidator; import at.gv.egovernment.moa.id.auth.validator.parep.ParepUtils; import at.gv.egovernment.moa.id.auth.validator.parep.ParepValidator; +import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.SZRGWConstants; import at.gv.egovernment.moa.id.auth.validator.parep.config.ParepConfiguration; import at.gv.egovernment.moa.id.config.ConfigurationException; import at.gv.egovernment.moa.id.config.ConfigurationProvider; @@ -94,6 +94,7 @@ import at.gv.egovernment.moa.id.util.HTTPUtils; import at.gv.egovernment.moa.id.util.MOAIDMessageProvider; import at.gv.egovernment.moa.id.util.Random; import at.gv.egovernment.moa.id.util.SSLUtils; +import at.gv.egovernment.moa.id.util.client.mis.simple.MISMandate; import at.gv.egovernment.moa.logging.LogMsg; import at.gv.egovernment.moa.logging.Logger; import at.gv.egovernment.moa.util.Base64Utils; @@ -288,6 +289,7 @@ public class AuthenticationServer implements MOAIDAuthConstants { * @param oaURL online application URL requested * @param bkuURL URL of the "Bürgerkartenumgebung" to be used; * may be null; in this case, the default location will be used + * @param useMandate Indicates if mandate is used or not * @param templateURL URL providing an HTML template for the HTML form generated * @param scheme determines the protocol used * @return HTML form @@ -301,6 +303,7 @@ public class AuthenticationServer implements MOAIDAuthConstants { String oaURL, String templateURL, String bkuURL, + String useMandate, String sessionID, String scheme) throws WrongParametersException, AuthenticationException, ConfigurationException, BuildException { @@ -343,7 +346,7 @@ public class AuthenticationServer implements MOAIDAuthConstants { session.setPublicOAURLPrefix(oaParam.getPublicURLPrefix()); session.setAuthURL(authURL); session.setTemplateURL(templateURL); - session.setBusinessService(oaParam.getBusinessService()); + session.setBusinessService(oaParam.getBusinessService()); } // BKU URL has not been set yet, even if session already exists if (bkuURL == null) { @@ -357,8 +360,15 @@ public class AuthenticationServer implements MOAIDAuthConstants { session.setDomainIdentifier(oaParam.getIdentityLinkDomainIdentifier()); String infoboxReadRequest = new InfoboxReadRequestBuilder().build(oaParam.getSlVersion12(), - oaParam.getBusinessService(), + oaParam.getBusinessService(), oaParam.getIdentityLinkDomainIdentifier()); + + if ((useMandate != null) && (useMandate.compareTo("") != 0)) { + session.setUseMandate(useMandate); + } + else { + session.setUseMandate("false"); + } String dataURL = new DataURLBuilder().buildDataURL( session.getAuthURL(), @@ -529,6 +539,78 @@ public class AuthenticationServer implements MOAIDAuthConstants { return getCreateXMLSignatureRequestAuthBlockOrRedirect(session, authConf, oaParam); } + + /** + * Processes an Mandate sent by the + * MIS.
    + *
      + *
    • Validates given Mandate
    • + *
    • Verifies Mandate by calling the MOA SP component
    • + *
    • Creates an authentication block to be signed by the user
    • + *
    • Creates and returns a <CreateXMLSignatureRequest> + * containg the authentication block, meant to be returned to the + * security layer implementation
    • + *
    + * + * @param sessionID ID of associated authentication session data + * @param infoboxReadResponseParameters The parameters from the response returned from + * the BKU including the <InfoboxReadResponse> + * @return String representation of the <CreateXMLSignatureRequest> + */ + public String verifyMandate(String sessionID, MISMandate mandate) + throws + AuthenticationException, + BuildException, + ParseException, + ConfigurationException, + ValidateException, + ServiceException { + + if (isEmpty(sessionID)) + throw new AuthenticationException("auth.10", new Object[] { GET_MIS_SESSIONID, PARAM_SESSIONID}); + + String sMandate = new String(mandate.getMandate()); + if (sMandate == null | sMandate.compareToIgnoreCase("") == 0) { + Logger.error("Mandate is empty."); + throw new AuthenticationException("auth.16", new Object[] { GET_MIS_SESSIONID}); + } + + + AuthenticationSession session = getSession(sessionID); + AuthConfigurationProvider authConf = AuthConfigurationProvider.getInstance(); + + + OAAuthParameter oaParam = + AuthConfigurationProvider.getInstance().getOnlineApplicationParameter( + session.getPublicOAURLPrefix()); + + try { + // set extended SAML attributes + setExtendedSAMLAttributeForMandates(session, mandate, oaParam.getBusinessService()); + } catch (SAXException e) { + throw new AuthenticationException("auth.16", new Object[] { GET_MIS_SESSIONID}, e); + } catch (IOException e) { + throw new AuthenticationException("auth.16", new Object[] { GET_MIS_SESSIONID}, e); + } catch (ParserConfigurationException e) { + throw new AuthenticationException("auth.16", new Object[] { GET_MIS_SESSIONID}, e); + } catch (TransformerException e) { + throw new AuthenticationException("auth.16", new Object[] { GET_MIS_SESSIONID}, e); + } + + + return getCreateXMLSignatureRequestAuthBlockOrRedirect(session, authConf, oaParam); + } + + /** + * + * @param session + * @param authConf + * @param oaParam + * @return + * @throws ConfigurationException + * @throws BuildException + * @throws ValidateException + */ public String getCreateXMLSignatureRequestAuthBlockOrRedirect(AuthenticationSession session, AuthConfigurationProvider authConf, OAAuthParameter oaParam) throws ConfigurationException, @@ -571,6 +653,8 @@ public class AuthenticationServer implements MOAIDAuthConstants { return createXMLSignatureRequest; } + + /** * Returns an CreateXMLSignatureRequest for signing the ERnP statement.
    *
      @@ -926,6 +1010,32 @@ public class AuthenticationServer implements MOAIDAuthConstants { } } + /** + * Verifies the infoboxes (except of the identity link infobox) returned by the BKU by + * calling appropriate validator classes. + * + * @param session The actual authentication session. + * @param mandate The Mandate from the MIS + * + * @throws AuthenticationException + * @throws ConfigurationException + * @throws TransformerException + * @throws ParserConfigurationException + * @throws IOException + * @throws SAXException + */ + private void setExtendedSAMLAttributeForMandates( + AuthenticationSession session, MISMandate mandate, boolean business) + throws ValidateException, ConfigurationException, SAXException, IOException, ParserConfigurationException, TransformerException + { + + ExtendedSAMLAttribute[] extendedSamlAttributes = addExtendedSamlAttributes(mandate, business); + + + AddAdditionalSAMLAttributes(session, extendedSamlAttributes, "MISService", "MISService"); + + } + /** * Intermediate processing of the infoboxes. The first pending infobox * validator may validate the provided input @@ -985,7 +1095,9 @@ public class AuthenticationServer implements MOAIDAuthConstants { int length = extendedSAMLAttributes.length; for (int i=0; i" + nl + "" + nl + ""; + + /** default HTML template */ + private static final String DEFAULT_HTML_TEMPLATE_FOR_MANDATES = + "" + nl + + "" + nl + + "" + nl + + "Vollmachten-Anmeldung" + nl + + "" + nl + + "" + nl + + "" + nl + + "
      " + nl + + " " + nl + + " " + nl + + " " + nl + + " " + nl + + "
      " + nl + + "
      " + nl + + " " + nl + + " " + nl + +// " " + nl + + " " + nl + + "
      " + nl + + "" + nl + + ""; /** * Constructor for GetIdentityLinkFormBuilder. @@ -119,6 +163,29 @@ public class GetIdentityLinkFormBuilder extends Builder { htmlForm = replaceTag(htmlForm, CERTINFO_DATAURL_TAG, certInfoDataURL, true, ALL); return htmlForm; } + + /** + * Builds the HTML form, including XML Request and data URL as parameters. + * + * @param htmlTemplate template to be used for the HTML form; + * may be null, in this case a default layout will be produced + * @param xmlRequest XML Request to be sent as a parameter in the form + * @param bkuURL URL of the "Bürgerkartenumgebung" the form will be submitted to; + * may be null, in this case the default URL will be used + * @param dataURL DataURL to be sent as a parameter in the form + */ + public String buildCreateSignature( + String bkuURL, + String xmlRequest, + String dataURL) + throws BuildException + { + String htmlForm = DEFAULT_HTML_TEMPLATE_FOR_MANDATES; + htmlForm = replaceTag(htmlForm, BKU_TAG, bkuURL, true, ALL); + htmlForm = replaceTag(htmlForm, XMLREQUEST_TAG, encodeParameter(xmlRequest), true, ALL); + htmlForm = replaceTag(htmlForm, DATAURL_TAG, dataURL, true, ALL); + return htmlForm; + } /** * Encodes a string for inclusion as a parameter in the form. * Double quotes are substituted by "&quot;". diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/VerifyXMLSignatureRequestBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/VerifyXMLSignatureRequestBuilder.java index 2c97f01ae..a6b61e747 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/VerifyXMLSignatureRequestBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/VerifyXMLSignatureRequestBuilder.java @@ -152,6 +152,85 @@ public class VerifyXMLSignatureRequestBuilder { return requestElem_; } + /** + * Builds a <VerifyXMLSignatureRequest> + * from an IdentityLink with a known trustProfileID which + * has to exist in MOA-SP + * @param identityLink - The IdentityLink + * @param trustProfileID - a preconfigured TrustProfile at MOA-SP + * + * @return Element - The complete request as Dom-Element + * + * @throws ParseException + */ + public Element build(byte[]mandate, String trustProfileID) + throws ParseException + { + try { + // build the request +// Element dateTimeElem = requestDoc_.createElementNS(MOA_NS_URI, "DateTime"); +// requestElem_.appendChild(dateTimeElem); +// Node dateTime = requestDoc_.createTextNode(identityLink.getIssueInstant()); +// dateTimeElem.appendChild(dateTime); + Element verifiySignatureInfoElem = + requestDoc_.createElementNS(MOA_NS_URI, "VerifySignatureInfo"); + requestElem_.appendChild(verifiySignatureInfoElem); + Element verifySignatureEnvironmentElem = + requestDoc_.createElementNS(MOA_NS_URI, "VerifySignatureEnvironment"); + verifiySignatureInfoElem.appendChild(verifySignatureEnvironmentElem); + Element base64ContentElem = requestDoc_.createElementNS(MOA_NS_URI, "Base64Content"); + verifySignatureEnvironmentElem.appendChild(base64ContentElem); + // insert the base64 encoded identity link SAML assertion + //String serializedAssertion = identityLink.getSerializedSamlAssertion(); + //String base64EncodedAssertion = Base64Utils.encode(mandate.getBytes("UTF-8")); + String base64EncodedAssertion = Base64Utils.encode(mandate); + //replace all '\r' characters by no char. + StringBuffer replaced = new StringBuffer(); + for (int i = 0; i < base64EncodedAssertion.length(); i ++) { + char c = base64EncodedAssertion.charAt(i); + if (c != '\r') { + replaced.append(c); + } + } + base64EncodedAssertion = replaced.toString(); + Node base64Content = requestDoc_.createTextNode(base64EncodedAssertion); + base64ContentElem.appendChild(base64Content); + // specify the signature location + Element verifySignatureLocationElem = + requestDoc_.createElementNS(MOA_NS_URI, "VerifySignatureLocation"); + verifiySignatureInfoElem.appendChild(verifySignatureLocationElem); + Node signatureLocation = requestDoc_.createTextNode(DSIG + "Signature"); + verifySignatureLocationElem.appendChild(signatureLocation); + // signature manifest params + Element signatureManifestCheckParamsElem = + requestDoc_.createElementNS(MOA_NS_URI, "SignatureManifestCheckParams"); + requestElem_.appendChild(signatureManifestCheckParamsElem); + signatureManifestCheckParamsElem.setAttribute("ReturnReferenceInputData", "false"); +// // add the transforms +// Element referenceInfoElem = requestDoc_.createElementNS(MOA_NS_URI, "ReferenceInfo"); +// signatureManifestCheckParamsElem.appendChild(referenceInfoElem); +// Element[] dsigTransforms = identityLink.getDsigReferenceTransforms(); +// +// for (int i = 0; i < dsigTransforms.length; i++) { +// Element verifyTransformsInfoProfileElem = +// requestDoc_.createElementNS(MOA_NS_URI, "VerifyTransformsInfoProfile"); +// referenceInfoElem.appendChild(verifyTransformsInfoProfileElem); +// verifyTransformsInfoProfileElem.appendChild(requestDoc_.importNode(dsigTransforms[i], true)); +// } + Element returnHashInputDataElem = + requestDoc_.createElementNS(MOA_NS_URI, "ReturnHashInputData"); + requestElem_.appendChild(returnHashInputDataElem); + Element trustProfileIDElem = requestDoc_.createElementNS(MOA_NS_URI, "TrustProfileID"); + trustProfileIDElem.appendChild(requestDoc_.createTextNode(trustProfileID)); + requestElem_.appendChild(trustProfileIDElem); + } catch (Throwable t) { + throw new ParseException("builder.00", + new Object[] { "VerifyXMLSignatureRequest (IdentityLink)" }, t); + } + + return requestElem_; + } + /** * Builds a <VerifyXMLSignatureRequest> diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/data/AuthenticationSession.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/data/AuthenticationSession.java index eca02a77b..554b5012e 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/data/AuthenticationSession.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/data/AuthenticationSession.java @@ -68,6 +68,16 @@ public class AuthenticationSession { * URL of the BKU */ private String bkuURL; + + /** + * Use mandate + */ + private boolean useMandate; + + /** + * SessionID for MIS + */ + private String misSessionID; /** * identity link read from smartcard */ @@ -582,4 +592,39 @@ public class AuthenticationSession { this.pushInfobox = pushInfobox; } + /** + * + * @param useMandate indicates if mandate is used or not + */ + public void setUseMandate(String useMandate) { + if (useMandate.compareToIgnoreCase("true") == 0) + this.useMandate = true; + else + this.useMandate = false; + + } + + /** + * Returns if mandate is used or not + * @return + */ + public boolean getUseMandate() { + return this.useMandate; + } + + /** + * + * @param misSessionID indicates the MIS session ID + */ + public void setMISSessionID(String misSessionID) { + this.misSessionID = misSessionID; + } + + /** + * Returns the MIS session ID + * @return + */ + public String getMISSessionID() { + return this.misSessionID; + } } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GetForeignIDServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GetForeignIDServlet.java index c83650587..9a6670617 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GetForeignIDServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GetForeignIDServlet.java @@ -219,11 +219,14 @@ public class GetForeignIDServlet extends AuthServlet { try { client.setSSLSocketFactory(SSLUtils.getSSLSocketFactory(AuthConfigurationProvider.getInstance(), connectionParameters)); } catch (IOException e) { - throw new SZRGWClientException(e); + Logger.error("Could not initialize SSL Factory", e); + throw new SZRGWClientException("Could not initialize SSL Factory"); } catch (GeneralSecurityException e) { - throw new SZRGWClientException(e); + Logger.error("Could not initialize SSL Factory", e); + throw new SZRGWClientException("Could not initialize SSL Factory"); } catch (PKIException e) { - throw new SZRGWClientException(e); + Logger.error("Could not initialize SSL Factory", e); + throw new SZRGWClientException("Could not initialize SSL Factory"); } } Logger.info("Starte Kommunikation mit dem Stammzahlenregister Gateway(" + connectionParameters.getUrl() + ")..."); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GetMISSessionIDServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GetMISSessionIDServlet.java new file mode 100644 index 000000000..4c0abdb0f --- /dev/null +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GetMISSessionIDServlet.java @@ -0,0 +1,174 @@ +package at.gv.egovernment.moa.id.auth.servlet; + +import iaik.pki.PKIException; + +import java.io.IOException; +import java.io.PrintWriter; +import java.security.GeneralSecurityException; +import java.util.List; +import java.util.Map; + +import javax.net.ssl.SSLSocketFactory; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.fileupload.FileUploadException; +import org.apache.commons.lang.StringEscapeUtils; + +import at.gv.egovernment.moa.id.BuildException; +import at.gv.egovernment.moa.id.MOAIDException; +import at.gv.egovernment.moa.id.auth.AuthenticationServer; +import at.gv.egovernment.moa.id.auth.MOAIDAuthConstants; +import at.gv.egovernment.moa.id.auth.WrongParametersException; +import at.gv.egovernment.moa.id.auth.builder.DataURLBuilder; +import at.gv.egovernment.moa.id.auth.builder.GetIdentityLinkFormBuilder; +import at.gv.egovernment.moa.id.auth.data.AuthenticationSession; +import at.gv.egovernment.moa.id.config.ConnectionParameter; +import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider; +import at.gv.egovernment.moa.id.util.ParamValidatorUtils; +import at.gv.egovernment.moa.id.util.SSLUtils; +import at.gv.egovernment.moa.id.util.client.mis.simple.MISMandate; +import at.gv.egovernment.moa.id.util.client.mis.simple.MISSimpleClient; +import at.gv.egovernment.moa.id.util.client.mis.simple.MISSimpleClientException; +import at.gv.egovernment.moa.logging.Logger; + +/** + * Servlet requested for getting the foreign eID + * provided by the security layer implementation. + * Utilizes the {@link AuthenticationServer}. + * + */ +public class GetMISSessionIDServlet extends AuthServlet { + + /** + * Constructor for GetMISSessionIDServlet. + */ + public GetMISSessionIDServlet() { + super(); + } + + /** + * GET requested by security layer implementation to verify + * that data URL resource is available. + * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest, HttpServletResponse) + */ + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + + doPost(req, resp); + +// Logger.debug("GET GetMISSessionIDServlet"); +// +// resp.setHeader(MOAIDAuthConstants.HEADER_EXPIRES,MOAIDAuthConstants.HEADER_VALUE_EXPIRES); +// resp.setHeader(MOAIDAuthConstants.HEADER_PRAGMA,MOAIDAuthConstants.HEADER_VALUE_PRAGMA); +// resp.setHeader(MOAIDAuthConstants.HEADER_CACHE_CONTROL,MOAIDAuthConstants.HEADER_VALUE_CACHE_CONTROL); +// resp.addHeader(MOAIDAuthConstants.HEADER_CACHE_CONTROL,MOAIDAuthConstants.HEADER_VALUE_CACHE_CONTROL_IE); + } + + /** + * Gets the signer certificate from the InfoboxReadRequest and + * responds with a new + * CreateXMLSignatureRequest. + *
      + * Request parameters: + *
        + *
      • MOASessionID: ID of associated authentication session
      • + *
      • XMLResponse: <InfoboxReadResponse>
      • + *
      + * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest, HttpServletResponse) + */ + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + + Logger.debug("POST GetMISSessionIDServlet"); + + resp.setHeader(MOAIDAuthConstants.HEADER_EXPIRES,MOAIDAuthConstants.HEADER_VALUE_EXPIRES); + resp.setHeader(MOAIDAuthConstants.HEADER_PRAGMA,MOAIDAuthConstants.HEADER_VALUE_PRAGMA); + resp.setHeader(MOAIDAuthConstants.HEADER_CACHE_CONTROL,MOAIDAuthConstants.HEADER_VALUE_CACHE_CONTROL); + resp.addHeader(MOAIDAuthConstants.HEADER_CACHE_CONTROL,MOAIDAuthConstants.HEADER_VALUE_CACHE_CONTROL_IE); + +// Map parameters; +// try +// { +// parameters = getParameters(req); +// } catch (FileUploadException e) +// { +// Logger.error("Parsing mulitpart/form-data request parameters failed: " + e.getMessage()); +// throw new IOException(e.getMessage()); +// } + + String sessionID = req.getParameter(PARAM_SESSIONID); + + // escape parameter strings + sessionID = StringEscapeUtils.escapeHtml(sessionID); + + AuthenticationSession session = null; + try { + // check parameter + if (!ParamValidatorUtils.isValidSessionID(sessionID)) + throw new WrongParametersException("VerifyCertificate", PARAM_SESSIONID, "auth.12"); + + session = AuthenticationServer.getSession(sessionID); + + String misSessionID = session.getMISSessionID(); + + //System.out.println("MIS Session ID (GetMISServlet): " + misSessionID); + + AuthConfigurationProvider authConf= AuthConfigurationProvider.getInstance(); + ConnectionParameter connectionParameters = authConf.getOnlineMandatesConnectionParameter(); + SSLSocketFactory sslFactory = SSLUtils.getSSLSocketFactory(AuthConfigurationProvider.getInstance(), connectionParameters); + + List list = MISSimpleClient.sendGetMandatesRequest(connectionParameters.getUrl(), misSessionID, sslFactory); + + if (list == null) { + Logger.error("Keine Vollmacht gefunden."); + throw new MISSimpleClientException("Keine Vollmacht gefunden"); + } + if (list.size() == 0) { + Logger.error("Keine Vollmacht gefunden."); + throw new MISSimpleClientException("Keine Vollmacht gefunden"); + } + + // for now: list contains only one element + MISMandate mandate = (MISMandate)list.get(0); + + // verify mandate signature + String createXMLSignatureRequestOrRedirect = AuthenticationServer.getInstance().verifyMandate(sessionID, mandate); + + String dataurl = + new DataURLBuilder().buildDataURL( + session.getAuthURL(), + REQ_VERIFY_AUTH_BLOCK, + session.getSessionID()); + + Logger.debug(createXMLSignatureRequestOrRedirect); + + String request = getHTMLForm(createXMLSignatureRequestOrRedirect, session.getBkuURL(), dataurl); + + resp.setContentType("text/html;charset=UTF-8"); + PrintWriter out = new PrintWriter(resp.getOutputStream()); + out.print(request); + out.flush(); + + + } + catch (MOAIDException ex) { + handleError(null, ex, req, resp); + } catch (GeneralSecurityException ex) { + handleError(null, ex, req, resp); + } catch (PKIException e) { + handleError(null, e, req, resp); + } catch (MISSimpleClientException e) { + handleError(null, e, req, resp); + } + } + + private static String getHTMLForm(String request, String bkuURI, String dataURL) throws BuildException { + return new GetIdentityLinkFormBuilder().buildCreateSignature(bkuURI, request, dataURL); + + } + + + + } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/ProcessValidatorInputServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/ProcessValidatorInputServlet.java index 54d08c59e..b50a1edde 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/ProcessValidatorInputServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/ProcessValidatorInputServlet.java @@ -68,8 +68,8 @@ public class ProcessValidatorInputServlet extends AuthServlet { * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest, HttpServletResponse) */ protected void doGet(HttpServletRequest req, HttpServletResponse resp) - throws ServletException, IOException { - + throws ServletException, IOException { + Logger.debug("GET ProcessInput"); resp.setHeader(MOAIDAuthConstants.HEADER_EXPIRES,MOAIDAuthConstants.HEADER_VALUE_EXPIRES); resp.setHeader(MOAIDAuthConstants.HEADER_PRAGMA,MOAIDAuthConstants.HEADER_VALUE_PRAGMA); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/StartAuthenticationServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/StartAuthenticationServlet.java index 10b4041df..2e7d59fde 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/StartAuthenticationServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/StartAuthenticationServlet.java @@ -15,11 +15,14 @@ */ package at.gv.egovernment.moa.id.auth.servlet; +import iaik.pki.PKIException; + import java.io.IOException; import java.io.PrintWriter; -import java.io.Reader; -import java.io.StringReader; +import java.security.GeneralSecurityException; +import java.util.List; +import javax.net.ssl.SSLSocketFactory; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -31,8 +34,14 @@ import at.gv.egovernment.moa.id.MOAIDException; import at.gv.egovernment.moa.id.auth.AuthenticationServer; import at.gv.egovernment.moa.id.auth.MOAIDAuthInitializer; import at.gv.egovernment.moa.id.auth.WrongParametersException; +import at.gv.egovernment.moa.id.config.ConfigurationException; +import at.gv.egovernment.moa.id.config.ConnectionParameter; +import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider; import at.gv.egovernment.moa.id.util.MOAIDMessageProvider; import at.gv.egovernment.moa.id.util.ParamValidatorUtils; +import at.gv.egovernment.moa.id.util.SSLUtils; +import at.gv.egovernment.moa.id.util.client.mis.simple.MISSimpleClient; +import at.gv.egovernment.moa.id.util.client.mis.simple.MISSimpleClientException; import at.gv.egovernment.moa.logging.Logger; /** @@ -88,8 +97,7 @@ public class StartAuthenticationServlet extends AuthServlet { resp.setHeader(HEADER_CACHE_CONTROL,HEADER_VALUE_CACHE_CONTROL); resp.addHeader(HEADER_CACHE_CONTROL,HEADER_VALUE_CACHE_CONTROL_IE); - //System.out.println("useMandate: " + useMandate); - + try { // check parameter if (!ParamValidatorUtils.isValidTarget(target)) @@ -109,7 +117,7 @@ public class StartAuthenticationServlet extends AuthServlet { String getIdentityLinkForm = - AuthenticationServer.getInstance().startAuthentication(authURL, target, oaURL, templateURL, bkuURL, sessionID, req.getScheme()); + AuthenticationServer.getInstance().startAuthentication(authURL, target, oaURL, templateURL, bkuURL, useMandate, sessionID, req.getScheme()); resp.setContentType("text/html;charset=UTF-8"); PrintWriter out = new PrintWriter(resp.getOutputStream()); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyAuthenticationBlockServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyAuthenticationBlockServlet.java index ad01de6c8..f1fb15be0 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyAuthenticationBlockServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyAuthenticationBlockServlet.java @@ -61,6 +61,8 @@ public class VerifyAuthenticationBlockServlet extends AuthServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + //doPost(req, resp); + Logger.debug("GET VerifyAuthenticationBlock"); resp.setHeader(MOAIDAuthConstants.HEADER_EXPIRES,MOAIDAuthConstants.HEADER_VALUE_EXPIRES); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyCertificateServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyCertificateServlet.java index 76c5476ae..d101df1fa 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyCertificateServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyCertificateServlet.java @@ -8,12 +8,14 @@ import java.security.GeneralSecurityException; import java.security.cert.CertificateEncodingException; import java.util.Map; +import javax.net.ssl.SSLSocketFactory; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; import org.apache.axis.encoding.Base64; import org.apache.commons.fileupload.FileUploadException; @@ -22,24 +24,25 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Text; +import at.gv.egovernment.moa.id.AuthenticationException; import at.gv.egovernment.moa.id.MOAIDException; import at.gv.egovernment.moa.id.auth.AuthenticationServer; import at.gv.egovernment.moa.id.auth.MOAIDAuthConstants; import at.gv.egovernment.moa.id.auth.WrongParametersException; import at.gv.egovernment.moa.id.auth.builder.DataURLBuilder; import at.gv.egovernment.moa.id.auth.data.AuthenticationSession; -import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.CreateIdentityLinkResponse; -import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.SZRGWClient; -import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.SZRGWClientException; import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.SZRGWConstants; -import at.gv.egovernment.moa.id.config.ConfigurationException; import at.gv.egovernment.moa.id.config.ConnectionParameter; import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider; -import at.gv.egovernment.moa.id.util.MOAIDMessageProvider; +import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; import at.gv.egovernment.moa.id.util.ParamValidatorUtils; import at.gv.egovernment.moa.id.util.SSLUtils; import at.gv.egovernment.moa.id.util.ServletUtils; +import at.gv.egovernment.moa.id.util.client.mis.simple.MISSessionId; +import at.gv.egovernment.moa.id.util.client.mis.simple.MISSimpleClient; +import at.gv.egovernment.moa.id.util.client.mis.simple.MISSimpleClientException; import at.gv.egovernment.moa.logging.Logger; +import at.gv.egovernment.moa.util.DOMUtils; /** * Servlet requested for getting the foreign eID @@ -116,25 +119,96 @@ public class VerifyCertificateServlet extends AuthServlet { session = AuthenticationServer.getSession(sessionID); - X509Certificate cert = AuthenticationServer.getInstance().getCertificate(sessionID, parameters); - - String createXMLSignatureRequest = AuthenticationServer.getInstance().createXMLSignatureRequestForeignID(sessionID, cert); - // build dataurl (to the GetForeignIDSerlvet) - String dataurl = - new DataURLBuilder().buildDataURL( - session.getAuthURL(), - REQ_GET_FOREIGN_ID, - session.getSessionID()); - - ServletUtils.writeCreateXMLSignatureRequest(resp, session, createXMLSignatureRequest, AuthenticationServer.REQ_PROCESS_VALIDATOR_INPUT, "GetForeignID", dataurl); + X509Certificate cert = AuthenticationServer.getInstance().getCertificate(sessionID, parameters); + if (cert == null) { + Logger.error("Certificate could not be read."); + throw new AuthenticationException("auth.14", null); + } + + boolean useMandate = session.getUseMandate(); + if (useMandate) { + // Mandate Modus + // make request to MIS + + AuthConfigurationProvider authConf= AuthConfigurationProvider.getInstance(); + ConnectionParameter connectionParameters = authConf.getOnlineMandatesConnectionParameter(); + SSLSocketFactory sslFactory = SSLUtils.getSSLSocketFactory(AuthConfigurationProvider.getInstance(), connectionParameters); + + // get identitity link as byte[] + Element elem = session.getIdentityLink().getSamlAssertion(); + String s = DOMUtils.serializeNode(elem); +// byte[] idl = DOMUtils.nodeToByteArray(elem); +// String s = new String(idl); + byte[] idl = s.getBytes(); + + // redirect url + // build redirect(to the GetMISSessionIdSerlvet) + String redirectURL = + new DataURLBuilder().buildDataURL( + session.getAuthURL(), + GET_MIS_SESSIONID, + session.getSessionID()); + + String oaURL = session.getOAURLRequested(); + OAAuthParameter oaParam = authConf.getOnlineApplicationParameter(oaURL); + String profiles = oaParam.getMandateProfiles(); + + if (profiles == null) { + Logger.error("No Mandate/Profile for OA configured."); + throw new AuthenticationException("auth.16", new Object[] { GET_MIS_SESSIONID}); + } + + String profilesArray[] = profiles.split(","); + for(int i = 0; i < profilesArray.length; i++) { + profilesArray[i] = profilesArray[i].trim(); + } + + MISSessionId misSessionID = MISSimpleClient.sendSessionIdRequest(connectionParameters.getUrl(), idl, cert.getEncoded(), redirectURL, profilesArray, sslFactory); + String redirectMISGUI = misSessionID.getRedirectURL(); + + if (misSessionID == null) { + Logger.error("Fehler bei Anfrage an Vollmachten Service. MIS Session ID ist null."); + throw new MISSimpleClientException("Fehler bei Anfrage an Vollmachten Service."); + } + + session.setMISSessionID(misSessionID.getSessiondId()); + + resp.setStatus(302); + resp.addHeader("Location", redirectMISGUI); + Logger.debug("REDIRECT TO: " + redirectURL); + + } + else { + // Foreign Identities Modus + + String createXMLSignatureRequest = AuthenticationServer.getInstance().createXMLSignatureRequestForeignID(sessionID, cert); + // build dataurl (to the GetForeignIDSerlvet) + String dataurl = + new DataURLBuilder().buildDataURL( + session.getAuthURL(), + REQ_GET_FOREIGN_ID, + session.getSessionID()); + + ServletUtils.writeCreateXMLSignatureRequest(resp, session, createXMLSignatureRequest, AuthenticationServer.REQ_PROCESS_VALIDATOR_INPUT, "GetForeignID", dataurl); + + + Logger.debug("Send CreateXMLSignatureRequest to BKU"); + } - Logger.debug("Send CreateXMLSignatureRequest to BKU"); } catch (MOAIDException ex) { handleError(null, ex, req, resp); - } + } catch (GeneralSecurityException ex) { + handleError(null, ex, req, resp); + } catch (PKIException e) { + handleError(null, e, req, resp); + } catch (MISSimpleClientException e) { + handleError(null, e, req, resp); + } catch (TransformerException e) { + handleError(null, e, req, resp); + } } /** @@ -161,58 +235,58 @@ public class VerifyCertificateServlet extends AuthServlet { * @throws SZRGWClientException */ /*private Element getIdentityLink(Element signature) throws SZRGWClientException {*/ - private Element getIdentityLink(X509Certificate cert) throws SZRGWClientException { - - SZRGWClient client = new SZRGWClient(); - - try { - AuthConfigurationProvider authConf = AuthConfigurationProvider.getInstance(); - ConnectionParameter connectionParameters = authConf.getForeignIDConnectionParameter(); - //url = "http://localhost:8081/szr-gateway/services/IdentityLinkCreation"; - Logger.debug("Connection Parameters: " + connectionParameters); - client.setAddress(connectionParameters.getUrl()); - if (connectionParameters.getUrl().toLowerCase().startsWith("https:")) { - Logger.debug("Initialisiere SSL Verbindung"); - try { - client.setSSLSocketFactory(SSLUtils.getSSLSocketFactory(AuthConfigurationProvider.getInstance(), connectionParameters)); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (GeneralSecurityException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (PKIException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - Logger.info("Starte Kommunikation mit dem Stammzahlenregister Gateway(" + connectionParameters.getUrl() + ")..."); - - - } - catch (ConfigurationException e) { - Logger.warn(e); - Logger.warn(MOAIDMessageProvider.getInstance().getMessage("config.12", null )); - - } - // create request - Document doc = buildGetIdentityLinkRequest(cert); - Element request = doc.getDocumentElement(); - CreateIdentityLinkResponse response = null; - - //try { - response = client.createIdentityLinkResponse(request); - //} catch (SZRGWClientException e) { - // give him a second try - Nach dem Starten des Tomcat wird beim ersten Mal das Client-Zertifikat offenbar vom HTTPClient nicht mitgeschickt. - // client = new SZRGWClient(url); - // response = client.createIdentityLinkResponse(request); - // } - - - return response.getAssertion(); - - } +// private Element getIdentityLink(X509Certificate cert) throws SZRGWClientException { +// +// SZRGWClient client = new SZRGWClient(); +// +// try { +// AuthConfigurationProvider authConf = AuthConfigurationProvider.getInstance(); +// ConnectionParameter connectionParameters = authConf.getForeignIDConnectionParameter(); +// //url = "http://localhost:8081/szr-gateway/services/IdentityLinkCreation"; +// Logger.debug("Connection Parameters: " + connectionParameters); +// client.setAddress(connectionParameters.getUrl()); +// if (connectionParameters.getUrl().toLowerCase().startsWith("https:")) { +// Logger.debug("Initialisiere SSL Verbindung"); +// try { +// client.setSSLSocketFactory(SSLUtils.getSSLSocketFactory(AuthConfigurationProvider.getInstance(), connectionParameters)); +// } catch (IOException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } catch (GeneralSecurityException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } catch (PKIException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } +// } +// +// Logger.info("Starte Kommunikation mit dem Stammzahlenregister Gateway(" + connectionParameters.getUrl() + ")..."); +// +// +// } +// catch (ConfigurationException e) { +// Logger.warn(e); +// Logger.warn(MOAIDMessageProvider.getInstance().getMessage("config.12", null )); +// +// } +// // create request +// Document doc = buildGetIdentityLinkRequest(cert); +// Element request = doc.getDocumentElement(); +// CreateIdentityLinkResponse response = null; +// +// //try { +// response = client.createIdentityLinkResponse(request); +// //} catch (SZRGWClientException e) { +// // give him a second try - Nach dem Starten des Tomcat wird beim ersten Mal das Client-Zertifikat offenbar vom HTTPClient nicht mitgeschickt. +// // client = new SZRGWClient(url); +// // response = client.createIdentityLinkResponse(request); +// // } +// +// +// return response.getAssertion(); +// +// } /** * Builds the szrgw:GetIdentityLinkRequest für the SZR-GW diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyIdentityLinkServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyIdentityLinkServlet.java index dff366829..23861d290 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyIdentityLinkServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/VerifyIdentityLinkServlet.java @@ -18,6 +18,7 @@ package at.gv.egovernment.moa.id.auth.servlet; import java.io.IOException; import java.util.Map; +import javax.net.ssl.SSLSocketFactory; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -25,6 +26,7 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.lang.StringEscapeUtils; +import at.gv.egovernment.moa.id.AuthenticationException; import at.gv.egovernment.moa.id.MOAIDException; import at.gv.egovernment.moa.id.ParseException; import at.gv.egovernment.moa.id.auth.AuthenticationServer; @@ -33,7 +35,10 @@ import at.gv.egovernment.moa.id.auth.WrongParametersException; import at.gv.egovernment.moa.id.auth.builder.DataURLBuilder; import at.gv.egovernment.moa.id.auth.builder.InfoboxReadRequestBuilderCertificate; import at.gv.egovernment.moa.id.auth.data.AuthenticationSession; +import at.gv.egovernment.moa.id.config.ConnectionParameter; +import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider; import at.gv.egovernment.moa.id.util.ParamValidatorUtils; +import at.gv.egovernment.moa.id.util.SSLUtils; import at.gv.egovernment.moa.id.util.ServletUtils; import at.gv.egovernment.moa.logging.Logger; @@ -126,11 +131,17 @@ public class VerifyIdentityLinkServlet extends AuthServlet { if (createXMLSignatureRequestOrRedirect == null) { // no identity link found + boolean useMandate = session.getUseMandate(); + if (useMandate) { + Logger.error("Online-Mandate Mode for foreign citizencs not supported."); + throw new AuthenticationException("auth.13", null); + } + try { Logger.debug("Send InfoboxReadRequest to BKU to get signer certificate."); - // create the InfoboxReadRequest to get the certificate + // create the InfoboxReadRequest to get the certificate String infoboxReadRequest = new InfoboxReadRequestBuilderCertificate().build(true); // build dataurl (to the GetForeignIDSerlvet) @@ -142,6 +153,7 @@ public class VerifyIdentityLinkServlet extends AuthServlet { ServletUtils.writeCreateXMLSignatureRequest(resp, session, infoboxReadRequest, AuthenticationServer.REQ_PROCESS_VALIDATOR_INPUT, "VerifyIdentityLink", dataurl); + } catch(Exception e) { @@ -150,7 +162,28 @@ public class VerifyIdentityLinkServlet extends AuthServlet { } else { - ServletUtils.writeCreateXMLSignatureRequestOrRedirect(resp, session, createXMLSignatureRequestOrRedirect, AuthenticationServer.REQ_PROCESS_VALIDATOR_INPUT, "VerifyIdentityLink"); + boolean useMandate = session.getUseMandate(); + if (useMandate) { // Mandate modus + // read certificate and set dataurl to VerifyCertificateForMandatesServlet + + Logger.debug("Send InfoboxReadRequest to BKU to get signer certificate."); + + String infoboxReadRequest = new InfoboxReadRequestBuilderCertificate().build(true); + + // build dataurl (to the GetForeignIDSerlvet) + String dataurl = + new DataURLBuilder().buildDataURL( + session.getAuthURL(), + REQ_VERIFY_CERTIFICATE, + session.getSessionID()); + + + ServletUtils.writeCreateXMLSignatureRequest(resp, session, infoboxReadRequest, AuthenticationServer.REQ_PROCESS_VALIDATOR_INPUT, "VerifyIdentityLink", dataurl); + + } + else { + ServletUtils.writeCreateXMLSignatureRequestOrRedirect(resp, session, createXMLSignatureRequestOrRedirect, AuthenticationServer.REQ_PROCESS_VALIDATOR_INPUT, "VerifyIdentityLink"); + } } } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/ParepUtils.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/ParepUtils.java index a8e22562a..51551834e 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/ParepUtils.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/ParepUtils.java @@ -43,6 +43,7 @@ import at.gv.egovernment.moa.id.config.ConfigurationException; import at.gv.egovernment.moa.logging.Logger; import at.gv.egovernment.moa.util.BoolUtils; import at.gv.egovernment.moa.util.Constants; +import at.gv.egovernment.moa.util.DOMUtils; import at.gv.egovernment.moa.util.StringUtils; /** @@ -245,9 +246,13 @@ public class ParepUtils { try { Element nameSpaceNode = mandator.getOwnerDocument().createElement("NameSpaceNode"); nameSpaceNode.setAttribute("xmlns" + SZRGWConstants.PD_POSTFIX, Constants.PD_NS_URI); - + + String s = DOMUtils.serializeNode(mandator); + // check if physical person - Element physicalPerson = (Element) XPathAPI.selectSingleNode(mandator, "descendant-or-self::pr:PhysicalPerson", nameSpaceNode); + Element physicalPerson = (Element) XPathAPI.selectSingleNode(mandator, "descendant-or-self::pr:PhysicalPerson", nameSpaceNode); + + // Element physicalPerson = (Element)XPathAPI.selectSingleNode(mandator, // "descendant-or-self::pr:CorporateBody", nameSpaceNode); return physicalPerson != null; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/ParepValidator.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/ParepValidator.java index 2a0126b82..9d5c0f7cf 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/ParepValidator.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/ParepValidator.java @@ -95,7 +95,11 @@ public class ParepValidator implements InfoboxValidator { public final static String EXT_SAML_MANDATE_NAME = "MandatorName"; public final static String EXT_SAML_MANDATE_DOB = "MandatorDateOfBirth"; public final static String EXT_SAML_MANDATE_WBPK = "MandatorWbpk"; - public final static String EXT_SAML_MANDATE_REPRESENTATIONTYPE = "RepresentationType"; + public final static String EXT_SAML_MANDATE_REPRESENTATIONTYPE = "RepresentationType"; + public final static String EXT_SAML_MANDATE_OIDTEXTUALDESCRIPTION = "OIDTextualDescription"; + + /** */ + public final static String EXT_SAML_MANDATE_REPRESENTATIONTEXT = "Vollmachtsvertreter"; /** register and register number for non physical persons - the domain identifier for business applications*/ public final static String EXT_SAML_MANDATE_CB_BASE_ID = "MandatorDomainIdentifier"; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationBuilder.java index dbfbda535..b5275cdd5 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationBuilder.java @@ -125,6 +125,10 @@ public class ConfigurationBuilder { public static final String AUTH_FOREIGN_IDENTITIES_XPATH = ROOT + CONF + "AuthComponent/" + CONF + "ForeignIdentities"; + /** an XPATH-Expression */ + public static final String AUTH_ONLINEMANDATES_XPATH = + ROOT + CONF + "AuthComponent/" + CONF + "OnlineMandates"; + /** an XPATH-Expression */ @@ -146,6 +150,8 @@ public class ConfigurationBuilder { /** an XPATH-Expression */ protected static final String OA_AUTH_COMPONENT_VERIFY_INFOBOXES_XPATH = CONF + "VerifyInfoboxes"; /** an XPATH-Expression */ + protected static final String OA_AUTH_COMPONENT_MANDATES_PROFILES_XPATH = CONF + "Mandates" + "/" + CONF + "Profiles"; + /** an XPATH-Expression */ protected static final String CONNECTION_PARAMETER_URL_XPATH = CONF + "ConnectionParameter/@URL"; /** an XPATH-Expression */ @@ -242,6 +248,18 @@ public class ConfigurationBuilder { return buildConnectionParameter(foreignid); } + + /** + * Build a ConnectionParameter containing all information + * of the OnlineMandates element in the authentication component + * @return ConnectionParameter of the authentication component OnlineMandates element + */ + public ConnectionParameter buildOnlineMandatesConnectionParameter() { + Element onlinemandates = (Element)XPathUtils.selectSingleNode(configElem_, AUTH_ONLINEMANDATES_XPATH); + if (onlinemandates==null) return null; + return buildConnectionParameter(onlinemandates); + + } /** * Method buildAuthBKUSelectionType. @@ -529,7 +547,19 @@ public class ConfigurationBuilder { } Node verifyInfoboxParamtersNode = XPathUtils.selectSingleNode(authComponent, OA_AUTH_COMPONENT_VERIFY_INFOBOXES_XPATH); oap.setVerifyInfoboxParameters(buildVerifyInfoboxParameters( - verifyInfoboxParamtersNode, defaultVerifyInfoboxParameters, moaSpIdentityLinkTrustProfileID)); + verifyInfoboxParamtersNode, defaultVerifyInfoboxParameters, moaSpIdentityLinkTrustProfileID)); + + Node mandateProfilesNode = XPathUtils.selectSingleNode(authComponent, OA_AUTH_COMPONENT_MANDATES_PROFILES_XPATH); + if (mandateProfilesNode != null) { + if ("businessService".equalsIgnoreCase(oaType)) { + Logger.error("No Online Mandate Modus for OA of type \"businessService\" allowed."); + throw new ConfigurationException("config.02", null); + } + else { + String profiles = DOMUtils.getText(mandateProfilesNode); + oap.setMandateProfiles(profiles); + } + } } OA_set.add(oap); } 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 6e296b4f4..ceb047280 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 @@ -164,6 +164,11 @@ public class AuthConfigurationProvider extends ConfigurationProvider { */ private ConnectionParameter foreignIDConnectionParameter; + /** + * parameter for connection to OnlineMandates Service + */ + private ConnectionParameter onlineMandatesConnectionParameter; + /** * Parameter for trusted BKUs */ @@ -271,6 +276,7 @@ public class AuthConfigurationProvider extends ConfigurationProvider { foreignIDConnectionParameter = builder.buildForeignIDConnectionParameter(); + onlineMandatesConnectionParameter = builder.buildOnlineMandatesConnectionParameter(); onlineApplicationAuthParameters = builder.buildOnlineApplicationAuthParameters(defaultVerifyInfoboxParameters, moaSpIdentityLinkTrustProfileID); identityLinkX509SubjectNames = builder.getIdentityLink_X509SubjectNames(); defaultChainingMode = builder.getDefaultChainingMode(); @@ -393,6 +399,15 @@ public class AuthConfigurationProvider extends ConfigurationProvider { public ConnectionParameter getForeignIDConnectionParameter() { return foreignIDConnectionParameter; } + + /** + * Return a ConnectionParameter bean containing all information + * of the authentication component OnlineMandates element + * @return ConnectionParameter of the authentication component OnlineMandates element + */ + public ConnectionParameter getOnlineMandatesConnectionParameter() { + return onlineMandatesConnectionParameter; + } /** * Return a string with a url-reference to the VerifyIdentityLink trust diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java index c352fae6c..aa5aa21a3 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java @@ -88,6 +88,11 @@ public class OAAuthParameter extends OAParameter { */ private VerifyInfoboxParameters verifyInfoboxParameters; + /** + * Parameter for Mandate profiles + */ + private String mandateProfiles; + /** * BZ * Type for authentication number (e.g. Firmenbuchnummer) @@ -325,5 +330,21 @@ public class OAAuthParameter extends OAParameter { public void setIdentityLinkDomainIdentifierType(String identityLinkDomainIdentifierType) { this.identityLinkDomainIdentifierType = identityLinkDomainIdentifierType; } + + /** + * Sets the Mandate/Profiles + * @param profiles + */ + public void setMandateProfiles(String profiles) { + this.mandateProfiles = profiles; + } + + /** + * Returns the Mandates/Profiles + * @return + */ + public String getMandateProfiles() { + return this.mandateProfiles; + } } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/proxy/servlet/ProxyServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/proxy/servlet/ProxyServlet.java index ce15b75bd..6802005f1 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/proxy/servlet/ProxyServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/proxy/servlet/ProxyServlet.java @@ -41,6 +41,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import org.apache.commons.lang.StringEscapeUtils; + import at.gv.egovernment.moa.id.AuthenticationException; import at.gv.egovernment.moa.id.BuildException; import at.gv.egovernment.moa.id.MOAIDException; @@ -117,12 +119,15 @@ public class ProxyServlet extends HttpServlet { protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Logger.debug("getRequestURL:" + req.getRequestURL().toString()); - //@TODO Parameter + + String artifact = req.getParameter(PARAM_SAMLARTIFACT); + artifact = StringEscapeUtils.escapeHtml(artifact); + try { - if (req.getParameter(PARAM_SAMLARTIFACT) != null) { + if (artifact != null) { // check if SAML Artifact was already used in this session (in case of page reload) HttpSession session = req.getSession(); - if (null != session && req.getParameter(PARAM_SAMLARTIFACT).equals(session.getAttribute(ATT_SAML_ARTIFACT))) { + if (null != session && artifact.equals(session.getAttribute(ATT_SAML_ARTIFACT))) { if (session.getAttribute(ATT_BROWSERREQU)==null) { tunnelRequest(req, resp); }else{ @@ -498,7 +503,6 @@ private int tunnelRequest(HttpServletRequest req, HttpServletResponse resp, Map Vector parameters = new Vector(); -//@TODO Parameter for (Enumeration enu = req.getParameterNames(); enu.hasMoreElements();) { String paramName = (String) enu.nextElement(); if (!(paramName.equals(PARAM_SAMLARTIFACT) || paramName.equals(PARAM_TARGET))) { diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ParamValidatorUtils.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ParamValidatorUtils.java index 79db9907b..d35fc875d 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ParamValidatorUtils.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ParamValidatorUtils.java @@ -446,6 +446,9 @@ public class ParamValidatorUtils { public static boolean isValidXMLDocument(String document) { + if (document == null) + return false; + Logger.debug("Überprüfe Parameter XMLDocument"); try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ServletUtils.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ServletUtils.java index 1915ce40a..24e5ff3d0 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ServletUtils.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ServletUtils.java @@ -64,7 +64,8 @@ public class ServletUtils { out.write(createXMLSignatureRequestOrRedirect.getBytes("UTF-8")); out.flush(); out.close(); - Logger.debug("Finished POST " + servletName); + Logger.debug("Finished POST " + servletName); + } else { String redirectURL = new DataURLBuilder().buildDataURL(session.getAuthURL(), servletGoal, session.getSessionID()); resp.setContentType("text/html"); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISMandate.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISMandate.java new file mode 100644 index 000000000..59ca0d5ca --- /dev/null +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISMandate.java @@ -0,0 +1,48 @@ +package at.gv.egovernment.moa.id.util.client.mis.simple; + +public class MISMandate { + + final static private String OID_NOTAR = "1.2.40.0.10.3.1"; + final static private String TEXT_NOTAR = "berufsmäßige(r) Parteienvertreter(in) mit Notariatseigenschaft"; + + final static private String OID_RECHTSANWALT = "1.2.40.0.10.3.2"; + final static private String TEXT_RECHTSANWALT = "berufsmäßige(r) Parteienvertreter(in) mit Rechtsanwaltseigenschaft"; + + final static private String OID_ZIVILTECHNIKER = "1.2.40.0.10.3.3"; + final static private String TEXT_ZIVILTECHNIKER = "berufsmäßige(r) Parteienvertreter(in) mit Ziviltechnikerinneneigenschaft"; + + final static private String OID_ORGANWALTER = "1.2.40.0.10.3.4"; + final static private String TEXT_ORGANWALTER = "Organwalter"; + + + private String oid = null; + private byte[] mandate = null; + + public String getProfRep() { + return oid; + } + public void setProfRep(String oid) { + this.oid = oid; + } + public byte[] getMandate() { + return mandate; + } + public void setMandate(byte[] mandate) { + this.mandate = mandate; + } + + public String getTextualDescriptionOfOID() { + if (this.oid.equalsIgnoreCase(OID_NOTAR)) + return TEXT_NOTAR; + if (this.oid.equalsIgnoreCase(OID_RECHTSANWALT)) + return TEXT_RECHTSANWALT; + if (this.oid.equalsIgnoreCase(OID_ZIVILTECHNIKER)) + return TEXT_ZIVILTECHNIKER; + if (this.oid.equalsIgnoreCase(OID_ORGANWALTER)) + return TEXT_ORGANWALTER; + + return "Keine textuelle Beschreibung für OID " + oid; + + } + +} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSessionId.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSessionId.java new file mode 100644 index 000000000..d8bec4900 --- /dev/null +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSessionId.java @@ -0,0 +1,22 @@ +package at.gv.egovernment.moa.id.util.client.mis.simple; + +public class MISSessionId { + + private String sessiondId = null; + private String redirectURL = null; + + public String getSessiondId() { + return sessiondId; + } + public void setSessiondId(String sessiondId) { + this.sessiondId = sessiondId; + } + public String getRedirectURL() { + return redirectURL; + } + public void setRedirectURL(String redirectURL) { + this.redirectURL = redirectURL; + } + + +} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSimpleClient.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSimpleClient.java new file mode 100644 index 000000000..25c341584 --- /dev/null +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSimpleClient.java @@ -0,0 +1,261 @@ +package at.gv.egovernment.moa.id.util.client.mis.simple; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.List; + +import javax.net.ssl.SSLSocketFactory; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.methods.PostMethod; +import org.apache.commons.httpclient.methods.StringRequestEntity; +import org.apache.commons.httpclient.protocol.Protocol; +import org.apache.xerces.parsers.DOMParser; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.DOMException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.SAXNotRecognizedException; +import org.xml.sax.SAXNotSupportedException; + +import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.SZRGWSecureSocketFactory; +import at.gv.egovernment.moa.logging.Logger; +import at.gv.egovernment.moa.util.DOMUtils; + + +public class MISSimpleClient { + + + private final static String SOAP_NS = "http://schemas.xmlsoap.org/soap/envelope/"; + private final static String MIS_NS = "http://reference.e-government.gv.at/namespace/mandates/mis/1.0/xsd"; + + private static Element NS_NODE = null; + + + static { + try { + NS_NODE = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument().createElement("test"); + NS_NODE.setAttribute("xmlns:soap", SOAP_NS); + NS_NODE.setAttribute("xmlns:mis", MIS_NS); + } catch (Exception e) { + Logger.warn("Error initializing namespace node.", e); + } + } + + public static List sendGetMandatesRequest(String webServiceURL, String sessionId, SSLSocketFactory sSLSocketFactory) throws MISSimpleClientException { + if (webServiceURL == null) { + throw new NullPointerException("Argument webServiceURL must not be null."); + } + if (sessionId == null) { + throw new NullPointerException("Argument sessionId must not be null."); + } + + // ssl settings + if (sSLSocketFactory != null) { + SZRGWSecureSocketFactory fac = new SZRGWSecureSocketFactory(sSLSocketFactory); + Protocol.registerProtocol("https", new Protocol("https", fac, 443)); + } + + + try { + Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); + Element mirElement = doc.createElementNS(MIS_NS, "MandateIssueRequest"); + Element sessionIdElement = doc.createElementNS(MIS_NS, "SessionID"); + sessionIdElement.appendChild(doc.createTextNode(sessionId)); + mirElement.appendChild(sessionIdElement); + + // send soap request + Element mandateIssueResponseElement = sendSOAPRequest(webServiceURL, mirElement); + + // check for error + checkForError(mandateIssueResponseElement); + + // check for session id + NodeList mandateElements = XPathAPI.selectNodeList(mandateIssueResponseElement, "//mis:MandateIssueResponse/mis:Mandates/mis:Mandate", NS_NODE); + + if (mandateElements == null || mandateElements.getLength() == 0) { + throw new MISSimpleClientException("No mandates found in response."); + } + + ArrayList foundMandates = new ArrayList(); + for (int i=0; i 0) { + Element certElement = doc.createElementNS(MIS_NS, "X509SignatureCertificate"); + certElement.appendChild(doc.createTextNode(new String(Base64.encodeBase64(cert)))); + //certElement.appendChild(doc.createTextNode(Base64.encodeBase64(cert))); + // certElement.appendChild(doc.createTextNode(new String(Base64.encodeBase64(cert)))); + mirElement.appendChild(certElement); + } + Element redirectElement = doc.createElementNS(MIS_NS, "RedirectURL"); + redirectElement.appendChild(doc.createTextNode(redirectURL)); + mirElement.appendChild(redirectElement); + if (mandateIdentifier != null && mandateIdentifier.length > 0) { + Element filtersElement = doc.createElementNS(MIS_NS, "Filters"); + Element mandateIdentifiersElement = doc.createElementNS(MIS_NS, "MandateIdentifiers"); + for (int i=0; iURL "{0}" Interne Fehlermeldung: {1} auth.12=Fehlerhafter Parameter "{1}" beim Aufruf von "{0}" +auth.13=Vollmachtenmodus für ausländische Bürger wird nicht unterstützt. +auth.14=Zertifikat konnte nicht ausgelesen werden. +auth.15=Fehler bei Anfrage an Vollmachten Service. +auth.16=Fehler bei Abarbeitung der Vollmacht in "{0}" init.00=MOA ID Authentisierung wurde erfolgreich gestartet init.01=Fehler beim Aktivieren des IAIK-JCE/JSSE/JDK1.3 Workaround: SSL ist möglicherweise nicht verfügbar diff --git a/id/server/idserverlib/src/test/java/test/abnahme/A/Test100StartAuthentication.java b/id/server/idserverlib/src/test/java/test/abnahme/A/Test100StartAuthentication.java index 6ab9c9679..4293fc477 100644 --- a/id/server/idserverlib/src/test/java/test/abnahme/A/Test100StartAuthentication.java +++ b/id/server/idserverlib/src/test/java/test/abnahme/A/Test100StartAuthentication.java @@ -37,7 +37,7 @@ public class Test100StartAuthentication extends AbnahmeTestCase { "http://localhost:9080/", //oaURL "file:" + findXmldata("AuthTemplate.html"), "http://localhost:3495/http-security-layer-request", - null, null); + null, null, null); htmlForm = killExclusive(htmlForm, "MOASessionID=","\"","DELETED"); //writeXmldata("htmlForm_out.html",htmlForm.getBytes("UTF-8")); assertEquals(readXmldata("htmlForm.html"),htmlForm); @@ -55,7 +55,7 @@ public class Test100StartAuthentication extends AbnahmeTestCase { "gb", //target "http://localhost:9080/", //oaURL null, - "http://localhost:3495/http-security-layer-request", null, null); + "http://localhost:3495/http-security-layer-request", null, null, null); htmlForm = killExclusive(htmlForm, "MOASessionID=","\"","DELETED"); //writeXmldata("htmlForm_out.html",htmlForm.getBytes("UTF-8")); assertEquals(readXmldata("htmlForm.html"),htmlForm); @@ -75,7 +75,7 @@ public class Test100StartAuthentication extends AbnahmeTestCase { "file:" + findXmldata("AuthTemplate.html"), null, null, - null); + null, null); htmlForm = killExclusive(htmlForm, "MOASessionID=","\"","DELETED"); //writeXmldata("htmlForm_out.html",htmlForm.getBytes("UTF-8")); assertEquals(readXmldata("htmlForm.html"),htmlForm); @@ -93,7 +93,7 @@ public class Test100StartAuthentication extends AbnahmeTestCase { server.startAuthentication(null, //authURL "gb", //target "http://localhost:9080/", //oaURL - null, null, null, null); + null, null, null, null, null); //assertEquals("",htmlForm); System.err.println(this.getName() + " hat KEINE FEHLER geworfen"); fail(this.getName() + " hat KEINE FEHLER geworfen"); @@ -113,7 +113,7 @@ public class Test100StartAuthentication extends AbnahmeTestCase { try { server.startAuthentication("http://localhost:8080/auth", //authURL "gb", "http://localhost:9080/", //oaURL - null, null, null, null); + null, null, null, null, null); System.err.println(this.getName() + " hat KEINE FEHLER geworfen"); fail(this.getName() + " hat KEINE FEHLER geworfen"); } @@ -131,7 +131,7 @@ public class Test100StartAuthentication extends AbnahmeTestCase { try { server.startAuthentication("https://localhost:8443/auth", //authURL "gb", "http://host_not_in_config/", //oaURL - null, null, null, null); + null, null, null, null, null); System.err.println(this.getName() + " hat KEINE FEHLER geworfen"); fail(this.getName() + " hat KEINE FEHLER geworfen"); } @@ -150,7 +150,7 @@ public class Test100StartAuthentication extends AbnahmeTestCase { try { server.startAuthentication("https://localhost:8443/auth", //authURL "gb", null, //oaURL - null, null, null, null); + null, null, null, null, null); System.err.println(this.getName() + " hat KEINE FEHLER geworfen"); fail(this.getName() + " hat KEINE FEHLER geworfen"); } @@ -169,7 +169,7 @@ public class Test100StartAuthentication extends AbnahmeTestCase { try { server.startAuthentication("https://localhost:8443/auth", //authURL null, "http://localhost:9080/", //oaURL - null, null, null, null); + null, null, null, null, null); System.err.println(this.getName() + " hat KEINE FEHLER geworfen"); fail(this.getName() + " hat KEINE FEHLER geworfen"); } diff --git a/id/server/idserverlib/src/test/java/test/abnahme/AbnahmeTestCase.java b/id/server/idserverlib/src/test/java/test/abnahme/AbnahmeTestCase.java index 23130f4c8..4ef3ad92f 100644 --- a/id/server/idserverlib/src/test/java/test/abnahme/AbnahmeTestCase.java +++ b/id/server/idserverlib/src/test/java/test/abnahme/AbnahmeTestCase.java @@ -131,6 +131,7 @@ public class AbnahmeTestCase extends MOAIDTestCase { null, null, null, + null, null); String sessionID = parseSessionIDFromForm(htmlForm); return sessionID; diff --git a/id/server/idserverlib/src/test/java/test/abnahme/P/Test100LoginParameterResolver.java b/id/server/idserverlib/src/test/java/test/abnahme/P/Test100LoginParameterResolver.java index ab2781590..248e5cc33 100644 --- a/id/server/idserverlib/src/test/java/test/abnahme/P/Test100LoginParameterResolver.java +++ b/id/server/idserverlib/src/test/java/test/abnahme/P/Test100LoginParameterResolver.java @@ -14,19 +14,8 @@ * limitations under the License. */ package test.abnahme.P; -import java.util.Map; - -import sun.misc.BASE64Decoder; import test.abnahme.AbnahmeTestCase; -import at.gv.egovernment.moa.id.config.proxy.OAConfiguration; -import at.gv.egovernment.moa.id.config.proxy.OAProxyParameter; -import at.gv.egovernment.moa.id.config.proxy.ProxyConfigurationProvider; -import at.gv.egovernment.moa.id.data.AuthenticationData; -import at.gv.egovernment.moa.id.proxy.LoginParameterResolver; -import at.gv.egovernment.moa.id.proxy.LoginParameterResolverFactory; -import at.gv.egovernment.moa.util.Base64Utils; - /** * @author Stefan Knirsch * @version $Id$ @@ -35,127 +24,127 @@ import at.gv.egovernment.moa.util.Base64Utils; public class Test100LoginParameterResolver extends AbnahmeTestCase { - private static final String CLIENT_IP_ADDRESS = "56.246.75.11"; - private OAConfiguration oaConf; - private LoginParameterResolver lpr; - +// private static final String CLIENT_IP_ADDRESS = "56.246.75.11"; +// private OAConfiguration oaConf; +// private LoginParameterResolver lpr; +// public Test100LoginParameterResolver(String name) { super(name); } - - private void setUp(String publicURLPrefix) - throws Exception { - - // get configuration data - ProxyConfigurationProvider proxyConf = ProxyConfigurationProvider.getInstance(); - OAProxyParameter oaParam = proxyConf.getOnlineApplicationParameter(publicURLPrefix); - oaConf = oaParam.getOaConfiguration(); - System.out.println("Parameterübergabe: " + oaConf.getAuthType()); - - // get login parameter resolver - LoginParameterResolverFactory.initialize(); - lpr = LoginParameterResolverFactory.getLoginParameterResolver(publicURLPrefix); - } - public void testP101() throws Exception { - try { - // read configuration and set up LoginParameterResolver - setUp("https://testP101:9443/"); - if (! oaConf.getAuthType().equals(OAConfiguration.BASIC_AUTH)) - fail(); - - // assemble authentication data - AuthenticationData authData = new AuthenticationData(); - authData.setFamilyName("Huber"); - authData.setGivenName("Hugo"); - - // resolve login headers - Map loginHeaders = lpr.getAuthenticationHeaders(oaConf, authData, CLIENT_IP_ADDRESS, false, ""); - - // validate login headers - assertEquals(1, loginHeaders.keySet().size()); - System.out.println("Header Authorization: " + loginHeaders.get("Authorization")); - System.out.println("Decoded UserID:Password " + - new String(new BASE64Decoder().decodeBuffer(((String)loginHeaders.get("Authorization")).substring(6)))); - String userIDPassword = "Hugo:Huber"; - String credentials = Base64Utils.encode(userIDPassword.getBytes()); - assertEquals("Basic " + credentials, loginHeaders.get("Authorization")); - System.out.println("-----------------------Testfall " + this.getName() + " erfolgreich abgearbeitet! -----------------------"); - } - catch (Exception e) { - System.err.println("------ FEHLER IN " + this.getName() + ":" + e.getLocalizedMessage()); - throw e; - } - - } - public void testP102() throws Exception { - try { - // read configuration and set up LoginParameterResolver - setUp("https://testP102:9443/"); - if (! oaConf.getAuthType().equals(OAConfiguration.PARAM_AUTH)) - fail(); - - // assemble authentication data - AuthenticationData authData = new AuthenticationData(); - String DATE_OF_BIRTH = "1963-12-29"; - String VPK = "kp6hOq6LRAkLtrqm6EvDm6bMwJw="; - authData.setDateOfBirth(DATE_OF_BIRTH); - authData.setBPK(VPK); - - // resolve login parameters - Map loginParameters = lpr.getAuthenticationParameters(oaConf, authData, CLIENT_IP_ADDRESS, false, ""); - - // validate login headers - assertEquals(2, loginParameters.keySet().size()); - System.out.println("Param1: " + loginParameters.get("Param1")); - System.out.println("Param2: " + loginParameters.get("Param2")); - assertEquals(DATE_OF_BIRTH, loginParameters.get("Param1")); - assertEquals(VPK, loginParameters.get("Param2")); - System.out.println("-----------------------Testfall " + this.getName() + " erfolgreich abgearbeitet! -----------------------"); - } - catch (Exception e) { - System.err.println("------ FEHLER IN " + this.getName() + ":" + e.getLocalizedMessage()); - throw e; - } - } - - public void testP103() throws Exception { - try { - // read configuration and set up LoginParameterResolver - setUp("https://localhost:9443/"); - if (! oaConf.getAuthType().equals(OAConfiguration.HEADER_AUTH)) - fail(); - - // assemble authentication data - AuthenticationData authData = new AuthenticationData(); - boolean PUBLIC_AUTH = true; - String BKZ = "FinanzamtWien23Leitstelle"; - boolean QUAL_CERT = false; - String STAMMZAHL = "3456789012"; - authData.setPublicAuthority(PUBLIC_AUTH); - authData.setPublicAuthorityCode(BKZ); - authData.setQualifiedCertificate(QUAL_CERT); - authData.setIdentificationValue(STAMMZAHL); - - // resolve login headers - Map loginHeaders = lpr.getAuthenticationHeaders(oaConf, authData, CLIENT_IP_ADDRESS, false, ""); - - // validate login headers - assertEquals(5, loginHeaders.keySet().size()); - System.out.println("Header Param1: " + loginHeaders.get("Param1")); - System.out.println("Header Param2: " + loginHeaders.get("Param2")); - System.out.println("Header Param3: " + loginHeaders.get("Param3")); - System.out.println("Header Param4: " + loginHeaders.get("Param4")); - System.out.println("Header Param5: " + loginHeaders.get("Param5")); - assertEquals(String.valueOf(PUBLIC_AUTH), loginHeaders.get("Param1")); - assertEquals(BKZ, loginHeaders.get("Param2")); - assertEquals(String.valueOf(QUAL_CERT), loginHeaders.get("Param3")); - assertEquals(STAMMZAHL, loginHeaders.get("Param4")); - assertEquals(CLIENT_IP_ADDRESS, loginHeaders.get("Param5")); - System.out.println("-----------------------Testfall " + this.getName() + " erfolgreich abgearbeitet! -----------------------"); - } - catch (Exception e) { - System.err.println("------ FEHLER IN " + this.getName() + ":" + e.getLocalizedMessage()); - throw e; - } - } +// +// private void setUp(String publicURLPrefix) +// throws Exception { +// +// // get configuration data +// ProxyConfigurationProvider proxyConf = ProxyConfigurationProvider.getInstance(); +// OAProxyParameter oaParam = proxyConf.getOnlineApplicationParameter(publicURLPrefix); +// oaConf = oaParam.getOaConfiguration(); +// System.out.println("Parameterübergabe: " + oaConf.getAuthType()); +// +// // get login parameter resolver +// LoginParameterResolverFactory.initialize(); +// lpr = LoginParameterResolverFactory.getLoginParameterResolver(publicURLPrefix); +// } +// public void testP101() throws Exception { +// try { +// // read configuration and set up LoginParameterResolver +// setUp("https://testP101:9443/"); +// if (! oaConf.getAuthType().equals(OAConfiguration.BASIC_AUTH)) +// fail(); +// +// // assemble authentication data +// AuthenticationData authData = new AuthenticationData(); +// authData.setFamilyName("Huber"); +// authData.setGivenName("Hugo"); +// +// // resolve login headers +// Map loginHeaders = lpr.getAuthenticationHeaders(oaConf, authData, CLIENT_IP_ADDRESS, false, ""); +// +// // validate login headers +// assertEquals(1, loginHeaders.keySet().size()); +// System.out.println("Header Authorization: " + loginHeaders.get("Authorization")); +// System.out.println("Decoded UserID:Password " + +// new String(new BASE64Decoder().decodeBuffer(((String)loginHeaders.get("Authorization")).substring(6)))); +// String userIDPassword = "Hugo:Huber"; +// String credentials = Base64Utils.encode(userIDPassword.getBytes()); +// assertEquals("Basic " + credentials, loginHeaders.get("Authorization")); +// System.out.println("-----------------------Testfall " + this.getName() + " erfolgreich abgearbeitet! -----------------------"); +// } +// catch (Exception e) { +// System.err.println("------ FEHLER IN " + this.getName() + ":" + e.getLocalizedMessage()); +// throw e; +// } +// +// } +// public void testP102() throws Exception { +// try { +// // read configuration and set up LoginParameterResolver +// setUp("https://testP102:9443/"); +// if (! oaConf.getAuthType().equals(OAConfiguration.PARAM_AUTH)) +// fail(); +// +// // assemble authentication data +// AuthenticationData authData = new AuthenticationData(); +// String DATE_OF_BIRTH = "1963-12-29"; +// String VPK = "kp6hOq6LRAkLtrqm6EvDm6bMwJw="; +// authData.setDateOfBirth(DATE_OF_BIRTH); +// authData.setBPK(VPK); +// +// // resolve login parameters +// Map loginParameters = lpr.getAuthenticationParameters(oaConf, authData, CLIENT_IP_ADDRESS, false, ""); +// +// // validate login headers +// assertEquals(2, loginParameters.keySet().size()); +// System.out.println("Param1: " + loginParameters.get("Param1")); +// System.out.println("Param2: " + loginParameters.get("Param2")); +// assertEquals(DATE_OF_BIRTH, loginParameters.get("Param1")); +// assertEquals(VPK, loginParameters.get("Param2")); +// System.out.println("-----------------------Testfall " + this.getName() + " erfolgreich abgearbeitet! -----------------------"); +// } +// catch (Exception e) { +// System.err.println("------ FEHLER IN " + this.getName() + ":" + e.getLocalizedMessage()); +// throw e; +// } +// } +// +// public void testP103() throws Exception { +// try { +// // read configuration and set up LoginParameterResolver +// setUp("https://localhost:9443/"); +// if (! oaConf.getAuthType().equals(OAConfiguration.HEADER_AUTH)) +// fail(); +// +// // assemble authentication data +// AuthenticationData authData = new AuthenticationData(); +// boolean PUBLIC_AUTH = true; +// String BKZ = "FinanzamtWien23Leitstelle"; +// boolean QUAL_CERT = false; +// String STAMMZAHL = "3456789012"; +// authData.setPublicAuthority(PUBLIC_AUTH); +// authData.setPublicAuthorityCode(BKZ); +// authData.setQualifiedCertificate(QUAL_CERT); +// authData.setIdentificationValue(STAMMZAHL); +// +// // resolve login headers +// Map loginHeaders = lpr.getAuthenticationHeaders(oaConf, authData, CLIENT_IP_ADDRESS, false, ""); +// +// // validate login headers +// assertEquals(5, loginHeaders.keySet().size()); +// System.out.println("Header Param1: " + loginHeaders.get("Param1")); +// System.out.println("Header Param2: " + loginHeaders.get("Param2")); +// System.out.println("Header Param3: " + loginHeaders.get("Param3")); +// System.out.println("Header Param4: " + loginHeaders.get("Param4")); +// System.out.println("Header Param5: " + loginHeaders.get("Param5")); +// assertEquals(String.valueOf(PUBLIC_AUTH), loginHeaders.get("Param1")); +// assertEquals(BKZ, loginHeaders.get("Param2")); +// assertEquals(String.valueOf(QUAL_CERT), loginHeaders.get("Param3")); +// assertEquals(STAMMZAHL, loginHeaders.get("Param4")); +// assertEquals(CLIENT_IP_ADDRESS, loginHeaders.get("Param5")); +// System.out.println("-----------------------Testfall " + this.getName() + " erfolgreich abgearbeitet! -----------------------"); +// } +// catch (Exception e) { +// System.err.println("------ FEHLER IN " + this.getName() + ":" + e.getLocalizedMessage()); +// throw e; +// } +// } } diff --git a/id/server/idserverlib/src/test/java/test/at/gv/egovernment/moa/id/auth/AuthenticationServerTest.java b/id/server/idserverlib/src/test/java/test/at/gv/egovernment/moa/id/auth/AuthenticationServerTest.java index f873f2c3f..db7aa9719 100644 --- a/id/server/idserverlib/src/test/java/test/at/gv/egovernment/moa/id/auth/AuthenticationServerTest.java +++ b/id/server/idserverlib/src/test/java/test/at/gv/egovernment/moa/id/auth/AuthenticationServerTest.java @@ -45,7 +45,7 @@ public class AuthenticationServerTest extends UnitTestCase { public void doTest(String testdataDirectory, String authURL, String target, String oaURL, String bkuURL, String templateURL) throws Exception { String testdataRoot = TESTDATA_ROOT + "xmldata/" + testdataDirectory + "/"; AuthenticationServer server = AuthenticationServer.getInstance(); - String htmlForm = server.startAuthentication(authURL, target, oaURL, templateURL, bkuURL, null, null); + String htmlForm = server.startAuthentication(authURL, target, oaURL, templateURL, bkuURL, null, null, null); String sessionID = parseSessionIDFromForm(htmlForm); String infoboxReadResponse = readFile(TESTDATA_ROOT + "xmldata/testperson1/" + "InfoboxReadResponse.xml"); HashMap parameters = new HashMap(1); diff --git a/pom.xml b/pom.xml index e60eeb382..c0df961d2 100644 --- a/pom.xml +++ b/pom.xml @@ -242,19 +242,19 @@ iaik.prod iaik_jce_full - 3.18_MOA + 4.0_MOA compile iaik.prod iaik_moa - 1.28 + 1.29 compile iaik.prod iaik_cms - 4.01_MOA + 4.1_MOA compile diff --git a/repository/iaik/prod/iaik_cms/4.1_MOA/iaik_cms-4.1_MOA.jar b/repository/iaik/prod/iaik_cms/4.1_MOA/iaik_cms-4.1_MOA.jar new file mode 100644 index 000000000..8d41ba860 Binary files /dev/null and b/repository/iaik/prod/iaik_cms/4.1_MOA/iaik_cms-4.1_MOA.jar differ diff --git a/repository/iaik/prod/iaik_cms/4.1_MOA/iaik_cms-4.1_MOA.pom b/repository/iaik/prod/iaik_cms/4.1_MOA/iaik_cms-4.1_MOA.pom new file mode 100644 index 000000000..19c21e912 --- /dev/null +++ b/repository/iaik/prod/iaik_cms/4.1_MOA/iaik_cms-4.1_MOA.pom @@ -0,0 +1,6 @@ + + 4.0.0 + iaik.prod + iaik_cms + 4.1_MOA + \ No newline at end of file diff --git a/repository/iaik/prod/iaik_cms/maven-metadata.xml b/repository/iaik/prod/iaik_cms/maven-metadata.xml index 8e46e3d1f..4a224aeab 100644 --- a/repository/iaik/prod/iaik_cms/maven-metadata.xml +++ b/repository/iaik/prod/iaik_cms/maven-metadata.xml @@ -1,13 +1,14 @@ iaik.prod iaik_cms - 4.0_MOA + 4.1_MOA - 4.0_MOA - 4.0_MOA + 4.1_MOA + 4.1_MOA 4.0_MOA 4.01_MOA + 4.1_MOA 20080423102941 diff --git a/repository/iaik/prod/iaik_jce_full/4.0_MOA/iaik_jce_full-4.0_MOA.jar b/repository/iaik/prod/iaik_jce_full/4.0_MOA/iaik_jce_full-4.0_MOA.jar new file mode 100644 index 000000000..bacb70edc Binary files /dev/null and b/repository/iaik/prod/iaik_jce_full/4.0_MOA/iaik_jce_full-4.0_MOA.jar differ diff --git a/repository/iaik/prod/iaik_jce_full/4.0_MOA/iaik_jce_full-4.0_MOA.pom b/repository/iaik/prod/iaik_jce_full/4.0_MOA/iaik_jce_full-4.0_MOA.pom new file mode 100644 index 000000000..9610b3951 --- /dev/null +++ b/repository/iaik/prod/iaik_jce_full/4.0_MOA/iaik_jce_full-4.0_MOA.pom @@ -0,0 +1,6 @@ + + 4.0.0 + iaik.prod + iaik_jce_full + 4.0_MOA + \ No newline at end of file diff --git a/repository/iaik/prod/iaik_jce_full/maven-metadata-central.xml b/repository/iaik/prod/iaik_jce_full/maven-metadata-central.xml index c277a0cab..2726eb212 100644 --- a/repository/iaik/prod/iaik_jce_full/maven-metadata-central.xml +++ b/repository/iaik/prod/iaik_jce_full/maven-metadata-central.xml @@ -1,13 +1,14 @@ iaik.prod iaik_jce_full - 3.18_MOA + 4.0_MOA - 3.18_MOA + 4.0_MOA 3.18_MOA 3.16_MOA 3.18_MOA + 4.0_MOA 20090810170702 diff --git a/repository/iaik/prod/iaik_jce_full/maven-metadata.xml b/repository/iaik/prod/iaik_jce_full/maven-metadata.xml index c277a0cab..f3091eb4f 100644 --- a/repository/iaik/prod/iaik_jce_full/maven-metadata.xml +++ b/repository/iaik/prod/iaik_jce_full/maven-metadata.xml @@ -1,13 +1,14 @@ iaik.prod iaik_jce_full - 3.18_MOA + 4.0_MOA - 3.18_MOA - 3.18_MOA + 4.0_MOA + 4.0_MOA 3.16_MOA 3.18_MOA + 4.0_MOA 20090810170702 diff --git a/repository/iaik/prod/iaik_moa/1.29/iaik_moa-1.29.jar b/repository/iaik/prod/iaik_moa/1.29/iaik_moa-1.29.jar new file mode 100644 index 000000000..95a6773a6 Binary files /dev/null and b/repository/iaik/prod/iaik_moa/1.29/iaik_moa-1.29.jar differ diff --git a/repository/iaik/prod/iaik_moa/1.29/iaik_moa-1.29.pom b/repository/iaik/prod/iaik_moa/1.29/iaik_moa-1.29.pom new file mode 100644 index 000000000..e94fe3f49 --- /dev/null +++ b/repository/iaik/prod/iaik_moa/1.29/iaik_moa-1.29.pom @@ -0,0 +1,6 @@ + + 4.0.0 + iaik.prod + iaik_moa + 1.29 + \ No newline at end of file diff --git a/repository/iaik/prod/iaik_moa/maven-metadata-MOA.xml b/repository/iaik/prod/iaik_moa/maven-metadata-MOA.xml index 1126afd0e..32e4aad37 100644 --- a/repository/iaik/prod/iaik_moa/maven-metadata-MOA.xml +++ b/repository/iaik/prod/iaik_moa/maven-metadata-MOA.xml @@ -9,6 +9,7 @@ 1.26 1.27 1.28 + 1.29 20090810074128 diff --git a/repository/iaik/prod/iaik_moa/maven-metadata-local.xml b/repository/iaik/prod/iaik_moa/maven-metadata-local.xml index ba853331b..ced753edc 100644 --- a/repository/iaik/prod/iaik_moa/maven-metadata-local.xml +++ b/repository/iaik/prod/iaik_moa/maven-metadata-local.xml @@ -2,10 +2,10 @@ iaik.prod iaik_moa - 1.28 + 1.29 - 1.28 + 1.29 20100618102247 diff --git a/spss/pom.xml b/spss/pom.xml index ce76a939d..c5ecda04d 100644 --- a/spss/pom.xml +++ b/spss/pom.xml @@ -10,7 +10,7 @@ MOA spss pom - 1.5.x + 1.5.0 MOA SP/SS diff --git a/spss/server/history.txt b/spss/server/history.txt index 8230358e9..52790e1d1 100644 --- a/spss/server/history.txt +++ b/spss/server/history.txt @@ -4,7 +4,9 @@ - Fixed Bug #548 (http://egovlabs.gv.at/tracker/index.php?func=detail&aid=548&group_id=6&atid=105) - IAIK Libraries aktualisiert: - iaik-moa: @TODO + iaik-moa: Version 1.29 + iaik_jce_full: Version 4.0_MOA + iaik_cms: Version 4.1_MOA ############## diff --git a/spss/server/readme.update.txt b/spss/server/readme.update.txt index 56015c35d..703de0dc0 100644 --- a/spss/server/readme.update.txt +++ b/spss/server/readme.update.txt @@ -1,11 +1,11 @@ ====================================================================== - Update einer bestehenden MOA-SPSS-Installation auf Version 1.4.8 + Update einer bestehenden MOA-SPSS-Installation auf Version 1.5.0 ====================================================================== Es gibt zwei Möglichkeiten (im Folgenden als "Update Variante A" und "Update Variante B" bezeichnet), das Update von MOA-SPSS auf Version -1.4.8 durchzuführen. Update Variante A geht dabei den Weg über eine +1.5.0 durchzuführen. Update Variante A geht dabei den Weg über eine vorangestellte Neuinstallation, während Variante B direkt eine bestehende Installation aktualisiert. @@ -16,7 +16,7 @@ JAVA_HOME bezeichnet das Wurzelverzeichnis der JDK-Installation CATALINA_HOME bezeichnet das Wurzelverzeichnis der Tomcat-Installation MOA_SPSS_INST bezeichnet das Verzeichnis, in das Sie die Datei -moa-spss-1.4.8.zip entpackt haben. +moa-spss-1.5.0.zip entpackt haben. ================= Update Variante A @@ -53,7 +53,7 @@ Update Variante B 1.) Erstellen Sie eine Sicherungskopie des kompletten Tomcat-Verzeichnisses Ihrer MOA-SPSS-Installation. -2.) Entpacken Sie die Datei "moa-spss-1.4.8.zip" in das Verzeichnis MOA_SPSS_INST. +2.) Entpacken Sie die Datei "moa-spss-1.5.0.zip" in das Verzeichnis MOA_SPSS_INST. 3.) Erstellen Sie eine Sicherungskopie aller "iaik*.jar"-Dateien im Verzeichnis JAVA_HOME\jre\lib\ext und löschen Sie diese Dateien danach. diff --git a/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/DataObjectFactory.java b/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/DataObjectFactory.java index 566784796..f6b8b4392 100644 --- a/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/DataObjectFactory.java +++ b/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/DataObjectFactory.java @@ -27,10 +27,11 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Vector; import javax.xml.parsers.ParserConfigurationException; +import org.apache.xerces.dom.CoreDocumentImpl; +import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -70,19 +71,30 @@ import at.gv.egovernment.moa.util.XPathUtils; /** * A class to create DataObjects contained in different * locations of the MOA XML request format. - * + * * @author Patrick Peck * @author Gregor Karlinger * @version $Id$ */ public class DataObjectFactory { + /** + * XPATH for registering ID attributes of known schemas if + * validating parsing fails. + */ + private static final String XPATH = + "descendant-or-self::node()[" + + "namespace-uri()='http://www.w3.org/2000/09/xmldsig#' " + + "or namespace-uri()='http://reference.e-government.gv.at/namespace/persondata/20020228#' " + + "or starts-with(namespace-uri(), 'http://uri.etsi.org/01903/')" + + "]/attribute::Id"; + /** The single instance of this class. */ private static DataObjectFactory instance = null; /** * Return the only instance of this class. - * + * * @return The only instance of this class. */ public static synchronized DataObjectFactory getInstance() { @@ -94,7 +106,7 @@ public class DataObjectFactory { /** * Create a new DataObjectFactory. - * + * * Protected to disallow multiple instances. */ protected DataObjectFactory() { @@ -104,8 +116,8 @@ public class DataObjectFactory { * Return the signature environment, i.e., the root element of the * document, into which the signature will be inserted (if created) or which * contains the signature (if verified). - * - * @param content The Content object containing the signature + * + * @param content The Content object containing the signature * environment. * @param supplements Additional schema or DTD information. * @return The signature environment or null, if no @@ -128,7 +140,7 @@ public class DataObjectFactory { checkAllowContentAndReference(content, false); // build the EntityResolver for validating parsing - if (supplements == null || supplements.isEmpty()) { + if ((supplements == null) || supplements.isEmpty()) { entityResolver = new MOAEntityResolver(); } else { EntityResolverChain chain = new EntityResolverChain(); @@ -195,7 +207,7 @@ public class DataObjectFactory { Element element = checkForSingleElement(((ContentXML) content).getXMLContent()); contentBytes = DOMUtils.serializeNode(element, "UTF-8"); - + break; } default : { @@ -208,25 +220,27 @@ public class DataObjectFactory { throw new MOAApplicationException("2219", null); } - // For logging in Debug-Mode: Mask baseid with xxx - String logString = new String(contentBytes); - // TODO use RegExp - String startS = ""; - String endS = "urn:publicid:gv.at:baseid"; - String logWithMaskedBaseid = logString; - int start = logString.indexOf(startS); - if (start > -1) { - int end = logString.indexOf(endS); - if (end > -1) { + if (Logger.isTraceEnabled()) { + // For logging in Debug-Mode: Mask baseid with xxx + String logString = new String(contentBytes); + // TODO use RegExp + String startS = ""; + String endS = "urn:publicid:gv.at:baseid"; + String logWithMaskedBaseid = logString; + int start = logString.indexOf(startS); + if (start > -1) { + int end = logString.indexOf(endS); + if (end > -1) { logWithMaskedBaseid = logString.substring(0, start); logWithMaskedBaseid += startS; logWithMaskedBaseid += "xxxxxxxxxxxxxxxxxxxxxxxx"; logWithMaskedBaseid += logString.substring(end, logString.length()); - } + } + } + + // try to parse validating + Logger.trace(">>> parsing the following content: \n" + logWithMaskedBaseid); } - - // try to parse validating - Logger.trace(">>> parsing the following content: \n" + logWithMaskedBaseid); try { ByteArrayInputStream is = new ByteArrayInputStream(contentBytes); Document doc = @@ -250,6 +264,21 @@ public class DataObjectFactory { try { ByteArrayInputStream is = new ByteArrayInputStream(contentBytes); Document doc = DOMUtils.parseDocument(is, false, null, null); + // Since the parse tree will not contain any post schema validation information, + // we need to register any attributes known to be of type xsd:Id manually. + NodeList idAttributes = XPathUtils.selectNodeList(doc.getDocumentElement(), XPATH); + for (int i = 0; i < idAttributes.getLength(); i++) { + Node item = idAttributes.item(i); + if (item instanceof Attr) { + Attr attr = (Attr) item; + Element owner = attr.getOwnerElement(); + // Only available in DOM-Level 3 (Java 1.5): + // owner.setIdAttributeNode(attr, true); + if (doc instanceof CoreDocumentImpl) { + ((CoreDocumentImpl) doc).putIdentifier(attr.getValue(), owner); + } + } + } return new XMLDataObjectImpl(doc.getDocumentElement()); } catch (Exception e) { throw new MOAApplicationException("2218", null); @@ -258,11 +287,11 @@ public class DataObjectFactory { /** * Create an XMLDataObject from the given signature environment. - * + * * @param signatureEnvironment The signature environment contained in the * result. * @param uri The URI identifying the data. This must be either the empty - * URI, an URI starting with "#xpointer", "#xmlns" + * URI, an URI starting with "#xpointer", "#xmlns" * or "#element"; or an URI starting with "#" and * followed by an element ID. * @param referenceID The reference ID to set for the data object. @@ -312,16 +341,16 @@ public class DataObjectFactory { } /** - * Build a StreamEntityResolver from a List of + * Build a StreamEntityResolver from a List of * supplements. - * - * @param supplements The supplements, given as + * + * @param supplements The supplements, given as * XMLDataObjectAssociations. * @return A StreamEntityResolver mapping the supplements by * their reference URI to an InputStream of their respective - * content. + * content. */ - private static StreamEntityResolver buildSupplementEntityResolver(List supplements) + private static StreamEntityResolver buildSupplementEntityResolver(List supplements) throws MOAApplicationException { Map entities = new HashMap(); @@ -342,10 +371,10 @@ public class DataObjectFactory { case Content.LOCREF_CONTENT: { String locRefURI = ((ContentLocRef) content).getLocationReferenceURI(); - + TransactionContext context = TransactionContextManager.getInstance().getTransactionContext(); if (context.FindResolvedEntity(locRefURI)==null) { - + ExternalURIResolver uriResolver = new ExternalURIResolver(); InputStream uriStream = null; byte[] contentBytes; @@ -378,17 +407,18 @@ public class DataObjectFactory { int i = 0; // find the first element node - while (i < nodes.getLength() - && nodes.item(i).getNodeType() != Node.ELEMENT_NODE) + while ((i < nodes.getLength()) + && (nodes.item(i).getNodeType() != Node.ELEMENT_NODE)) { i++; + } // serialize the node if (i < nodes.getLength()) { - try + try { byte[] serialized = DOMUtils.serializeNode(nodes.item(i), "UTF-8"); entities.put(reference, new ByteArrayInputStream(serialized)); - } + } catch (Exception e) { throw new MOAApplicationException("2281", new Object[]{reference}, e); @@ -404,7 +434,7 @@ public class DataObjectFactory { /** * Create a DataObject from a Content object. - * + * * @param content The Content object containing the data. * @param finalDataMetaInfo The meta information corresponding with content. * @param referenceID The reference ID to set in the resulting @@ -452,10 +482,10 @@ public class DataObjectFactory { checkAllowContentAndReference(content, allowContentAndReference); // ok, build the data object; use content first, if available - switch (content.getContentType()) + switch (content.getContentType()) { case Content.XML_CONTENT : - { + { ContentXML contentXml = (ContentXML) content; dataObject = createFromXmlContent(contentXml, xmlAsNodeList); break; @@ -499,7 +529,7 @@ public class DataObjectFactory { /** * Check, if content and reference URIs are allowed in the content an throw * an exception if an illegal combination of the two occurs. - * + * * @param content The Content to check. * @param allowContentAndReference Whether explicit content and a reference * are allowed at the same time. @@ -514,13 +544,13 @@ public class DataObjectFactory { String reference = content.getReference(); // check for content and reference not being set - if (content.getContentType() == Content.REFERENCE_CONTENT - && reference == null) { + if ((content.getContentType() == Content.REFERENCE_CONTENT) + && (reference == null)) { String errorCode = allowContentAndReference ? "1111" : "1110"; throw new MOAApplicationException(errorCode, null); } - // if we only allow either content or reference being set at once, check + // if we only allow either content or reference being set at once, check if (!allowContentAndReference && (content.getContentType() != Content.REFERENCE_CONTENT) && (reference != null)) { @@ -531,10 +561,10 @@ public class DataObjectFactory { /** * Create a DataObject from a * XMLDataObjectAssociation object. - * + * * @param xmlDataObjAssoc The XMLDataObjectAssociation object. * @param xmlContentAllowed Whether the content contained in the - * xmlDataObjAssoc is allowed to be of type + * xmlDataObjAssoc is allowed to be of type * XML_CONTENT. * @param binaryContentRepeatable If binary content must be provided as a * DataObject that can be read multiple times. @@ -559,11 +589,11 @@ public class DataObjectFactory { switch (content.getContentType()) { case Content.XML_CONTENT : - { + { if (xmlContentAllowed) { dataObject = createFromXmlContent((ContentXML) content, true); - } + } else { throw new MOAApplicationException("2280", null); @@ -601,8 +631,8 @@ public class DataObjectFactory { /** * Create a DataObject from a TransformParameter * object. - * - * @param transformParameter The TransformParameter object + * + * @param transformParameter The TransformParameter object * containing the data. * @return A DataObject representing the data in * root. @@ -662,7 +692,7 @@ public class DataObjectFactory { /** * Create a DataObject from data located at the given URI. - * + * * @param uri The URI where the data is located. This method uses * an ExternalURIResolver to resolve URIs. * @param asXml If true, a DataObject is only @@ -682,7 +712,7 @@ public class DataObjectFactory { /** * Create a DataObject from data located at the given URI. - * + * * @param uri The URI where the data is located. This method uses * an ExternalURIResolver to resolve URIs. * @param asXml If true, a DataObject is only @@ -701,7 +731,7 @@ public class DataObjectFactory { Logger.trace(">>> resolving uri \"" + uri + "\""); ExternalURIResolver resolver = new ExternalURIResolver(); - + TransactionContext context = TransactionContextManager.getInstance().getTransactionContext(); InputStream is = context.ResolveURI(uri); String contentType = null; @@ -718,12 +748,12 @@ public class DataObjectFactory { DataObjectImpl dataObject; // read the content - if (contentType != null && contentTypeIsXml(contentType)) { + if ((contentType != null) && contentTypeIsXml(contentType)) { Document doc; if (asXml) { try { - // try parsing non-validating: this has to succeed or we + // try parsing non-validating: this has to succeed or we // bail out by throwing an exception is = resolver.resolve(uri); doc = DOMUtils.parseDocument(is, false, null, null); @@ -767,14 +797,14 @@ public class DataObjectFactory { Logger.trace(">>> read stream for \"" + uri + "\""); } } - } - - else if (asXml) + } + + else if (asXml) { // if we need XML data, we're in the wrong place here closeInputStream(is); throw new MOAApplicationException("2211", new Object[] { uri }); - } + } else { // content is binary: make it available as a binary input stream @@ -805,20 +835,22 @@ public class DataObjectFactory { dataObject.setURI(uri); Logger.trace("<<< resolved uri \"" + uri + "\""); - + return dataObject; } /** * Savely closes the specified input stream. - * + * * @param is The input stream to be closed. */ private static void closeInputStream(InputStream is) { try { - if (is != null) is.close(); + if (is != null) { + is.close(); + } } catch (Throwable t) { @@ -828,10 +860,10 @@ public class DataObjectFactory { /** * Determine whether the content type is XML. - * + * * Content types recognized as XML start with text/xml and * application/xml. - * + * * @param contentType The content MIME type. * @return boolean If true, the content type is XML, otherwise * not. @@ -842,8 +874,8 @@ public class DataObjectFactory { } /** - * Create a DataObject from a ContentXML object. - * + * Create a DataObject from a ContentXML object. + * * @param xmlContent The ContentXML object from * which the DataObject is to be built. * @param xmlAsNodeList If true, the children of @@ -879,7 +911,7 @@ public class DataObjectFactory { /** * Check, that the given NodeList contains a single DOM element * node and return it, otherwise throw an exception. - * + * * @param nodes The NodeList to check for a single element. * @return The single element contained in nodes. * @throws MOAApplicationException Thrown, if nodes does not @@ -912,11 +944,11 @@ public class DataObjectFactory { /** * Create a DataObject from a ContentBinary object. - * + * * @param binaryContent The ContentBinary object containing the * data. * @param asXml If true, binaryContent must - * contain XML data. Otherwise, a BinaryDataObject will be + * contain XML data. Otherwise, a BinaryDataObject will be * returned containing a byte stream to the decoded Base64 data. * @param repeatable If multiple calls to getInputStream() must * repeatedly return the content of the data object. -- cgit v1.2.3 From 48241a89651341097fcc77aac4cc0333820f330d Mon Sep 17 00:00:00 2001 From: tkellner Date: Thu, 7 Apr 2011 15:34:45 +0000 Subject: Typos fixed git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@1201 d688527b-c9ab-4aba-bd8d-4036d912da1d --- id/server/doc/moa_id/id-admin_2.htm | 32 ++++++++++++++++---------------- id/server/doc/moa_id/moa.htm | 2 +- 2 files changed, 17 insertions(+), 17 deletions(-) (limited to 'id/server/doc/moa_id/moa.htm') diff --git a/id/server/doc/moa_id/id-admin_2.htm b/id/server/doc/moa_id/id-admin_2.htm index bc4709f02..6e5dec828 100644 --- a/id/server/doc/moa_id/id-admin_2.htm +++ b/id/server/doc/moa_id/id-admin_2.htm @@ -128,8 +128,8 @@ Projekt moa 

      Der Ort der Konfigurationsdatei wird im Abschnitt Deployment der Web-Applikation in Tomcat beschrieben.

      Enthält die Konfigurationsdatei relative Pfadangaben, werden - diese relativ zum Verzeichnis, in dem sich die MOA-ID Konfigurationsdatei - befindet, interpretiert.
      + diese relativ zum Verzeichnis in dem sich die MOA-ID Konfigurationsdatei + befindet interpretiert.

      ConnectionParameter
      @@ -531,7 +531,7 @@ Projekt moa 

      AuthComponent/ForeignIdentities
      -Ab Version 1.4.7 bietet MOA-ID die Möglichkeit der Nutzung von ausländischen Karten. Hierfür ist ein Stammzahlenregister-Gateway nötig, dass einen entsprechenden Zugang zum Stammzahlenregister bereitstellt. Es ist hierzu ein ensprechender ConnectionParameter zu definieren, der die Zugangsdaten zum Gateway bereithält (siehe ConnectionParameter). In der Default-Konfiguration ist der Zugang zum Stammzahlenregister-Gateway bereits aktiviert. Es muss nur noch das Client-Zertifikat für die SSL-Verbinung zum Gateway angegeben werden. Voraussetzung dafür ist ein Zertifikat von A-Trust bzw. A-CERT mit Verwaltungseigenschaft oder Dienstleistereigenschaft. Wenn ihr MOA-ID Zertifikat diese Voraussetzung erfüllt, können Sie dieses hier angeben.
      +Ab Version 1.4.7 bietet MOA-ID die Möglichkeit der Nutzung von ausländischen Karten. Hierfür ist ein Stammzahlenregister-Gateway nötig, das einen entsprechenden Zugang zum Stammzahlenregister bereitstellt. Es ist hierzu ein entsprechender ConnectionParameter zu definieren, der die Zugangsdaten zum Gateway bereithält (siehe ConnectionParameter). In der Default-Konfiguration ist der Zugang zum Stammzahlenregister-Gateway bereits aktiviert. Es muss nur noch das Client-Zertifikat für die SSL-Verbinung zum Gateway angegeben werden. Voraussetzung dafür ist ein Zertifikat von A-Trust bzw. A-CERT mit Verwaltungseigenschaft oder Dienstleistereigenschaft. Wenn ihr MOA-ID Zertifikat diese Voraussetzung erfüllt, können Sie dieses hier angeben.

      AuthComponent/OnlineMandates

      Ab Version 1.5.0 bietet MOA-ID die Möglichkeit der Nutzung von Online-Vollmachten für Anwendungen aus dem öffentlichen Bereich. Hierfür ist ein Online-Vollmachten-Service nötig. Es ist hierzu ein ensprechender ConnectionParameter zu definieren, der die Zugangsdaten zum Online-Vollmachten-Service bereithält (siehe ConnectionParameter). In der Default-Konfiguration ist der Zugang zum Online-Vollmachten-Service bereits aktiviert. Es muss nur noch das Client-Zertifikat für die SSL-Verbinung zum Service angegeben werden. Voraussetzung dafür ist ein Zertifikat von A-Trust bzw. A-CERT mit Verwaltungseigenschaft oder Dienstleistereigenschaft. Wenn ihr MOA-ID Zertifikat diese Voraussetzung erfüllt, können Sie dieses hier angeben.
      @@ -853,8 +853,8 @@ Hinweis: Um den Online-Vollmachten Modus für eine Online Applikation zu akt
    • ApplicationSpecificParameters: - Lokal definierte applikationsspezifische Paramter werden global - definierten vorgezogen. Sind lokal keine derartigen Paramter + Lokal definierte applikationsspezifische Parameter werden global + definierten vorgezogen. Sind lokal keine derartigen Parameter konfiguriert, so werden die globalen verwendet, so sie vorhanden sind.
    • @@ -883,7 +883,7 @@ Hinweis: Um den Online-Vollmachten Modus für eine Online Applikation zu akt sind für die Verifikation dieser Infobox nicht erforderlich.
      Die Prüfapplikation für die InfoboxB setzt nahezu alle - möglichen Paramter mit Ausnahme der Validator-Klasse. MOA-ID wird + möglichen Parameter mit Ausnahme der Validator-Klasse. MOA-ID wird zur Verifikation dieser Infobox also auch die dafür zustädige Default-Klasse (at.gv.egovernment.moa.id.auth.validator.infoboxb.InfoboxBValidator) laden, und alle konfigurierten Parameter an diese Klasse übergeben. @@ -895,7 +895,7 @@ Hinweis: Um den Online-Vollmachten Modus für eine Online Applikation zu akt die drei Infoboxen InfoboxB, InfoboxC und InfoboxD. Das heißt, MOA-ID kann für die Online-Applikation OA1 insgesamt vier Infoboxen überprüfen: die - Paramter für die Infobox InfoboxA werden + Parameter für die Infobox InfoboxA werden von der entsprechenden global konfigurierten Prüapplikation übernommen. Die Infoboxen InfoboxC und InfoboxD sind nur lokal gesetzt. Für InfoboxB @@ -933,10 +933,10 @@ Hinweis: Um den Online-Vollmachten Modus für eine Online Applikation zu akt

      OnlineApplication/AuthComponent/Mandates
      - Mit Hilfe diese Elements werden die Online-Vollmachten für die Online-Applikation aktiviert. - Als Kindelement muss Profiles angegeben werden. Diese Element beinhaltet eine (Komma-separierte) - Liste von Vollmachten-Identifikatoren, die festlegen mit welchen Vollmachtstyp man sich bei der Online-Applikation anmelden kann.
      - Hinweis: Hierzu muss auch die Verbindung zum Online-Vollmachten Service konfigurieren - siehe hier + Mit Hilfe dieses Elements werden die Online-Vollmachten für die Online-Applikation aktiviert. + Als Kindelement muss Profiles angegeben werden. Dieses Element beinhaltet eine (Komma-separierte) + Liste von Vollmachten-Identifikatoren, die festlegen mit welchen Vollmachtstypen man sich bei der Online-Applikation anmelden kann.
      + Hinweis: Hierzu muss auch die Verbindung zum Online-Vollmachten Service konfiguriert werden - siehe hier

      @@ -1170,13 +1170,13 @@ Hinweis: Um den Online-Vollmachten Modus für eine Online Applikation zu akt
      -
      +

      TrustedBKUs
      Das Element TrustedBKUs ermöglicht das Setzen von vertrauenswürdigen Bürgerkartenumgebungen. - In BKUURL Unterelementen werden die vertrauenswürdigen URLs eingetragen. Diese Liste an URL wird mit dem Parameter bkuURI abgeglichen. Lokale Bürgerkartenumgebungn müssen nicht eingetragen werden - diesen wird automatisch vertraut. -

      -
      + In BKUURL Unterelementen werden die vertrauenswürdigen URLs eingetragen. Diese Liste von URLs wird mit dem Parameter bkuURI abgeglichen. Lokale Bürgerkartenumgebungen müssen nicht eingetragen werden - diesen wird automatisch vertraut. +

      +
    @@ -1243,7 +1243,7 @@ kann ein oder mehrere Kind-Elemente <Parameter> beinhalten.

    ParamAuth/Parameter
    -Das Element <Paramter> enthält die Attribute Name und Value. +Das Element <Parameter> enthält die Attribute Name und Value.

    Das Attribut Name beschreibt den Namen des Parameters und ist ein frei zu wählender String.

    diff --git a/id/server/doc/moa_id/moa.htm b/id/server/doc/moa_id/moa.htm index e0da90e98..b3633736e 100644 --- a/id/server/doc/moa_id/moa.htm +++ b/id/server/doc/moa_id/moa.htm @@ -230,7 +230,7 @@ an den Benutzer weitergeleitet und die Anfragen des Benutzers an die OA weiterge

    Ergänzung für ausländische Bürger

    Ab der MOA Release 1.4.7 ist es möglich, dass sich auch ausländische Bürger mittels MOA-ID einloggen können. Hierzu wird eine Verbindung zu einem sogenannten Stammzahlenregister-Gateway aufgebaut, dass basierend auf den Zertifikatsdaten des ausländischen Bürgers eine Eintragung im Ergänzungsregister für natürliche Personen gemäß E-Government Gesetz §6(5) vornimmt. Somit ist es möglich, dass eine Personenbindung ausgestellt werden kann, die in weitere Folge an MOA-ID weitergeleitet wird.

    -

    Der Zugang zu diesem Stammzahlenregister-Gateways ist über eine Client-Server Authentifizierung abgesichert. Als Client-Zertifikate werden Zertifikate der Firmen A-Trust bzw. A-CERT, die mit der Verwaltungs- oder Dienstleistereigenschaft versehen sind, akzeptiert.

    +

    Der Zugang zu diesem Stammzahlenregister-Gateway ist über eine Client-Server Authentifizierung abgesichert. Als Client-Zertifikate werden Zertifikate der Firmen A-Trust bzw. A-CERT, die mit der Verwaltungs- oder Dienstleistereigenschaft versehen sind, akzeptiert.

    Online-Vollmachten
    -- cgit v1.2.3 From 6571af05b7574f6d752890301b9743b1243a05bd Mon Sep 17 00:00:00 2001 From: kstranacher Date: Tue, 11 Oct 2011 16:02:54 +0000 Subject: MOA-ID: * Fixed Bug #557 * Update Konfiguration: Target via Konfig fix konfigurierbar * Update Doku Common: * DOMUtils: Parser disabled external entities git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@1219 d688527b-c9ab-4aba-bd8d-4036d912da1d --- .../java/at/gv/egovernment/moa/util/DOMUtils.java | 14 ++++++- .../schemas/MOA-ID-Configuration-1.5.1.xsd | 3 +- id/history.txt | 6 ++- id/server/auth/src/main/webapp/iframeHandyBKU.html | 6 +-- .../auth/src/main/webapp/iframeOnlineBKU.html | 11 ++--- id/server/auth/src/main/webapp/index.html | 14 ++----- id/server/doc/MOA-ID-Configuration-1.5.1.xsd | 3 +- id/server/doc/MOA_ID_1.5_Anhang.pdf | Bin 0 -> 70517 bytes id/server/doc/moa_id/id-admin_2.htm | 5 ++- id/server/doc/moa_id/moa.htm | 5 +-- .../moa/id/auth/AuthenticationServer.java | 16 ++++++-- .../AuthenticationBlockAssertionBuilder.java | 11 ++++- .../moa/id/auth/data/AuthenticationSession.java | 40 ++++++++++++++++++ .../auth/parser/IdentityLinkAssertionParser.java | 14 +++++-- .../moa/id/auth/servlet/SelectBKUServlet.java | 33 +++++++++++++-- .../auth/servlet/StartAuthenticationServlet.java | 45 ++++++++++++--------- .../CreateXMLSignatureResponseValidator.java | 18 +++++++-- .../moa/id/config/ConfigurationBuilder.java | 23 ++++++++++- .../gv/egovernment/moa/id/config/OAParameter.java | 40 ++++++++++++++++++ .../test/abnahme/A/Test100StartAuthentication.java | 12 ++++-- .../test/java/test/abnahme/AbnahmeTestCase.java | 1 + .../moa/id/auth/AuthenticationServerTest.java | 2 +- .../AuthenticationBlockAssertionBuilderTest.java | 2 +- pom.xml | 2 +- 24 files changed, 252 insertions(+), 74 deletions(-) create mode 100644 id/server/doc/MOA_ID_1.5_Anhang.pdf (limited to 'id/server/doc/moa_id/moa.htm') diff --git a/common/src/main/java/at/gv/egovernment/moa/util/DOMUtils.java b/common/src/main/java/at/gv/egovernment/moa/util/DOMUtils.java index 5fa31336b..13c2809ac 100644 --- a/common/src/main/java/at/gv/egovernment/moa/util/DOMUtils.java +++ b/common/src/main/java/at/gv/egovernment/moa/util/DOMUtils.java @@ -110,6 +110,16 @@ public class DOMUtils { * without a namespace. */ private static final String EXTERNAL_NO_NAMESPACE_SCHEMA_LOCATION_PROPERTY = "http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation"; + + private static final String EXTERNAL_GENERAL_ENTITIES_FEATURE = + "http://xml.org/sax/features/external-general-entities"; + + private static final String EXTERNAL_PARAMETER_ENTITIES_FEATURE = + "http://xml.org/sax/features/external-parameter-entities"; + + + + /** Property URI for the Xerces grammar pool. */ private static final String GRAMMAR_POOL = org.apache.xerces.impl.Constants.XERCES_PROPERTY_PREFIX @@ -234,8 +244,8 @@ public class DOMUtils { parser.setFeature(NORMALIZED_VALUE_FEATURE, false); parser.setFeature(INCLUDE_IGNORABLE_WHITESPACE_FEATURE, true); parser.setFeature(CREATE_ENTITY_REF_NODES_FEATURE, false); - //parser.setFeature("http://xml.org/sax/features/external-general-entities", false); - //parser.setFeature("http://xml.org/sax/features/external-parameter-entities", false); + parser.setFeature(EXTERNAL_GENERAL_ENTITIES_FEATURE, false); + parser.setFeature(EXTERNAL_PARAMETER_ENTITIES_FEATURE, false); if (validating) { if (externalSchemaLocations != null) { diff --git a/common/src/main/resources/resources/schemas/MOA-ID-Configuration-1.5.1.xsd b/common/src/main/resources/resources/schemas/MOA-ID-Configuration-1.5.1.xsd index f8c38bdd3..cc562187a 100644 --- a/common/src/main/resources/resources/schemas/MOA-ID-Configuration-1.5.1.xsd +++ b/common/src/main/resources/resources/schemas/MOA-ID-Configuration-1.5.1.xsd @@ -1,5 +1,4 @@ - @@ -137,6 +136,8 @@ + + diff --git a/id/history.txt b/id/history.txt index 8d88f1bb1..6a5e363f7 100644 --- a/id/history.txt +++ b/id/history.txt @@ -8,10 +8,12 @@ History MOA-ID: Version MOA-ID 1.5.1: Änderungen seit Version MOA-ID 1.5.0: - Fixed Bug #556 (https://egovlabs.gv.at/tracker/index.php?func=detail&aid=556&group_id=6&atid=105) -- Fixed Bug @TODO Apostroph +- Fixed Bug #557 (https://egovlabs.gv.at/tracker/index.php?func=detail&aid=557&group_id=6&atid=105) - Update Einbindung Online-Vollmachten (Vor Auswahl der Vollmacht werden die Signaturdaten signiert) - Update Transformationen (für Online-Vollmachten) -- Änderung der Konfiguration für Online-Vollmachten +- Änderung der Konfiguration + - für Online-Vollmachten + - Fixer Target-Parameter für Online-Applikation konfigurierbar ===== diff --git a/id/server/auth/src/main/webapp/iframeHandyBKU.html b/id/server/auth/src/main/webapp/iframeHandyBKU.html index a7e541b85..f07b73265 100644 --- a/id/server/auth/src/main/webapp/iframeHandyBKU.html +++ b/id/server/auth/src/main/webapp/iframeHandyBKU.html @@ -8,13 +8,11 @@