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 --- .../doc/moa_id/examples/BKUSelectionTemplate.html | 52 +++++++ id/server/doc/moa_id/examples/ChainingModes.txt | 6 + .../doc/moa_id/examples/IdentityLinkSigners.txt | 9 ++ .../doc/moa_id/examples/LoginServletExample.txt | 171 +++++++++++++++++++++ .../SampleMOAIDVerifyInfoboxesConfiguration.xml | 148 ++++++++++++++++++ id/server/doc/moa_id/examples/Template.html | 50 ++++++ .../moa_id/examples/TransformsInfoAuthBlock.txt | 35 +++++ .../moa_id/examples/conf/MOA-ID-Configuration.xml | 103 +++++++++++++ .../doc/moa_id/examples/conf/OAConfBasicAuth.xml | 9 ++ .../doc/moa_id/examples/conf/OAConfHeaderAuth.xml | 10 ++ .../doc/moa_id/examples/conf/OAConfParamAuth.xml | 10 ++ id/server/doc/moa_id/examples/moa-id-env.sh.txt | 15 ++ id/server/doc/moa_id/examples/startTomcat.bat.txt | 26 ++++ 13 files changed, 644 insertions(+) create mode 100644 id/server/doc/moa_id/examples/BKUSelectionTemplate.html create mode 100644 id/server/doc/moa_id/examples/ChainingModes.txt create mode 100644 id/server/doc/moa_id/examples/IdentityLinkSigners.txt create mode 100644 id/server/doc/moa_id/examples/LoginServletExample.txt create mode 100644 id/server/doc/moa_id/examples/SampleMOAIDVerifyInfoboxesConfiguration.xml create mode 100644 id/server/doc/moa_id/examples/Template.html create mode 100644 id/server/doc/moa_id/examples/TransformsInfoAuthBlock.txt create mode 100644 id/server/doc/moa_id/examples/conf/MOA-ID-Configuration.xml create mode 100644 id/server/doc/moa_id/examples/conf/OAConfBasicAuth.xml create mode 100644 id/server/doc/moa_id/examples/conf/OAConfHeaderAuth.xml create mode 100644 id/server/doc/moa_id/examples/conf/OAConfParamAuth.xml create mode 100644 id/server/doc/moa_id/examples/moa-id-env.sh.txt create mode 100644 id/server/doc/moa_id/examples/startTomcat.bat.txt (limited to 'id/server/doc/moa_id/examples') diff --git a/id/server/doc/moa_id/examples/BKUSelectionTemplate.html b/id/server/doc/moa_id/examples/BKUSelectionTemplate.html new file mode 100644 index 000000000..5536226a8 --- /dev/null +++ b/id/server/doc/moa_id/examples/BKUSelectionTemplate.html @@ -0,0 +1,52 @@ + + + +MOA ID - Auswahl der B&uuuml;rgerkartenumgebung + + + + + + + + +Organisation XY +

Auswahl der Bürgerkartenumgebung

+

+

Sie haben sich für Anmeldung mit Ihrer Bürgerkarte entschieden. Da es verschiedene Formen der Bürgerkarte gibt, müssen Sie nun wählen, welche Sie bei der Anmeldung verwenden wollen.

+

Auswahl der Bürgerkarte

+
+ + + +
+

+ + + + +

Hinweise:

+
    +
  • +

    Wollen Sie eine A-Trust Bürgerkarte erwerben? Hier finden Sie Informationen + dazu: A-Trust + Bürgerkarte. Bei der Anmeldung mit der A-Trust Bürgerkarte + benötigen Sie eine funktionsfähige Bürgerkartensoftware sowie + einen passenden Kartenleser.

    +
  • +
  • +

    Wollen Sie ein A1-Signatur erwerben? Wenden Sie sich an 0800-664 680 um + Informationen zur A1-Signatur zu erhalten. + Hier finden Sie ebenfalls Informationen dazu: A1-Signatur. + Bei der Anmeldung mit der A1-Signatur wird keine Bürgerkartensoftware und + kein Kartenleser benötigt.

    +
  • +
+
Valid HTML 4.01!
+

 

