Versions Compared

Key

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

...

Distribution

De binære pakker er tilgængelige igennem NSPOPs Nexus (pakke manager):

https://nexus.nspop.dk/nexus/service/rest/repository/browse/public/dk/sosi/seal/seal/

Her findes også SNAPSHOT udgaver, som kan bruges under udvikling af funktionalitet, der skal testes inden release.

Man anvender Seal.Java fra en komponent ved at tilføje følgende Maven dependency:

Code Block
<dependency>
	<groupId>dk.sosi.seal</groupId>
	<artifactId>seal</artifactId>
	<version>3.x.x</version>
</dependency>

Kodestruktur

Modelobjekter

De helt centrale byggeblokke i Seal.Java er en række modelobjekter der afpejler eksempelvis et request, response eller en sikkerhedsbillet (OIO SAML assertion eller ID-kort).

Disse modelobjekter konstrueres vha. af en række model-builder klasser og kaldene til disse er samlet i nogle factory-klasser, så der kun er en enkelt indgang pr. omveksling.

Modelobjekterne bliver signeret som en del af opbygningen.


Ud over metoder til konstruktion af modeobjekter, så indeholder factory-klasserne også indgange til følgende:

  • DOM-builders benyttes til at serialisere modelobjekter til XML dokumenter.
  • Model-builders benyttes til at deserialisere XML dokumenter til modelobjekter

I det følgende vises et pseudokode eksempel på hvordan et request der indeholder et bootstrap Token opbygges:

Code Block
// Brug denne factory
OIOSAMLFactory factory = new OIOSAMLFactory();


// Opbyg bootstrap token
OIOSAMLAssertionBuilder oiosamlAssertionBuilder = factory.createOIOSAMLAssertionBuilder();
oiosamlAssertionBuilder.setSigningVault(signingVault);
...
OIOSAMLAssertion oiosamlAssertion = oiosamlAssertionBuilder.build();


// Opbyg STS request (serialisering)
OIOSAMLAssertionToIDCardRequestDOMBuilder domBuilder = factory.createOIOSAMLAssertionToIDCardRequestDOMBuilder();
domBuilder.setSigningVault(signingVault);
...
Document consumerStsRequestDocument = domBuilder.build();


// STS modtager request (deserialisering)
OIOBootstrapToIdentityTokenRequest stsRequest = factory.createOIOBootstrapToIdentityTokenRequestModelBuilder().build(consumerStsRequestDocument);

I underdokumenter til anvenderguiden findes der komplette eksempler der vises hele flowet mellem consumer, provider og STS.



Signering

Et andet centralt begreb i Seal.Java er CredentialVault, der benyttes til at afkoble brugen af certifikater og keystores. Dermed behøver man ikke kende til den underliggende implementation. Det giver mulighed for at udskifte implementering, f.eks. at bruge Java KeyStore, HSM (Hardware Security Module),  filbaseret vault eller noget andet.

Eksempel:Når man vil anvende Seal.Java er indgangen en række factory klasser. 



Oversigt over klasser og metoder

...