diff options
Diffstat (limited to 'spss.handbook/clients')
27 files changed, 635 insertions, 0 deletions
diff --git a/spss.handbook/clients/common/resources/requests/CreateXMLSignatureRequest1.xml b/spss.handbook/clients/common/resources/requests/CreateXMLSignatureRequest1.xml new file mode 100644 index 000000000..01cea6e99 --- /dev/null +++ b/spss.handbook/clients/common/resources/requests/CreateXMLSignatureRequest1.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<CreateXMLSignatureRequest xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> + <KeyIdentifier>KG_allgemein</KeyIdentifier> + <SingleSignatureInfo SecurityLayerConformity="false"> + <DataObjectInfo Structure="enveloping"> + <DataObject> + <XMLContent xml:space="preserve">Diese Daten werden signiert.</XMLContent> + </DataObject> + <CreateTransformsInfoProfile> + <CreateTransformsInfo> + <FinalDataMetaInfo> + <MimeType>text/plain</MimeType> + </FinalDataMetaInfo> + </CreateTransformsInfo> + </CreateTransformsInfoProfile> + </DataObjectInfo> + </SingleSignatureInfo> +</CreateXMLSignatureRequest> + diff --git a/spss.handbook/clients/common/resources/requests/CreateXMLSignatureRequest2.xml b/spss.handbook/clients/common/resources/requests/CreateXMLSignatureRequest2.xml new file mode 100644 index 000000000..e0f639525 --- /dev/null +++ b/spss.handbook/clients/common/resources/requests/CreateXMLSignatureRequest2.xml @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="UTF-8"?> +<CreateXMLSignatureRequest xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> + <KeyIdentifier>KG_allgemein</KeyIdentifier> + <SingleSignatureInfo SecurityLayerConformity="false"> + <DataObjectInfo Structure="enveloping" ChildOfManifest="true"> + <DataObject> + <XMLContent xml:space="preserve">Diese Daten werden signiert.</XMLContent> + </DataObject> + <CreateTransformsInfoProfile> + <CreateTransformsInfo> + <FinalDataMetaInfo> + <MimeType>text/plain</MimeType> + </FinalDataMetaInfo> + </CreateTransformsInfo> + </CreateTransformsInfoProfile> + </DataObjectInfo> + </SingleSignatureInfo> + <SingleSignatureInfo SecurityLayerConformity="true"> + <DataObjectInfo Structure="detached"> + <DataObject Reference="http://localhost:8080/webdata/resources/testDaten.txt"> + <Base64Content>RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=</Base64Content> + </DataObject> + <CreateTransformsInfoProfile> + <CreateTransformsInfo> + <FinalDataMetaInfo> + <MimeType>text/plain</MimeType> + </FinalDataMetaInfo> + </CreateTransformsInfo> + </CreateTransformsInfoProfile> + </DataObjectInfo> + <DataObjectInfo Structure="enveloping"> + <DataObject> + <XMLContent xml:space="preserve"> + <data:book xmlns:data="http://uri.data.org" data:hardback="yes"> + <data:title>Gesundheitliche Auswirkungen elektronischer Signaturen</data:title> + <data:first-name>Ellipse</data:first-name> + <data:last-name>Kurvenreich</data:last-name> + <data:birth-date>1951-04-16</data:birth-date> + <data:birth-location>Hinterm Berg</data:birth-location> + <data:register-number>6-930-21512-12</data:register-number> + </data:book> + </XMLContent> + </DataObject> + <CreateTransformsInfoProfile> + <CreateTransformsInfo> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"> + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:include href="http://localhost:8080/webdata/resources/CX1_book_not_here.xsl"/> + </xsl:stylesheet> + </dsig:Transform> + </dsig:Transforms> + <FinalDataMetaInfo> + <MimeType>text/html</MimeType> + </FinalDataMetaInfo> + </CreateTransformsInfo> + <Supplement> + <Content Reference="http://localhost:8080/webdata/resources/CX1_book_not_here.xsl"> + <Base64Content>PHhzbDpzdHlsZXNoZWV0IHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJh +bnNmb3JtIiB2ZXJzaW9uPSIxLjAiPg0KPHhzbDpvdXRwdXQgbWV0aG9kPSJodG1sIi8+DQo8eHNs +OnRlbXBsYXRlIG1hdGNoPSJkYXRhOmJvb2siIHhtbG5zOmRhdGE9Imh0dHA6Ly91cmkuZGF0YS5v +cmciPg0KPEhUTUw+DQo8Qk9EWT4NCjxIMT5CdWNoOiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iZGF0 +YTp0aXRsZSIvPjwvSDE+DQo8L0JPRFk+DQo8L0hUTUw+DQo8L3hzbDp0ZW1wbGF0ZT4NCjwveHNs +OnN0eWxlc2hlZXQ+</Base64Content> +<!--<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> +<xsl:output method="html"/> +<xsl:template match="data:book" xmlns:data="http://uri.data.org"> +<HTML> +<BODY> +<H1>Buch: <xsl:value-of select="data:title"/></H1> +</BODY> +</HTML> +</xsl:template> +</xsl:stylesheet> --> + </Content> + </Supplement> + </CreateTransformsInfoProfile> + </DataObjectInfo> + <CreateSignatureInfo xmlns:env="http://uri.env.org"> + <CreateSignatureEnvironment> + <XMLContent xml:space="preserve"> + <env:Document xmlns:env="http://uri.env.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://uri.env.org http://anyhost/envSchema.xsd">nach diesem Text wird die Signatur in das Dokument eingefuegt</env:Document> + </XMLContent> + </CreateSignatureEnvironment> + <CreateSignatureEnvironmentProfile> + <CreateSignatureLocation Index="1">//env:Document</CreateSignatureLocation> + </CreateSignatureEnvironmentProfile> + </CreateSignatureInfo> + </SingleSignatureInfo> +</CreateXMLSignatureRequest> diff --git a/spss.handbook/clients/common/resources/requests/VerifyCMSSignatureRequest.xml b/spss.handbook/clients/common/resources/requests/VerifyCMSSignatureRequest.xml new file mode 100644 index 000000000..77e551637 --- /dev/null +++ b/spss.handbook/clients/common/resources/requests/VerifyCMSSignatureRequest.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?><VerifyCMSSignatureRequest xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Signatories="1"> <DateTime>2003-04-04T09:30:47-05:00</DateTime> <CMSSignature>MIIGAAYJKoZIhvcNAQcCoIIF8TCCBe0CAQExCzAJBgUrDgMCGgUAMDsGCSqGSIb3DQEHAaAuBCxE +aWVzIHNpbmQgVGVzdGRhdGVuDQoyLiBaZWlsZQ0KMy4gWmVpbGUNCmF1c6CCA9swggPXMIIDRKAD +AgECAgYA8yR9NTswCQYFKw4DAh0FADCBrDELMAkGA1UEBhMCQVQxJjAkBgNVBAoTHUdSQVogVU5J +VkVSU0lUWSBPRiBURUNITk9MT0dZMUcwRQYDVQQLEz5JbnNpdHV0ZSBmb3IgQXBwbGllZCBJbmZv +cm1hdGlvbiBQcm9jZXNzaW5nIGFuZCBDb21tdW5pY2F0aW9uczEVMBMGA1UECxMMSUFJSyBUZXN0 +IENBMRUwEwYDVQQDEwxJQUlLIFRlc3QgQ0EwHhcNMDMwMjAzMTYyMDU1WhcNMDMxMjMwMjI1OTMw +WjCBmDELMAkGA1UEBhMCQVQxJjAkBgNVBAoTHUdSQVogVU5JVkVSU0lUWSBPRiBURUNITk9MT0dZ +MUcwRQYDVQQLEz5JbnNpdHV0ZSBmb3IgQXBwbGllZCBJbmZvcm1hdGlvbiBQcm9jZXNzaW5nIGFu +ZCBDb21tdW5pY2F0aW9uczEYMBYGA1UEAxQPSXNvbGRlIEL8cmdlcmluMIGfMA0GCSqGSIb3DQEB +AQUAA4GNADCBiQKBgQDnebSqeDo73NUgC4nbY+z3Vf6l12EyID0/RC6wx7FD5ASR97jecQUhOhRn +e66gBAV36fgxczoPry1ly0ZTk7hbkCr9sSMjh58gdLQROHOA0DKaqZP1n0ggSGqb/WOFDhJdNbff +LdefeXHboOJN4Cl+25AHfzxiVX5Gz6tPIX2JFQIDAQABo4IBHDCCARgwDAYDVR0TAQH/BAIwADAO +BgNVHQ8BAf8EBAMCBsAwEQYJYIZIAYb4QgEBBAQDAgUgMGcGA1UdIARgMF4wXAYMKwYBBAGVEgEC +ewEBMEwwSgYIKwYBBQUHAgIwPho8VGhpcyBjZXJ0aWZpY2F0ZSBvbmx5IG1heSBiZSB1c2VkIGZv +ciBkZW1vbnN0cmF0aW9uIHB1cnBvc2VzMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly93d3cuaWFp +ay5hdC90ZXN0Q0EvaWFpa190ZXN0X3NpZy5jcmwwHQYDVR0OBBYEFCg66gjFLwzWj8NNmQlSzSWc +3kDtMB8GA1UdIwQYMBaAFEwgsFYCDPeICpaIpRS0Ucw6tfK/MAkGBSsOAwIdBQADgYEAJjzWjybN +vxgK5MyB6mXJKbmcCTGOy/VPmf8fPPVwt9IMlnQfI1NXH8YOzNj4PHbwx1b7oMuj2dY9IT/g/6T0 +dcl7/ATIC/jg6uO+nMYYqOqhzdfy/ivMyjowFE2W67SbfLWmS1NX+rhqJYP+dsZd2uf8CgoC85IB +DdB7pf51P/UxggG9MIIBuQIBATCBtzCBrDELMAkGA1UEBhMCQVQxJjAkBgNVBAoTHUdSQVogVU5J +VkVSU0lUWSBPRiBURUNITk9MT0dZMUcwRQYDVQQLEz5JbnNpdHV0ZSBmb3IgQXBwbGllZCBJbmZv +cm1hdGlvbiBQcm9jZXNzaW5nIGFuZCBDb21tdW5pY2F0aW9uczEVMBMGA1UECxMMSUFJSyBUZXN0 +IENBMRUwEwYDVQQDEwxJQUlLIFRlc3QgQ0ECBgDzJH01OzAJBgUrDgMCGgUAoF0wGAYJKoZIhvcN +AQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDMwNDE3MTQ0ODA4WjAjBgkqhkiG9w0B +CQQxFgQUWVob54034HfToUBDAErL5z6GFxowDQYJKoZIhvcNAQEBBQAEgYA3PgDZt7KWMUscVY6J +0NVA83Al3+3rEFrvtClcfNNeCwptd9zRTv7Xvj7JLoozNoCr4sg2K9cwfjpinUrh9EartS1gqoRR +7Binn38eR1lRSU+Pg3HaXh9EnEDIeCsI8qDGYCJ1TOf/YwJzUR1YYCZMyrJK2mpmDmT9fmvKwdJO +iA==</CMSSignature> <TrustProfileID>Test-Signaturdienste</TrustProfileID></VerifyCMSSignatureRequest>
\ No newline at end of file diff --git a/spss.handbook/clients/common/resources/requests/VerifyXMLSignatureRequest1.xml b/spss.handbook/clients/common/resources/requests/VerifyXMLSignatureRequest1.xml new file mode 100644 index 000000000..d9085cbbc --- /dev/null +++ b/spss.handbook/clients/common/resources/requests/VerifyXMLSignatureRequest1.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VerifyXMLSignatureRequest xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> + <DateTime>2004-08-05T12:00:00+01:00</DateTime> + <VerifySignatureInfo> + <VerifySignatureEnvironment><XMLContent><dsig:Signature Id="signature-1-1" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.buergerkarte.at/namespaces/ecdsa/200206030#ecdsa-sha1"/><dsig:Reference Id="reference-1-1" URI="#xpointer(id('signed-data-1-1-1')/node())"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>tLODyeiWFbAkQKwhrR23jtcgu4k=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>Hd92K25yLw1ugL4+jM2wcWsnmm+TNfnLXIZwzBhU49kWd2Gt2peov4g8H/d3w6Td</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIID+DCCA2WgAwIBAgIBCTAJBgUrDgMCHQUAMH8xCzAJBgNVBAYTAkFUMSwwKgYD +VQQKEyNTdGFic3RlbGxlIElLVC1TdHJhdGVnaWUgZGVzIEJ1bmRlczEeMBwGA1UE +CxMVVGVjaG5payB1bmQgU3RhbmRhcmRzMSIwIAYDVQQDExlUZXN0IENBIC0gU2ln +bmF0dXJkaWVuc3RlMB4XDTA0MDgwNDA4MjM0OFoXDTA3MDgwNDA4MjM0OFowgZgx +CzAJBgNVBAYTAkFUMS0wKwYDVQQKEyRTdGFic3N0ZWxsZSBJS1QtU3RyYXRlZ2ll +IGRlcyBCdW5kZXMxHjAcBgNVBAsTFVRlY2huaWsgdW5kIFN0YW5kYXJkczE6MDgG +A1UEAxMxVGVzdDogU2lnbmF0dXJkaWVuc3QgYWxsZXIgS3VuZGVuOiBFQ0RTQSAo +UDE5MnYxKTCB8zCBvAYHKoZIzj0CATCBsAIBATAkBgcqhkjOPQEBAhkA//////// +/////////////v//////////MDQEGP////////////////////7//////////AQY +ZCEFGeWcgOcPp+mrciQwSf643uzBRrmxBDEEGI2oDrAwkPZ8vyDrQ6GIAPT/Cv2C +/xASBxkrlf/I2nhjEBHtayTN1XP5d6EeeUgRAhkA////////////////md74NhRr +ybG00igxAgEBAzIABNHWY9lQOE1zgmpcpjTg2WIg6qgEsGhpXELPinJoMPDVheTv +2BZPG42YJsNfvWgC06OCARwwggEYMA4GA1UdDwEB/wQEAwIGwDAMBgNVHRMBAf8E +AjAAMB0GA1UdDgQWBBRHH5EXnrWosCmIa+JyEM5seMxFVzBdBgNVHSAEVjBUMFIG +DCsGAQQBlRIBAgMBATBCMEAGCCsGAQUFBwICMDQaMkRpZXNlcyBaZXJ0aWZpa2F0 +IGlzdCBudXIgZvxyIFRlc3R6d2Vja2UgZ2VlaWduZXQuMEMGA1UdHwQ8MDowOKA2 +oDSGMmh0dHA6Ly9sYWJzLmNpby5ndi5hdC90ZW1wL2NybHMvc2lnbmF0dXJkaWVu +c3QuY3JsMBQGByooAAoBAQEECQwHQktBLUlLVDAfBgNVHSMEGDAWgBRAl0P5fWaw +vf59+uxGcYY9wffZPTAJBgUrDgMCHQUAA4GBAIMKUsnajgfBtpHeDdMdQMLA8fdt +lluezDOM78WYYSFURP04QZk5iHkShzptgZCF5Y/T4an3dC3SnytL67LJvEoKUyja +iTMLo7650xRTvAjTaMJ+nly/wTRYJKplOLXKWj3WwfObMHXdsDE8NJmpJSRE7Sw7 ++tj+UiTiNNSaXirq</dsig:X509Certificate></dsig:X509Data></dsig:KeyInfo><dsig:Object Id="signed-data-1-1-1">Diese Daten werden signiert.</dsig:Object></dsig:Signature></XMLContent></VerifySignatureEnvironment><VerifySignatureLocation>//dsig:Signature</VerifySignatureLocation> + </VerifySignatureInfo> + <TrustProfileID>Test-Signaturdienste</TrustProfileID> +</VerifyXMLSignatureRequest> diff --git a/spss.handbook/clients/common/resources/requests/VerifyXMLSignatureRequest2.xml b/spss.handbook/clients/common/resources/requests/VerifyXMLSignatureRequest2.xml new file mode 100644 index 000000000..4ed55c4ac --- /dev/null +++ b/spss.handbook/clients/common/resources/requests/VerifyXMLSignatureRequest2.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VerifyXMLSignatureRequest xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> + <DateTime>2004-08-05T12:00:00+01:00</DateTime> + <VerifySignatureInfo> + <VerifySignatureEnvironment> + <XMLContent><env:Document xmlns:env="http://uri.env.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://uri.env.org http://anyhost/envSchema.xsd">nach diesem Text wird die Signatur in das Dokument eingefuegt<dsig:Signature Id="signature-2-1" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.buergerkarte.at/namespaces/ecdsa/200206030#ecdsa-sha1"/><dsig:Reference Id="reference-2-1" URI="http://localhost:8080/webdata/resources/testDaten.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>WVob54034HfToUBDAErL5z6GFxo=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-2-2" URI="#xpointer(id('signed-data-2-2-1')/node())"><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + <xsl:include href="http://localhost:8080/webdata/resources/CX1_book_not_here.xsl"/> + </xsl:stylesheet></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>gJhOZajRF42VUda+ZBhWNdljSLc=</dsig:DigestValue></dsig:Reference><dsig:Reference Type="http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest" URI="#manifest-2-1"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>chaNgk8iWY+KS1ks30NQYrXD5h8=</dsig:DigestValue></dsig:Reference><dsig:Reference Type="http://uri.etsi.org/01903/v1.1.1#SignedProperties" URI="#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('etsi-signed-2-1')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>OBJNgpRwQXVz8hA+fQw2fDcMhW4=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>a4XuTxnzoHDVYDoUDLAw5LRNDkdQECOBfx/dGyvogm9an7bv1N32vitkc0C9T6Xe</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIID+DCCA2WgAwIBAgIBCTAJBgUrDgMCHQUAMH8xCzAJBgNVBAYTAkFUMSwwKgYD +VQQKEyNTdGFic3RlbGxlIElLVC1TdHJhdGVnaWUgZGVzIEJ1bmRlczEeMBwGA1UE +CxMVVGVjaG5payB1bmQgU3RhbmRhcmRzMSIwIAYDVQQDExlUZXN0IENBIC0gU2ln +bmF0dXJkaWVuc3RlMB4XDTA0MDgwNDA4MjM0OFoXDTA3MDgwNDA4MjM0OFowgZgx +CzAJBgNVBAYTAkFUMS0wKwYDVQQKEyRTdGFic3N0ZWxsZSBJS1QtU3RyYXRlZ2ll +IGRlcyBCdW5kZXMxHjAcBgNVBAsTFVRlY2huaWsgdW5kIFN0YW5kYXJkczE6MDgG +A1UEAxMxVGVzdDogU2lnbmF0dXJkaWVuc3QgYWxsZXIgS3VuZGVuOiBFQ0RTQSAo +UDE5MnYxKTCB8zCBvAYHKoZIzj0CATCBsAIBATAkBgcqhkjOPQEBAhkA//////// +/////////////v//////////MDQEGP////////////////////7//////////AQY +ZCEFGeWcgOcPp+mrciQwSf643uzBRrmxBDEEGI2oDrAwkPZ8vyDrQ6GIAPT/Cv2C +/xASBxkrlf/I2nhjEBHtayTN1XP5d6EeeUgRAhkA////////////////md74NhRr +ybG00igxAgEBAzIABNHWY9lQOE1zgmpcpjTg2WIg6qgEsGhpXELPinJoMPDVheTv +2BZPG42YJsNfvWgC06OCARwwggEYMA4GA1UdDwEB/wQEAwIGwDAMBgNVHRMBAf8E +AjAAMB0GA1UdDgQWBBRHH5EXnrWosCmIa+JyEM5seMxFVzBdBgNVHSAEVjBUMFIG +DCsGAQQBlRIBAgMBATBCMEAGCCsGAQUFBwICMDQaMkRpZXNlcyBaZXJ0aWZpa2F0 +IGlzdCBudXIgZvxyIFRlc3R6d2Vja2UgZ2VlaWduZXQuMEMGA1UdHwQ8MDowOKA2 +oDSGMmh0dHA6Ly9sYWJzLmNpby5ndi5hdC90ZW1wL2NybHMvc2lnbmF0dXJkaWVu +c3QuY3JsMBQGByooAAoBAQEECQwHQktBLUlLVDAfBgNVHSMEGDAWgBRAl0P5fWaw +vf59+uxGcYY9wffZPTAJBgUrDgMCHQUAA4GBAIMKUsnajgfBtpHeDdMdQMLA8fdt +lluezDOM78WYYSFURP04QZk5iHkShzptgZCF5Y/T4an3dC3SnytL67LJvEoKUyja +iTMLo7650xRTvAjTaMJ+nly/wTRYJKplOLXKWj3WwfObMHXdsDE8NJmpJSRE7Sw7 ++tj+UiTiNNSaXirq</dsig:X509Certificate></dsig:X509Data></dsig:KeyInfo><dsig:Object Id="signed-data-2-2-1"> + <data:book data:hardback="yes" xmlns:data="http://uri.data.org"> + <data:title>Gesundheitliche Auswirkungen elektronischer Signaturen</data:title> + <data:first-name>Ellipse</data:first-name> + <data:last-name>Kurvenreich</data:last-name> + <data:birth-date>1951-04-16</data:birth-date> + <data:birth-location>Hinterm Berg</data:birth-location> + <data:register-number>6-930-21512-12</data:register-number> + </data:book> + </dsig:Object><dsig:Object><dsig:Manifest Id="manifest-2-1"><dsig:Reference URI="http://localhost:8080/webdata/resources/CX1_book_not_here.xsl"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>Ym+XR9T2r7NKwGo3ndiOeenFLFE=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object><dsig:Object Id="etsi-signed-2-1"><etsi:QualifyingProperties Target="#signature-2-1" xmlns:etsi="http://uri.etsi.org/01903/v1.1.1#"><etsi:SignedProperties><etsi:SignedSignatureProperties><etsi:SigningTime>2004-08-05T11:23:58</etsi:SigningTime><etsi:SigningCertificate><etsi:Cert><etsi:CertDigest><etsi:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><etsi:DigestValue>FOWcAqaHew69LEIDiGuiWVnB0mc=</etsi:DigestValue></etsi:CertDigest><etsi:IssuerSerial><dsig:X509IssuerName>CN=Test CA - Signaturdienste,OU=Technik und Standards,O=Stabstelle IKT-Strategie des Bundes,C=AT</dsig:X509IssuerName><dsig:X509SerialNumber>9</dsig:X509SerialNumber></etsi:IssuerSerial></etsi:Cert></etsi:SigningCertificate><etsi:SignaturePolicyIdentifier><etsi:SignaturePolicyImplied/></etsi:SignaturePolicyIdentifier></etsi:SignedSignatureProperties><etsi:SignedDataObjectProperties><etsi:DataObjectFormat ObjectReference="#reference-2-1"><etsi:MimeType>text/plain</etsi:MimeType></etsi:DataObjectFormat><etsi:DataObjectFormat ObjectReference="#reference-2-2"><etsi:MimeType>text/html</etsi:MimeType></etsi:DataObjectFormat></etsi:SignedDataObjectProperties></etsi:SignedProperties></etsi:QualifyingProperties></dsig:Object></dsig:Signature></env:Document></XMLContent> + </VerifySignatureEnvironment> + <VerifySignatureLocation>//dsig:Signature</VerifySignatureLocation> + </VerifySignatureInfo> +<SupplementProfile> + <Content Reference="http://anyhost/envSchema.xsd"> + <XMLContent xml:space="preserve"> + <xsd:schema targetNamespace="http://uri.env.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> + <xsd:element name="Document"> + <xsd:complexType mixed="true"> + <xsd:sequence minOccurs="0" maxOccurs="unbounded"> + <xsd:any namespace="##any" processContents="lax"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:schema> + </XMLContent> + </Content> +</SupplementProfile> +<ReturnHashInputData/> +<TrustProfileID>Test-Signaturdienste</TrustProfileID> +</VerifyXMLSignatureRequest> diff --git a/spss.handbook/clients/webservice/lib/axis-1_1/axis-ant.jar b/spss.handbook/clients/webservice/lib/axis-1_1/axis-ant.jar Binary files differnew file mode 100644 index 000000000..9cb30a98a --- /dev/null +++ b/spss.handbook/clients/webservice/lib/axis-1_1/axis-ant.jar diff --git a/spss.handbook/clients/webservice/lib/axis-1_1/axis.jar b/spss.handbook/clients/webservice/lib/axis-1_1/axis.jar Binary files differnew file mode 100644 index 000000000..869ee16f5 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/axis-1_1/axis.jar diff --git a/spss.handbook/clients/webservice/lib/axis-1_1/commons-discovery.jar b/spss.handbook/clients/webservice/lib/axis-1_1/commons-discovery.jar Binary files differnew file mode 100644 index 000000000..b88554847 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/axis-1_1/commons-discovery.jar diff --git a/spss.handbook/clients/webservice/lib/axis-1_1/commons-logging.jar b/spss.handbook/clients/webservice/lib/axis-1_1/commons-logging.jar Binary files differnew file mode 100644 index 000000000..b99c9375a --- /dev/null +++ b/spss.handbook/clients/webservice/lib/axis-1_1/commons-logging.jar diff --git a/spss.handbook/clients/webservice/lib/axis-1_1/jaxrpc.jar b/spss.handbook/clients/webservice/lib/axis-1_1/jaxrpc.jar Binary files differnew file mode 100644 index 000000000..5f6a56f02 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/axis-1_1/jaxrpc.jar diff --git a/spss.handbook/clients/webservice/lib/axis-1_1/log4j-1.2.8.jar b/spss.handbook/clients/webservice/lib/axis-1_1/log4j-1.2.8.jar Binary files differnew file mode 100644 index 000000000..493a3ccc1 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/axis-1_1/log4j-1.2.8.jar diff --git a/spss.handbook/clients/webservice/lib/axis-1_1/saaj.jar b/spss.handbook/clients/webservice/lib/axis-1_1/saaj.jar Binary files differnew file mode 100644 index 000000000..f2242abe5 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/axis-1_1/saaj.jar diff --git a/spss.handbook/clients/webservice/lib/axis-1_1/wsdl4j.jar b/spss.handbook/clients/webservice/lib/axis-1_1/wsdl4j.jar Binary files differnew file mode 100644 index 000000000..820abd082 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/axis-1_1/wsdl4j.jar diff --git a/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jcert.jar b/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jcert.jar Binary files differnew file mode 100644 index 000000000..d33134214 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jcert.jar diff --git a/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jnet.jar b/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jnet.jar Binary files differnew file mode 100644 index 000000000..e1d340093 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jnet.jar diff --git a/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jsse.jar b/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jsse.jar Binary files differnew file mode 100644 index 000000000..123188c5e --- /dev/null +++ b/spss.handbook/clients/webservice/lib/jsse-1_0_3/jsse-1_0_3.jsse.jar diff --git a/spss.handbook/clients/webservice/lib/xerces-2_0_2/xerces-2_0_2.xercesImpl.jar b/spss.handbook/clients/webservice/lib/xerces-2_0_2/xerces-2_0_2.xercesImpl.jar Binary files differnew file mode 100644 index 000000000..f25d73cd7 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/xerces-2_0_2/xerces-2_0_2.xercesImpl.jar diff --git a/spss.handbook/clients/webservice/lib/xerces-2_0_2/xerces-2_0_2.xmlParserAPIs.jar b/spss.handbook/clients/webservice/lib/xerces-2_0_2/xerces-2_0_2.xmlParserAPIs.jar Binary files differnew file mode 100644 index 000000000..c1fa1d645 --- /dev/null +++ b/spss.handbook/clients/webservice/lib/xerces-2_0_2/xerces-2_0_2.xmlParserAPIs.jar diff --git a/spss.handbook/clients/webservice/resources/sslKeys/customer1/moa-ssl-kunde1(pwd=kunde1).p12 b/spss.handbook/clients/webservice/resources/sslKeys/customer1/moa-ssl-kunde1(pwd=kunde1).p12 Binary files differnew file mode 100644 index 000000000..18d0bb6eb --- /dev/null +++ b/spss.handbook/clients/webservice/resources/sslKeys/customer1/moa-ssl-kunde1(pwd=kunde1).p12 diff --git a/spss.handbook/clients/webservice/resources/sslKeys/customer1/moa-ssl-kunde1.der b/spss.handbook/clients/webservice/resources/sslKeys/customer1/moa-ssl-kunde1.der Binary files differnew file mode 100644 index 000000000..2844e3aab --- /dev/null +++ b/spss.handbook/clients/webservice/resources/sslKeys/customer1/moa-ssl-kunde1.der diff --git a/spss.handbook/clients/webservice/resources/sslKeys/customer1/trustedServers(pwd=servers).keystore b/spss.handbook/clients/webservice/resources/sslKeys/customer1/trustedServers(pwd=servers).keystore Binary files differnew file mode 100644 index 000000000..d32a22f0f --- /dev/null +++ b/spss.handbook/clients/webservice/resources/sslKeys/customer1/trustedServers(pwd=servers).keystore diff --git a/spss.handbook/clients/webservice/resources/sslKeys/customer2/moa-ssl-kunde2(pwd=kunde2).p12 b/spss.handbook/clients/webservice/resources/sslKeys/customer2/moa-ssl-kunde2(pwd=kunde2).p12 Binary files differnew file mode 100644 index 000000000..ca7c31276 --- /dev/null +++ b/spss.handbook/clients/webservice/resources/sslKeys/customer2/moa-ssl-kunde2(pwd=kunde2).p12 diff --git a/spss.handbook/clients/webservice/resources/sslKeys/customer2/moa-ssl-kunde2.der b/spss.handbook/clients/webservice/resources/sslKeys/customer2/moa-ssl-kunde2.der Binary files differnew file mode 100644 index 000000000..27b20cd71 --- /dev/null +++ b/spss.handbook/clients/webservice/resources/sslKeys/customer2/moa-ssl-kunde2.der diff --git a/spss.handbook/clients/webservice/resources/sslKeys/customer2/trustedServers(pwd=servers).keystore b/spss.handbook/clients/webservice/resources/sslKeys/customer2/trustedServers(pwd=servers).keystore Binary files differnew file mode 100644 index 000000000..d32a22f0f --- /dev/null +++ b/spss.handbook/clients/webservice/resources/sslKeys/customer2/trustedServers(pwd=servers).keystore diff --git a/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTP.java b/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTP.java new file mode 100644 index 000000000..646c53947 --- /dev/null +++ b/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTP.java @@ -0,0 +1,114 @@ +package at.gv.egovernment.moa.spss.handbook.clients.webservice; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.util.Vector; + +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.OutputFormat; +import org.apache.xml.serialize.XMLSerializer; +import org.w3c.dom.Document; + +/** + * Diese Klasse implementiert einen einfachen Client für das MOA SP/SS Webservice mittels Apache Axis. Die + * Verbindung erfolgt ungesichert über HTTP. + */ +public class HTTP +{ + // Zugangspunkt für Signaturerstellung (SS) + private static final QName SERVICE_QNAME_ = new QName("SignatureCreation"); + private static final String ENDPOINT_ = "http://localhost:8080/moa-spss/services/SignatureCreation"; + + // Zugangspunkt für Signaturprüfung (SP) +// private static final QName SERVICE_QNAME_ = new QName("SignatureVerification"); +// private static final String ENDPOINT_ ="http://localhost:8080/moa-spss/services/SignatureVerification"; + + // Datei mit dem zu sendenden XML-Request + private static final String XML_REQUEST_FILENAME_ = + "clients/common/resources/requests/CreateXMLSignatureRequest1.xml"; +// "clients/common/resources/requests/CreateXMLSignatureRequest2.xml"; +// "clients/common/resources/requests/VerifyCMSSignatureRequest.xml"; +// "clients/common/resources/requests/VerifyXMLSignatureRequest1.xml"; +// "clients/common/resources/requests/VerifyXMLSignatureRequest2.xml"; + + /** + * Methode main. + * + * Enthält den Beispielcode der nötig ist um von Java aus auf MOA-SPSS zugreifen zu können. Der Zugriff + * passiert über das AXIS-Framework. Die Verbindung erfolgt ungesichert über HTTP. + * + * @param args Wird nicht verwendet. + */ + public static void main(String[] args) + { + try + { + // Datei mit Request einlesen + FileInputStream inputStream = new FileInputStream(XML_REQUEST_FILENAME_); + + // Parser/DOMBuilder instanzieren + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + DocumentBuilder builder = factory.newDocumentBuilder(); + + // XML Datei in einen DOM-Baum umwandeln + Document xmlRequest = builder.parse(inputStream); + + // AXIS-Server instanzieren + Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME_); + + // Call öffnen + Call call = service.createCall(); + + // Neues BodyElement anlegen und mit dem DOM-Baum füllen + SOAPBodyElement body = new SOAPBodyElement(xmlRequest.getDocumentElement()); + SOAPBodyElement[] params = new SOAPBodyElement[] + { + body + }; + + // Call mit Endpoint verknüpfen + call.setTargetEndpointAddress(ENDPOINT_); + + // Call auslösen und die Antworten speichern + System.out.println("Calling ..."); + Vector responses = (Vector) call.invoke(params); + + // Erstes Body Element auslesen + SOAPBodyElement response = (SOAPBodyElement) responses.get(0); + + // Aus der Response den DOM-Baum lesen + Document root_response = response.getAsDocument(); + System.out.println("Return ..."); + + // XML-Formatierung konfiguieren + OutputFormat format = new OutputFormat((Document) root_response); + format.setLineSeparator("\n"); + format.setIndenting(false); + format.setPreserveSpace(true); + format.setOmitXMLDeclaration(false); + format.setEncoding("UTF-8"); + + // Ausgabe der Webservice-Antwort auf die Konsole + XMLSerializer conSerializer = new XMLSerializer(System.out, format); + conSerializer.serialize(root_response); + + // Ausgabe der Webservice-Antwort in Datei + String responseFile = XML_REQUEST_FILENAME_.substring(0, XML_REQUEST_FILENAME_.lastIndexOf('.')) + + ".response.xml"; + XMLSerializer fileSerializer = new XMLSerializer(new FileOutputStream(responseFile), format); + fileSerializer.serialize(root_response); + } + catch (Exception e) + { + e.printStackTrace(); + } + } +}
\ No newline at end of file diff --git a/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSClientAuth.java b/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSClientAuth.java new file mode 100644 index 000000000..4d3b6641d --- /dev/null +++ b/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSClientAuth.java @@ -0,0 +1,154 @@ +package at.gv.egovernment.moa.spss.handbook.clients.webservice; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.security.Security; +import java.util.Vector; + +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.OutputFormat; +import org.apache.xml.serialize.XMLSerializer; +import org.w3c.dom.Document; + +import com.sun.net.ssl.internal.ssl.Provider; + +/** + * Diese Klasse implementiert einen einfachen Client für das MOA SP/SS Webservice mittels Apache Axis. Die + * Verbindung erfolgt gesichert über SSL, und zwar sowohl mit Server- und Clientauthentisierung. + */ +public class HTTPSClientAuth +{ + // Zugangspunkt für Signaturerstellung (SS) + private static final QName SERVICE_QNAME_ = new QName("SignatureCreation"); + private static final String SECURE_ENDPOINT_ = "https://localhost:8443/moa-spss/services/SignatureCreation"; + + // Zugangspunkt für Signaturprüfung (SP) +// private static final QName SERVICE_QNAME_ = new QName("SignatureVerification"); +// private static final String SECURE_ENDPOINT_ = "https://localhost:8443/moa-spss/services/SignatureVerification"; + + // Datei mit dem zu sendenden XML-Request + private static final String XML_REQUEST_FILENAME_ = + "clients/common/resources/requests/CreateXMLSignatureRequest1.xml"; +// "clients/common/resources/requests/CreateXMLSignatureRequest2.xml"; +// "clients/common/resources/requests/VerifyCMSSignatureRequest.xml"; +// "clients/common/resources/requests/VerifyXMLSignatureRequest1.xml"; +// "clients/common/resources/requests/VerifyXMLSignatureRequest2.xml"; + + // SSL Konstanten + public static final String HANDLER = "java.protocol.handler.pkgs"; + + public static final String KEYSTORE = "javax.net.ssl.keyStore"; + public static final String KEYSTOREPASSWORD = "javax.net.ssl.keyStorePassword"; + public static final String KEYSTORETYPE = "javax.net.ssl.keyStoreType"; + + public static final String TRUSTSTORE = "javax.net.ssl.trustStore"; + public static final String TRUSTSTOREPASSWORD = "javax.net.ssl.trustStorePassword"; + public static final String TRUSTSTORETYPE = "javax.net.ssl.trustStoreType"; + + /** + * Methode main. + * + * Enthält den Beispielcode der nötig ist um von Java aus auf MOA-SPSS zugreifen zu können. Der Zugriff + * passiert über das AXIS-Framework. Die Verbindung ist eine SSL Verbindung mit Clientauthentisierung. + * + * @param args Wird nicht verwendet. + */ + public static void main(String[] args) + { + try + { + configureSSL(); + + // Datei mit Request einlesen + FileInputStream inputStream = new FileInputStream(XML_REQUEST_FILENAME_); + + // Parser/DOMBuilder instanzieren + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + DocumentBuilder builder = factory.newDocumentBuilder(); + + // XML Datei in einen DOM-Baum umwandeln + Document root_request = builder.parse(inputStream); + + // AXIS-Server instanzieren + Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME_); + + // Call öffnen + Call call = service.createCall(); + + // Neues BodyElement anlegen und mit dem DOM-Baum füllen + SOAPBodyElement body = new SOAPBodyElement(root_request.getDocumentElement()); + SOAPBodyElement[] params = new SOAPBodyElement[] + { + body + }; + + // Call mit Endpoint verknüpfen + call.setTargetEndpointAddress(SECURE_ENDPOINT_); + + // Call auslösen und die Antworten speichern + System.out.println("Calling ..."); + Vector responses = (Vector) call.invoke(params); + + // Erstes BodyElement auslesen + SOAPBodyElement response = (SOAPBodyElement) responses.get(0); + + // Aus der Response den DOM-Baum lesen + Document root_response = response.getAsDocument(); + System.out.println("Return ..."); + + // XML-Formatierung konfiguieren + OutputFormat format = new OutputFormat((Document) root_response); + format.setLineSeparator("\n"); + format.setIndenting(false); + format.setPreserveSpace(true); + format.setOmitXMLDeclaration(false); + format.setEncoding("UTF-8"); + + // Ausgabe der Webservice-Antwort auf die Konsole + XMLSerializer conSerializer = new XMLSerializer(System.out, format); + conSerializer.serialize(root_response); + + // Ausgabe der Webservice-Antwort in Datei + String responseFile = XML_REQUEST_FILENAME_.substring(0, XML_REQUEST_FILENAME_.lastIndexOf('.')) + + ".response.xml"; + XMLSerializer fileSerializer = new XMLSerializer(new FileOutputStream(responseFile), format); + fileSerializer.serialize(root_response); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + /** + * Konfiguriert JSSE für eine SSL-Verbindung mit Client- und Serverauthentisierung. + */ + private static void configureSSL() + { + Security.addProvider(new Provider()); + System.setProperty(HANDLER, "com.sun.net.ssl.internal.www.protocol"); + + // Konfiguriere Key-Store (enthält privaten Schluessel und Zertifikat des Clients + System.setProperty(KEYSTORETYPE, "PKCS12"); + System.setProperty(KEYSTORE, + "clients/webservice/resources/sslKeys/customer1/moa-ssl-kunde1(pwd=kunde1).p12"); +// "clients/webservice/resources/sslKeys/customer2/moa-ssl-kunde2(pwd=kunde2).p12"); + System.setProperty(KEYSTOREPASSWORD, "kunde1"); +// System.setProperty(KEYSTOREPASSWORD, "kunde2"); + + // Konfiguriere Trust-Store (enthält SSL-Zertifikat des MOA Services, dem vertraut wird) + System.setProperty(TRUSTSTORETYPE, "JKS"); + System.setProperty(TRUSTSTORE, + "clients/webservice/resources/sslKeys/customer1/trustedServers(pwd=servers).keystore"); +// "clients/webservice/resources/sslKeys/customer2/trustedServers(pwd=servers).keystore"); + System.setProperty(TRUSTSTOREPASSWORD, "servers"); + } +}
\ No newline at end of file diff --git a/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSServerAuth.java b/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSServerAuth.java new file mode 100644 index 000000000..cd5036b7d --- /dev/null +++ b/spss.handbook/clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSServerAuth.java @@ -0,0 +1,142 @@ +package at.gv.egovernment.moa.spss.handbook.clients.webservice; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.security.Security; +import java.util.Vector; + +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.OutputFormat; +import org.apache.xml.serialize.XMLSerializer; +import org.w3c.dom.Document; + +import com.sun.net.ssl.internal.ssl.Provider; + +/** + * Diese Klasse implementiert einen einfachen Client für das MOA SP/SS Webservice mittels Apache Axis. Die + * Verbindung erfolgt gesichert über SSL, und zwar nur mit Serverauthentisierung. + */ +public class HTTPSServerAuth +{ + // Zugangspunkt für Signaturerstellung (SS) + private static final QName SERVICE_QNAME_ = new QName("SignatureCreation"); + private static final String SECURE_ENDPOINT_ = "https://localhost:8443/moa-spss/services/SignatureCreation"; + + // Zugangspunkt für Signaturprüfung (SP) +// private static final QName SERVICE_QNAME_ = new QName("SignatureVerification"); +// private static final String SECURE_ENDPOINT_ = "https://localhost:8443/moa-spss/services/SignatureVerification"; + + // Datei mit dem zu sendenden XML-Request + private static final String XML_REQUEST_FILENAME_ = + "clients/common/resources/requests/CreateXMLSignatureRequest1.xml"; +// "clients/common/resources/requests/CreateXMLSignatureRequest2.xml"; +// "clients/common/resources/requests/VerifyCMSSignatureRequest.xml"; +// "clients/common/resources/requests/VerifyXMLSignatureRequest1.xml"; +// "clients/common/resources/requests/VerifyXMLSignatureRequest2.xml"; + + // SSL Konstanten + public static final String HANDLER = "java.protocol.handler.pkgs"; + + public static final String TRUSTSTORE = "javax.net.ssl.trustStore"; + public static final String TRUSTSTOREPASSWORD = "javax.net.ssl.trustStorePassword"; + public static final String TRUSTSTORETYPE = "javax.net.ssl.trustStoreType"; + + /** + * Methode main. + * + * Enthält den Beispielcode der nötig ist um von Java aus auf MOA-SPSS zugreifen zu können. Der Zugriff + * passiert über das AXIS-Framework. Die Verbindung ist eine SSL Verbindung mit Serverauthentisierung. + * + * @param args Wird nicht verwendet. + */ + public static void main(String[] args) + { + try + { + configureSSL(); + + // Datei mit Request einlesen + FileInputStream inputStream = new FileInputStream(XML_REQUEST_FILENAME_); + + // Parser/DOMBuilder instanzieren + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + DocumentBuilder builder = factory.newDocumentBuilder(); + + // XML Datei in einen DOM-Baum umwandeln + Document root_request = builder.parse(inputStream); + + // AXIS-Server instanzieren + Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME_); + + // Call öffnen + Call call = service.createCall(); + + // Neues BodyElement anlegen und mit dem DOM-Baum füllen + SOAPBodyElement body = new SOAPBodyElement(root_request.getDocumentElement()); + SOAPBodyElement[] params = new SOAPBodyElement[] + { + body + }; + + // Call mit Endpoint verknüpfen + call.setTargetEndpointAddress(SECURE_ENDPOINT_); + + // Call auslösen und die Antworten speichern + System.out.println("Calling ..."); + Vector responses = (Vector) call.invoke(params); + + // Erstes BodyElement auslesen + SOAPBodyElement response = (SOAPBodyElement) responses.get(0); + + // Aus der Response den DOM-Baum lesen + Document root_response = response.getAsDocument(); + System.out.println("Return ..."); + + // XML-Formatierung konfiguieren + OutputFormat format = new OutputFormat((Document) root_response); + format.setLineSeparator("\n"); + format.setIndenting(false); + format.setPreserveSpace(true); + format.setOmitXMLDeclaration(false); + format.setEncoding("UTF-8"); + + // Ausgabe der Webservice-Antwort auf die Konsole + XMLSerializer conSerializer = new XMLSerializer(System.out, format); + conSerializer.serialize(root_response); + + // Ausgabe der Webservice-Antwort in Datei + String responseFile = XML_REQUEST_FILENAME_.substring(0, XML_REQUEST_FILENAME_.lastIndexOf('.')) + + ".response.xml"; + XMLSerializer fileSerializer = new XMLSerializer(new FileOutputStream(responseFile), format); + fileSerializer.serialize(root_response); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + /** + * Konfiguriert JSSE für eine SSL-Verbindung mit Serverauthentisierung. + */ + private static void configureSSL() + { + Security.addProvider(new Provider()); + System.setProperty(HANDLER, "com.sun.net.ssl.internal.www.protocol"); + + // Konfiguriere Trust-Store (enthält SSL-Zertifikat des MOA Services, dem vertraut wird) + System.setProperty(TRUSTSTORETYPE, "JKS"); + System.setProperty(TRUSTSTORE, + "clients/webservice/resources/sslKeys/customer1/trustedServers(pwd=servers).keystore"); +// "clients/webservice/resources/sslKeys/customer2/trustedServers(pwd=servers).keystore"); + System.setProperty(TRUSTSTOREPASSWORD, "servers"); + } +}
\ No newline at end of file |