+ + + + diff --git a/id/server/doc/moa_id/examples/ChainingModes.txt b/id/server/doc/moa_id/examples/ChainingModes.txt new file mode 100644 index 000000000..820b60d06 --- /dev/null +++ b/id/server/doc/moa_id/examples/ChainingModes.txt @@ -0,0 +1,6 @@ + + + CN=A-Trust-nQual-0,OU=A-Trust-nQual-0,O=A-Trust,C=AT + 536 + + diff --git a/id/server/doc/moa_id/examples/IdentityLinkSigners.txt b/id/server/doc/moa_id/examples/IdentityLinkSigners.txt new file mode 100644 index 000000000..15269ad79 --- /dev/null +++ b/id/server/doc/moa_id/examples/IdentityLinkSigners.txt @@ -0,0 +1,9 @@ + + + + CN=zmr,OU=BMI-IV-2,O=BMI,C=AT + + 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 + \ No newline at end of file diff --git a/id/server/doc/moa_id/examples/LoginServletExample.txt b/id/server/doc/moa_id/examples/LoginServletExample.txt new file mode 100644 index 000000000..587ef5e97 --- /dev/null +++ b/id/server/doc/moa_id/examples/LoginServletExample.txt @@ -0,0 +1,171 @@ +import java.io.IOException; +import java.util.Vector; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import javax.xml.namespace.QName; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.rpc.Call; +import javax.xml.rpc.Service; +import javax.xml.rpc.ServiceFactory; + +import org.apache.axis.message.SOAPBodyElement; +import org.apache.xml.serialize.LineSeparator; +import org.apache.xml.serialize.OutputFormat; +import org.apache.xml.serialize.XMLSerializer; +import org.jaxen.JaxenException; +import org.jaxen.SimpleNamespaceContext; +import org.jaxen.dom.DOMXPath; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +/** + * Beispiel für ein Login-Servlet, das von MOA-ID-AUTH über einen Redirect aufgerufen wird. + * Es werden demonstriert: + * - Parameterübergabe von MOA-ID-AUTH + * - Aufruf des MOA-ID-AUTH Web Service zum Abholen der Anmeldedaten über das Apache Axis Framework + * - Parsen der Anmeldedaten mittels der XPath Engine "Jaxen" + * - Speichern der Anmeldedaten in der HTTPSession + * - Redirect auf die eigentliche Startseite der OA + * + * @author Paul Ivancsics + */ +public class LoginServletExample extends HttpServlet { + + // Web Service QName und Endpoint + private static final QName SERVICE_QNAME = new QName("GetAuthenticationData"); + private static final String ENDPOINT = + "http://localhost:8080/moa-id-auth/services/GetAuthenticationData"; + // NamespaceContext für Jaxen + private static SimpleNamespaceContext NS_CONTEXT; + static { + NS_CONTEXT = new SimpleNamespaceContext(); + NS_CONTEXT.addNamespace("saml", "urn:oasis:names:tc:SAML:1.0:assertion"); + NS_CONTEXT.addNamespace("samlp", "urn:oasis:names:tc:SAML:1.0:protocol"); + NS_CONTEXT.addNamespace("pr", "http://reference.e-government.gv.at/namespace/persondata/20020228#"); + } + + /** + * Servlet wird von MOA-ID-AUTH nach erfolgter Authentisierung über ein Redirect aufgerufen. + */ + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + + // Parameter "Target" und "SAMLArtifact" aus dem Redirect von MOA-ID-AUTH lesen + String target = req.getParameter("Target"); + String samlArtifact = req.getParameter("SAMLArtifact"); + + try { + // DOMBuilder instanzieren + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + DocumentBuilder builder = factory.newDocumentBuilder(); + + // zusammenstellen und in einen DOM-Baum umwandeln + String samlRequest = + "" + + samlArtifact + + ""; + Document root_request = builder.parse(new ByteArrayInputStream(samlRequest.getBytes())); + + // Neues SOAPBodyElement anlegen und mit dem DOM-Baum füllen + SOAPBodyElement body = new SOAPBodyElement(root_request.getDocumentElement()); + SOAPBodyElement[] params = new SOAPBodyElement[] { body }; + + // AXIS-Service für Aufruf von MOA-ID-AUTH instanzieren + Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME); + + // Axis-Call erzeugen und mit Endpoint verknüpfen + Call call = service.createCall(); + call.setTargetEndpointAddress(ENDPOINT); + + // Call aufrufen und die Antwort speichern + System.out.println("Calling MOA-ID-AUTH ..."); + Vector responses = (Vector) call.invoke(params); + + // erstes BodyElement auslesen + SOAPBodyElement response = (SOAPBodyElement) responses.get(0); + + // als DOM-Baum holen + Document responseDocument = response.getAsDocument(); + Element samlResponse = responseDocument.getDocumentElement(); + + // auf System.out ausgeben + System.out.println("Response received:"); + OutputFormat format = new OutputFormat((Document) responseDocument); + format.setLineSeparator(LineSeparator.Windows); + format.setIndenting(true); + format.setLineWidth(0); + XMLSerializer serializer = new XMLSerializer(System.out, format); + serializer.asDOMSerializer(); + serializer.serialize(responseDocument); + + // auslesen + Attr statusCodeAttr = (Attr)getNode(samlResponse, "/samlp:Response/samlp:Status/samlp:StatusCode/@Value"); + String samlStatusCode = statusCodeAttr.getValue(); + System.out.println("StatusCode: " + samlStatusCode); + + // auslesen + if ("samlp:Success".equals(samlStatusCode)) { + Element samlAssertion = (Element)getNode(samlResponse, "/samlp:Response/saml:Assertion"); + + // FamilyName aus der parsen + Node familyNameNode = getNode(samlAssertion, "//saml:AttributeStatement/saml:Attribute[@AttributeName=\"PersonData\"]/saml:AttributeValue/pr:Person/pr:Name/pr:FamilyName"); + String familyName = getText(familyNameNode); + System.out.println("Family name: " + familyName); + + // weitere Anmeldedaten aus der parsen + // ... + + // Anmeldedaten und Target in der HTTPSession speichern + HttpSession session = req.getSession(); + session.setAttribute("UserFamilyName", familyName); + session.setAttribute("Geschaeftsbereich", target); + + // weitere Anmeldedaten in der HTTPSession speichern + // ... + + // Redirect auf die eigentliche Startseite + resp.sendRedirect("/index.jsp"); + } + } + catch (Exception ex) { + ex.printStackTrace(); + } + } + /** Returns the first node matching an XPath expression. */ + private static Node getNode(Node contextNode, String xpathExpression) throws JaxenException { + DOMXPath xpath = new DOMXPath(xpathExpression); + xpath.setNamespaceContext(NS_CONTEXT); + return (Node) xpath.selectSingleNode(contextNode); + } + /** Returns the text that a node contains. */ + public static String getText(Node node) { + if (!node.hasChildNodes()) { + return ""; + } + + StringBuffer result = new StringBuffer(); + NodeList list = node.getChildNodes(); + for (int i = 0; i < list.getLength(); i++) { + Node subnode = list.item(i); + if (subnode.getNodeType() == Node.TEXT_NODE) { + result.append(subnode.getNodeValue()); + } else if (subnode.getNodeType() == Node.CDATA_SECTION_NODE) { + result.append(subnode.getNodeValue()); + } else if (subnode.getNodeType() == Node.ENTITY_REFERENCE_NODE) { + // Recurse into the subtree for text + // (and ignore comments) + result.append(getText(subnode)); + } + } + return result.toString(); + } +} diff --git a/id/server/doc/moa_id/examples/SampleMOAIDVerifyInfoboxesConfiguration.xml b/id/server/doc/moa_id/examples/SampleMOAIDVerifyInfoboxesConfiguration.xml new file mode 100644 index 000000000..09e60c6f1 --- /dev/null +++ b/id/server/doc/moa_id/examples/SampleMOAIDVerifyInfoboxesConfiguration.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + Globale Templates zum Anpassen der Seiten "Auswahl der Bürgerkartenumgebung" und + "Anmeldung mit Bürgerkarte"<--> + + + + + + + + + + + + + + + + + + MOAIDBuergerkartePersonenbindung + + + + MOAIDBuergerkarteAuthentisierungsDaten + + MOAIDTransformAuthBlockText + Auskommentieren, falls die in der Beispiel-Onlineapplikation definierte Transformationverwendet wird:<--> + + + + + + + + CN=zmr,OU=BMI-IV-2,O=BMI,C=AT + + 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 + + + + GlobalVIDefaultTrust + + + + Beispiel Infobox B + GlobalInfoboxBTrust + + + + + + content1 + content2 + + content3a + content3b + + + + + + + + + + + + + + + LocalOA1DefaultTrust + + + + Demo Infobox B + oa1.validate.InfoboxBValidator + + + + + + + + Demo Infobox C + LocalInfoboxOA1CTrust + + + + + + + + + + + + + + LocalInfoboxOA2ATrust + + + + + + + + + + + + + + + + + certs/ca-certs + + + + + + + + + + + + + + diff --git a/id/server/doc/moa_id/examples/Template.html b/id/server/doc/moa_id/examples/Template.html new file mode 100644 index 000000000..5074f5beb --- /dev/null +++ b/id/server/doc/moa_id/examples/Template.html @@ -0,0 +1,50 @@ + + + +MOA ID - Identifizierter Zugang mit Bürgerkarte + + + +Organisation XY +

Sicherer Zugang zur Online-Anwendung mit Bürgerkarte

+

+ +Der identifizierte Zugang erfolgt über die Module für Online Applikationen (MOA) unter Verwendung einer Bürgerkarte und deren Signaturfunktion. + +

+

Wenn Sie in Folge die Schaltfläche "Anmeldung mit Bürgerkarte" +aktivieren, so werden zur Signatur der Anmeldedaten aufgefordert. Wenn sie diese +signieren, so werden sie zur Online-Anwendung weitergeleitet und angemeldet.

+ + +
+
+ + + + + +
+
+
+ + + + + +
+ + + diff --git a/id/server/doc/moa_id/examples/TransformsInfoAuthBlock.txt b/id/server/doc/moa_id/examples/TransformsInfoAuthBlock.txt new file mode 100644 index 000000000..edbde0073 --- /dev/null +++ b/id/server/doc/moa_id/examples/TransformsInfoAuthBlock.txt @@ -0,0 +1,35 @@ + + + + + + + + + Signatur der Anmeldedaten + + +

Signatur der Anmeldedaten

+

+

Mit meiner elektronischen Signatur beantrage ich, , +geboren am +.., den Zugang zur gesicherten Anwendung.

+

+

Datum und Uhrzeit: .., ::

+ +

wbPK(*):

+

+
+ (*) wbPK: Das Wirtschaftsbereichsspezifische Personenkennzeichen wird aus den jeweiligen Stammzahlen des Buergers und des Wirtschaftsunternehmens berechnet und ermoeglicht eine eindeutige Zuordnung des Buergers zum Wirtschaftsunternehmen. +
+ + +
+
+
+ +
+ + text/html + +
diff --git a/id/server/doc/moa_id/examples/conf/MOA-ID-Configuration.xml b/id/server/doc/moa_id/examples/conf/MOA-ID-Configuration.xml new file mode 100644 index 000000000..db43b0c1d --- /dev/null +++ b/id/server/doc/moa_id/examples/conf/MOA-ID-Configuration.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + MOAIDBuergerkartePersonenbindung + + + + MOAIDBuergerkarteAuthentisierungsDaten + + MOAIDTransformAuthBlockText + + + + + + + CN=zmr,OU=BMI-IV-2,O=BMI,C=AT + + 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + certs/ca-certs + + + + + + + + + + + + + + diff --git a/id/server/doc/moa_id/examples/conf/OAConfBasicAuth.xml b/id/server/doc/moa_id/examples/conf/OAConfBasicAuth.xml new file mode 100644 index 000000000..fc99cea79 --- /dev/null +++ b/id/server/doc/moa_id/examples/conf/OAConfBasicAuth.xml @@ -0,0 +1,9 @@ + + + + stateless + + MOAFamilyName + MOAGivenName + + diff --git a/id/server/doc/moa_id/examples/conf/OAConfHeaderAuth.xml b/id/server/doc/moa_id/examples/conf/OAConfHeaderAuth.xml new file mode 100644 index 000000000..4d34c3646 --- /dev/null +++ b/id/server/doc/moa_id/examples/conf/OAConfHeaderAuth.xml @@ -0,0 +1,10 @@ + + + + stateless + + +
+
+
+
diff --git a/id/server/doc/moa_id/examples/conf/OAConfParamAuth.xml b/id/server/doc/moa_id/examples/conf/OAConfParamAuth.xml new file mode 100644 index 000000000..979faca95 --- /dev/null +++ b/id/server/doc/moa_id/examples/conf/OAConfParamAuth.xml @@ -0,0 +1,10 @@ + + + + stateless + + + + + + diff --git a/id/server/doc/moa_id/examples/moa-id-env.sh.txt b/id/server/doc/moa_id/examples/moa-id-env.sh.txt new file mode 100644 index 000000000..1ccca10c1 --- /dev/null +++ b/id/server/doc/moa_id/examples/moa-id-env.sh.txt @@ -0,0 +1,15 @@ +rem insert Tomcat 4.1.x home directory (no trailing path separator) +set CATALINA_HOME= + +CONFIG_OPT_SPSS=-Dmoa.spss.server.configuration=$CATALINA_HOME/conf/moa-spss/SampleMOASPSSConfiguration.xml +CONFIG_OPT_ID=-Dmoa.id.configuration=$CATALINA_HOME/conf/moa-id/SampleMOAIDConfiguration.xml + + +LOGGING_OPT=-Dlog4j.configuration=file:$CATALINA_HOME/conf/moa-id/log4j.properties +# TRUST_STORE_OPT=-Djavax.net.ssl.trustStore=truststore.jks +# TRUST_STORE_PASS_OPT=-Djavax.net.ssl.trustStorePassword=changeit +# TRUST_STORE_TYPE_OPT=-Djavax.net.ssl.trustStoreType=jks + +export CATALINA_OPTS="$CONFIG_OPT_SPSS $CONFIG_OPT_ID $LOGGING_OPT $TRUST_STORE_OPT $TRUST_STORE_PASS_OPT $TRUST_STORE_TYPE_OPT" +echo CATALINA_OPTS=$CATALINA_OPTS + diff --git a/id/server/doc/moa_id/examples/startTomcat.bat.txt b/id/server/doc/moa_id/examples/startTomcat.bat.txt new file mode 100644 index 000000000..29588120c --- /dev/null +++ b/id/server/doc/moa_id/examples/startTomcat.bat.txt @@ -0,0 +1,26 @@ +rem ---------------------------------------------------------------------------------------------- +rem Modify these entries according to your needs + +rem JDK home directory (no trailing path separator) +set JAVA_HOME= + +rem Tomcat 4.1.x home directory (no trailing path separator) +set CATALINA_HOME= + +rem ---------------------------------------------------------------------------------------------- + +set CONFIG_OPT_SPSS=-Dmoa.spss.server.configuration=%CATALINA_HOME%/conf/moa-spss/SampleMOASPSSConfiguration.xml +set CONFIG_OPT_ID=-Dmoa.id.configuration=%CATALINA_HOME%/conf/moa-id/SampleMOAIDConfiguration.xml +set LOGGING_OPT=-Dlog4j.configuration=file:%CATALINA_HOME%/conf/moa-id/log4j.properties + +set PARAMS_MOA=%CONFIG_OPT_SPSS% %CONFIG_OPT_ID% %LOGGING_OPT% + +rem set PARAM_TRUST_STORE=-Djavax.net.ssl.trustStore=truststore.jks +rem set PARAM_TRUST_STORE_PASS=-Djavax.net.ssl.trustStorePassword=changeit +rem set PARAM_TRUST_STORE_TYPE=-Djavax.net.ssl.trustStoreType=jks +rem set PARAMS_SSL=%PARAM_TRUST_STORE% %PARAM_TRUST_STORE_PASS% %PARAM_TRUST_STORE_TYPE% + +set CATALINA_OPTS=%PARAMS_MOA% %PARAMS_SSL% + +cd %CATALINA_HOME% +bin\catalina.bat start \ No newline at end of file -- cgit v1.2.3