From 7848a953758fe645da5abc16eb8abff1fdc11da8 Mon Sep 17 00:00:00 2001 From: kstranacher Date: Tue, 27 Jul 2010 20:15:31 +0000 Subject: git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@1177 d688527b-c9ab-4aba-bd8d-4036d912da1d --- .../java/at/gv/egovernment/moa/util/DOMUtils.java | 18 ++++++++ id/readme_1.4.7.txt | 46 ++++++++++++--------- id/server/auth/src/main/webapp/img/logo.jpg | Bin 18014 -> 18260 bytes .../conf/moa-id/SampleMOAIDConfiguration.xml | 6 ++- .../conf/moa-id/SampleMOAIDConfigurationProxy.xml | 6 ++- .../SampleMOAIDConfiguration_withTestBKs.xml | 6 ++- .../SampleMOAIDConfiguration_withTestBKsProxy.xml | 6 ++- .../conf/moa-id/SampleMOAWIDConfiguration.xml | 6 ++- .../conf/moa-id/SampleMOAWIDConfigurationProxy.xml | 6 ++- .../SampleMOAWIDConfiguration_withTestBKs.xml | 6 ++- .../SampleMOAWIDConfiguration_withTestBKsProxy.xml | 6 ++- .../moa/id/auth/AuthenticationServer.java | 34 ++++++++++++++- .../moa/id/auth/MOAIDAuthConstants.java | 5 ++- .../builder/VerifyXMLSignatureRequestBuilder.java | 1 + .../id/auth/servlet/VerifyIdentityLinkServlet.java | 2 + .../id/auth/validator/IdentityLinkValidator.java | 3 ++ .../VerifyXMLSignatureResponseValidator.java | 1 + 17 files changed, 120 insertions(+), 38 deletions(-) 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 b403961d8..39cdf4e87 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 @@ -378,6 +378,24 @@ public class DOMUtils { .parseDocument(inputStream, true, Constants.ALL_SCHEMA_LOCATIONS, null) .getDocumentElement(); } + + /** + * A convenience method to parse an XML document non validating. + * + * @param inputStream The InputStream containing the XML + * document. + * @return The root element of the parsed XML document. + * @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 Element parseXmlNonValidating(InputStream inputStream) + throws ParserConfigurationException, SAXException, IOException { + return DOMUtils + .parseDocument(inputStream, false, Constants.ALL_SCHEMA_LOCATIONS, null) + .getDocumentElement(); + } /** * Schema validate a given DOM element. diff --git a/id/readme_1.4.7.txt b/id/readme_1.4.7.txt index 3f04b9e3c..3fc743521 100644 --- a/id/readme_1.4.7.txt +++ b/id/readme_1.4.7.txt @@ -91,17 +91,21 @@ B.1 Durchf 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 - + 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 beim + Bürger wünschen. + Alle weiteren TransformsInfo Elemente löschen Sie bitte. + * Im Element AuthComponent/MOA-SP/VerifyAuthBlock fügend Sie eine der folgende + Zeilen ein: + MOAIDTransformAuthBlockTable_DE + MOAIDTransformAuthBlockTable_EN + je nachdem ob sie einen englischen oder deutschen Text zur Anzeige beim + Bürger ausgewählt haben. + Alle weiteren VerifyTransformsInfoProfileID Elemente löschen Sie bitte. 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 @@ -213,18 +217,20 @@ B.1 Durchf 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 + * 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 beim Bürger wünschen. Alle weiteren TransformsInfo Elemente löschen Sie bitte. - * Im Element AuthComponent/MOA-SP/VerifyAuthBlock fügend Sie folgende Zeilen - ein: + * Im Element AuthComponent/MOA-SP/VerifyAuthBlock fügend Sie eine der folgende + Zeilen ein: MOAIDTransformAuthBlockTable_DE MOAIDTransformAuthBlockTable_EN - + je nachdem ob sie einen englischen oder deutschen Text zur Anzeige beim + Bürger 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 @@ -295,17 +301,20 @@ B.2 Durchf 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 + * 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 beim Bürger wünschen. Alle weiteren TransformsInfo Elemente löschen Sie bitte. - * Im Element AuthComponent/MOA-SP/VerifyAuthBlock fügend Sie folgende Zeilen - ein: + * Im Element AuthComponent/MOA-SP/VerifyAuthBlock fügend Sie eine der folgende + Zeilen ein: MOAIDTransformAuthBlockTable_DE MOAIDTransformAuthBlockTable_EN + je nachdem ob sie einen englischen oder deutschen Text zur Anzeige beim + Bürger ausgewählt haben. + Alle weiteren VerifyTransformsInfoProfileID Elemente löschen Sie bitte. 6. Kopieren Sie die zwei Dateien aus dem Verzeichnis MOA_ID_AUTH_INST/conf/moa-spss/profiles in das Verzeichnis profiles Ihres @@ -348,7 +357,6 @@ B.2 Durchf dieses hier angeben. - 8. Sichern Sie ihre MOA-ID Konfigurationsdatei. Kopieren Sie die Beispielkonfigurationsdateien aus dem Verzeichnis MOA_ID_AUTH_INST/conf/moa-id/SampleMOA*.xml nach diff --git a/id/server/auth/src/main/webapp/img/logo.jpg b/id/server/auth/src/main/webapp/img/logo.jpg index 6bfc6a1e9..bafbccc84 100644 Binary files a/id/server/auth/src/main/webapp/img/logo.jpg and b/id/server/auth/src/main/webapp/img/logo.jpg differ diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration.xml b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration.xml index 8c5cf90d3..e59925057 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration.xml @@ -18,8 +18,9 @@ + - + + MOAIDTransformAuthBlockTable_DE - MOAIDTransformAuthBlockTable_EN + diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfigurationProxy.xml b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfigurationProxy.xml index a04adaf51..a8a6e34e5 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfigurationProxy.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfigurationProxy.xml @@ -18,8 +18,9 @@ + - + + MOAIDTransformAuthBlockTable_DE - MOAIDTransformAuthBlockTable_EN + 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 1a7005eee..54a2d5ce6 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKs.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKs.xml @@ -18,8 +18,9 @@ + - + MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten + MOAIDTransformAuthBlockTable_DE - MOAIDTransformAuthBlockTable_EN + 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 2070c52a6..9b4918475 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKsProxy.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAIDConfiguration_withTestBKsProxy.xml @@ -18,8 +18,9 @@ + - + MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten + MOAIDTransformAuthBlockTable_DE - MOAIDTransformAuthBlockTable_EN + diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration.xml b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration.xml index 79fb7cba1..4f7711574 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration.xml @@ -18,8 +18,9 @@ + - + + MOAIDTransformAuthBlockTable_DE - MOAIDTransformAuthBlockTable_EN + diff --git a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfigurationProxy.xml b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfigurationProxy.xml index af92e8b67..c5350de66 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfigurationProxy.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfigurationProxy.xml @@ -18,8 +18,9 @@ + - + + MOAIDTransformAuthBlockTable_DE - MOAIDTransformAuthBlockTable_EN + 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 ed2cdd07c..184ad442d 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKs.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKs.xml @@ -18,8 +18,9 @@ + - + MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten + MOAIDTransformAuthBlockTable_DE - MOAIDTransformAuthBlockTable_EN + 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 f7ed53249..41b03ad58 100644 --- a/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKsProxy.xml +++ b/id/server/data/deploy/conf/moa-id/SampleMOAWIDConfiguration_withTestBKsProxy.xml @@ -18,8 +18,9 @@ + - + MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten + MOAIDTransformAuthBlockTable_DE - MOAIDTransformAuthBlockTable_EN + 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 01c6a512f..103274c29 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,10 +15,14 @@ */ 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.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.IOException; import java.security.GeneralSecurityException; import java.security.Principal; @@ -32,10 +36,13 @@ import java.util.Map; import java.util.Set; import java.util.Vector; +import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerException; 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; @@ -431,6 +438,7 @@ public class AuthenticationServer implements MOAIDAuthConstants { throw new AuthenticationException("auth.10", new Object[] { REQ_VERIFY_IDENTITY_LINK, PARAM_SESSIONID}); String xmlInfoboxReadResponse = (String)infoboxReadResponseParameters.get(PARAM_XMLRESPONSE); + if (isEmpty(xmlInfoboxReadResponse)) throw new AuthenticationException("auth.10", new Object[] { REQ_VERIFY_IDENTITY_LINK, PARAM_XMLRESPONSE}); @@ -455,8 +463,30 @@ public class AuthenticationServer implements MOAIDAuthConstants { Logger.info("Unbekannter Infoboxbezeichner. Versuche Anmeldung als ausländische eID."); return null; } - - // parses the + + // for testing new identity link certificate +// xmlInfoboxReadResponse = null; +// try { +// File file = new File("c:/temp/xxxMuster-new-cert_infobox.xml"); +// FileInputStream fis; +// +// fis = new FileInputStream(file); +// byte[] array = Utils.readFromInputStream(fis); +// +// xmlInfoboxReadResponse = new String(array); +// System.out.println(xmlInfoboxReadResponse); +// +// } catch (FileNotFoundException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } catch (UtilsException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } + + + + // parses the IdentityLink identityLink = new InfoboxReadResponseParser(xmlInfoboxReadResponse).parseIdentityLink(); // validates the identity link 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 88859dc3f..84f8f6985 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 @@ -86,7 +86,10 @@ public interface MOAIDAuthConstants { */ public static final String[] IDENTITY_LINK_SIGNERS_WITHOUT_OID = new String[] {"T=Dr.,CN=Nikolaus Schwab,O=BM f. Inneres i.A. des gf. Mitgieds der Datenschutzkommission", - "T=Dr.,CN=Nikolaus Schwab,O=BM f. Inneres i.A. des gf. Mitglieds der Datenschutzkommission"}; + "T=Dr.,CN=Nikolaus Schwab,O=BM f. Inneres i.A. des gf. Mitglieds der Datenschutzkommission", + "EMAIL=dsk@dsk.gv.at,serialNumber=325928323998,CN=Signaturservice Datenschutzkommission,OU=Stammzahlregisterbehoerde,O=Datenschutzkommission,C=AT"}; + //"E=dsk@dsk.gv.at,SERIALNUMBER=325928323998,CN=Signaturservice Datenschutzkommission,OU=Stammzahlregisterbehoerde,O=Datenschutzkommission,C=AT"}; + /** the number of the certifcate extension "Eigenschaft zur Ausstellung von Personenbindungen" */ public static final String IDENTITY_LINK_SIGNER_OID_NUMBER = "1.2.40.0.10.1.7.1"; /** 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 a14d0325f..2c97f01ae 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 @@ -131,6 +131,7 @@ public class VerifyXMLSignatureRequestBuilder { 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"); 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 1fc5013f3..ba3e2141b 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 @@ -106,6 +106,8 @@ public class VerifyIdentityLinkServlet extends AuthServlet { AuthenticationSession session = AuthenticationServer.getSession(sessionID); String createXMLSignatureRequestOrRedirect = AuthenticationServer.getInstance().verifyIdentityLink(sessionID, parameters); + + Logger.debug(createXMLSignatureRequestOrRedirect); if (createXMLSignatureRequestOrRedirect == null) { // no identity link found diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/IdentityLinkValidator.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/IdentityLinkValidator.java index 1c9b66124..baaa21db2 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/IdentityLinkValidator.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/IdentityLinkValidator.java @@ -155,6 +155,9 @@ public class IdentityLinkValidator implements Constants { if (attributeValue==null) attributeValue = (Element) XPathUtils.selectSingleNode((Element)nl.item(i), nSMap, SAML + "AttributeValue/" + ECDSA + "ECDSAKeyValue"); + if (attributeValue==null) + attributeValue = + (Element) XPathUtils.selectSingleNode((Element)nl.item(i), nSMap, SAML + "AttributeValue/" + DSIG + "DSAKeyValue"); if (attributeValue == null) throw new ValidateException("validator.02", null); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/VerifyXMLSignatureResponseValidator.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/VerifyXMLSignatureResponseValidator.java index bc7db72f4..affa95c2b 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/VerifyXMLSignatureResponseValidator.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/VerifyXMLSignatureResponseValidator.java @@ -124,6 +124,7 @@ public class VerifyXMLSignatureResponseValidator { catch (RFC2253NameParserException e) { throw new ValidateException("validator.17", null); } + System.out.println("subjectDN: " + subjectDN); // check the authorisation to sign the identity link if (!identityLinkSignersSubjectDNNames.contains(subjectDN)) { // subject DN check failed, try OID check: -- cgit v1.2.3