Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Koden bygges vha. Maven vha. følgende kommando i roden af projektet:

Code Block
languagebash
mvn clean install

Unittests afvikles under byg, men kan også kaldes selvstændigt vha.:

mvn test
Code Block
languagebash


Udvikling

Herunder vejledning til udviklingen i forskellige områder af Seal.java. I Seal.Java stiller helt overordnet følgende funktionalitet til rådighed:

...

Code Block
titleSimple unsigned XML document
collapsetrue
<?xml version="1.0" encoding="UTF-8" ?>
<person xmlns="http://www.sosi.dk/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <fornavn id="elmtosign"><value>Hans</value></fornavn>
  <efternavn><value>Hansen</value></efternavn>
</person>

Når det skal signeres skal man medsende en konfiguration der angiver hvilken del af dokumentet der skal signeres og i dette tilfælde er det elemetet med attributten "id=elemtosign". 

...

Code Block
titleSimple signed XML document
collapsetrue
<?xml version="1.0" encoding="UTF-8"?>
<person xmlns="http://www.sosi.dk/"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <fornavn id="elmtosign">
        <value>Hans</value>
        <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="OCESSignature">
            <ds:SignedInfo>
                <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
                <ds:Reference URI="#elmtosign">
                    <ds:Transforms>
                        <ds:Transform
                            Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                        <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                    </ds:Transforms>
                    <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                    <ds:DigestValue>QW77ZSa8bItvTzJ6Mx3U0UuhCBo=</ds:DigestValue>
                </ds:Reference>
            </ds:SignedInfo>
            <ds:SignatureValue>
                LvPqO4dbw9UglyNnkaIKN4oKaYCzv/pqcfNRzPd8UdUYiyRKY3zkCMdDB9EsjOp7ZsVym/O2mODQs8V34JjCVBQVHfwsQv8Ku0v...
            </ds:SignatureValue>
            <ds:KeyInfo>
                <ds:X509Data>
                    <ds:X509Certificate>
                      MIIGyzCCBP+gAwIBAgIUIp4rXilrr1cv616bbYPuFN68rIowQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoG...
                    </ds:X509Certificate>
                </ds:X509Data>
            </ds:KeyInfo>
        </ds:Signature>
    </fornavn>
    <efternavn>
        <value>Hansen</value>
    </efternavn>
</person>

Signaturen kan man bryde op i følgende dele:

...

Gliffy Diagram
macroId1102cbf5-78ef-49c9-8e14-68003ca12ccb
displayNameSeal.Java-Encrypt-Decrypt
nameSeal.Java-Encrypt-Decrypt
pagePinpageid4268420133


Den grundlæggende forskel på Seal.Java 2.x og Seal.Java 3.x er at førstnævnte benytter Apache Santuario, hvor det krypterede dokument har et bestemt format.

...

<root> <ToEncrypt> <foo>bar</foo> </ToEncrypt> </root>
Code Block
titleSimpelt XML dokument

Den krypterede udgave ser således ud:

...