Versions Compared

Key

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

...

), der repræsenterer kernekoncepterne i SOSI-skemaet, f.eks. en meddelelse eller et ID-kort.
Når udviklerne har konstrueret disse modelobjekter, er det muligt at "serialisere" dem til XML og vice versa. Deserialisering (fra XML til modelobjekter) udføres også gennem factory-klassen.  Nedenfor vises et meget simpelt flow, hvor en serviceforbruger (f.eks. et medicinsystem) opretter en anmodning, indsætter data i anmodningen, serialiserer den til XML og sender den til en serviceforbruger.

Moduler

I forbindelse med version 3 af Seal.java er det besluttet at opdele koden, så den bliver fordelt i flere moduler. Det gøres bl.a. for at undgå at serviceudbydere behøver at hente al Seal.java koden ned, hvis man kun har behøv for at udstille en DGWS service.

Serviceudbydere kan desuden hente DGWS og IDWS modulerne uden at de samtidigt får WSS4J med ned, da dette modul, for nogen har givet store problemer.

Gliffy Diagram
macroIdea875af9-0275-44cc-bec9-69e985667947
displayNameSeal.java i moduler
nameSeal.java i moduler
pagePin2

Seal-common

Indeholder kode som bruges på tværs af IDWS og DGWS (og evt. fremtidige formater).

Seal-dgws

Indeholder den kode som en serviceudbyder behøver for at kunne udstille en DGWS service.

Seal-idws

Indeholder den kode, som en serviceudbyder behøver for at kunne udstille en IDWS service.

Seal-common-exchange

Koden som bruges til billetomveksling for både DGWS og IDWS.

Seal-dgws-exchange

Bruges hvis man ønsker at billetomveksle DGWS.

Dette gælder f.eks. JWTToOIOSAMLAssertion, OIOSAMLAssertionToIDCard og IDCardToOIOSAMLAssertion

Seal-idws-exchange

Bruges hvis man ønsker at billetomveksle IDWS.

Dette gælder f.eks. OIOBootstrapToIdentityToken, JWTToIdentityToken og EncryptedOIOSAMLAssertionToIdentityToken

Seal-sts

Bruges af STS, og det indeholder alt fra ovenståense moduler og et par ekstra klasser.

Seal-testtools

Bruger Seal-sts til at kunne lave tests mod alle modulerne

Snitfladeændringer

For at kunne lave opdelingen i moduler har vi været nød til at lave nogle ændringer til snitfladen.

SOSIFactory

SOSIFactory findes nu i 3 udgaver:

  • dk.sosi.seal.common.SOSIFactory
    Findes i Seal-common modulet og indeholder primært konstant værdier og simple get metoder.
  • dk.sosi.seal.dgws.SOSIFactory
    Findes i Seal-dgws modulet og indeholder alt fra dk.sosi.seal.common.SOSIFactory. Derudover indeholder klassen metoder som ikke har med signering af Id-kort.
  • dk.sosi.seal.SOSIFactory
    Findes i Seal-dgws-exhange modulet og indeholder alt fra dk.sosi.seal.dgws.SOSIFactory. Og så har den metoder til kopiere VOCES til signeret Id-kort.

Biblioteker

Standard SOSI-factory

...

I Seal 2.1.4 blev OIOSAMLFactory introduceret, som giver funktionalitet til at oprette, analysere, underskrive og validere OIOWS-Trust-meddelelser, der bruges ved udveksling af OIOSAML-påstande, der er udstedt af og IdP til SOSI IDCards.

BST2IDWS

Nedenstående er et simplificeret eksempel på hvordan SOSIFactory benyttes til at oprette et bst2idws request med et indlejret OIO2BST bootstraptoken.

Gliffy Diagram
macroId99dcdcff-1b76-4b1f-a7f2-ee4681b788de
namebst2idws-sequence-diagram
pagePin1

BST2SOSI

Oprettelsen af et bst2sosi request er meget i stil med et bst2idws request:

Gliffy Diagram
macroIde8e07b43-1b45-443c-a736-5a26bdf42672
namebst2sosi-sequence-diagram
pagePin1

OIOBSTSAMLAssertion-factory

OIOBSTSAMLAssertionFactory benyttes til at oprette OIO bootstraptoken objekter givet et xml element.

Sådanne bootstraptokens kan enten være for medarbejdere (hertil benyttes createOIOBSTSAMLAssertion(...)) eller borgere (hertil benyttes createOIOBSTCitizenSAMLAssertion(...)), og identificeres ud fra deres spec version attribut.

OIOIDWS-factory

Siden Seal 2.5.10 understøttes OIO IDWS.

...

OCES3-certifikaterne bruger krypteringsalgoritment AES256 i stedet for 3DES der bruges i OCES2-certifikater. Java 8 understøtter ikke denne krypteringsalgoritme og det er den java Java version skal anvendes på NSP.

...

Code Block
openssl pkcs12 -export -out NSTSSnullAnull_Olsen-new.p12 -in NSTSSnullAnull_Olsen.pem

Der bliver spurgt om et nyt certifikatets nye password - brug f.eks. Test1234.

Det nye certifikat findes i filen NSTSSnullAnull_Olsen-new.p12


Det er nu muligt at se certifikatet med keytool. Eksempel hvor certifikatets password er Test1234:

Code Block
keytool -v -list -keystore NSTSSnullAnull_Olsen-new.p12 -storepass Test1234

Tidsangivelser

Seal håndterer tidsangivelser i forhold til DGWS standarden, som angiver følgende format:

Code Block
languagetext
yyyy-mm-ddThh:MM:ssZ

Seal accepterer også tidsstempler i lokal tid (uden 'Z') og med fraktioner af sekunder (disse ignoreres).

Eksempler på gyldige tidsangivelser:

  • 2020-01-01T12:00:00Z
  • 2020-01-01T12:00:00
  • 2020-01-01T12:00:00.555Z (tolkes som 2020-01-01T12:00:00Z)
  • 2020-01-01T12:00:00.555 (tolkes som 2020-01-01T12:00:00)

Eksempler på ugyldige tidsangivelser:

  • 2020-01-01T12:00:00+01
  • 2020-01-01T12:00

Properties

NavnBeskrivelseDefault værdiGældende fra
sosi:certificateloader.timeoutRead timeout på hentning af intermediate certifikater. Sættes i millisekunder.30002.6.12



Footnotes Display
resettrue