Overblik

Dette dokument beskriver projektstrukturen i Fravalg af Genoplivning Ved Hjertestop Register-service og har derudover til formål at gøre det muligt for andre end den oprindelige leverandør at overtage videreudvikling af projektet. Dokumentet bygger videre på informationen beskrevet i de andre dokumenter tilhørende projektet.

Projektet er opbygget som et Maven multi-module project, hvor nogle moduler kompilerer til jar-filer og andre til war-filer 

Afvikling af unit-tests

Projektet bygges og unit tests afvikles med følgende Maven kommando:

mvn clean install

Der genereres desuden en testrapport.

Opsætning af udviklingsmiljø

Al kode findes i NSP Git: https://git.nspop.dk/scm/com/fravalg-af-genoplivning-ved-hjertestop-register.git

Efter at projektet er checket ud vil man typisk gøre følgende:

Bygge WAR filer

Følgende software er nødvendigt for at bygge projektet:

Gennemfør følgende steps for at bygge WAR filer:

  1. Klon projektet fra Git
  2. Byg projektet

Deployment med Docker

Når man udvikler kan det være praktisk at deploye applikationen lokalt. Dette kan gøres vha. Docker Compose-filen under compose/development/docker-compose.yml.

docker-compose up -d --build


Adgang til Trifork digital post komponent

For at få adgang til den digitale post komponent fra det lokale udviklingsmiljø, skal 2 ting være opfyldt:


Da digital post servicens ikke selv kender noget til disse krav, er  2-vejs TLS sat i op i development docker-compose setup'et vha. servicen digitalpost-http. Her gøres brug af et certifikat, som skal være kendt hos Trifork. Metoden, som er anvendt til at skaffe de dele som servicen skal anvende, er beskrevet nedenfor i afsnittet "udræk af certifikat og private key fra keystore". Fravalgs afsendelse af digital post, skal derfor i det lokale docker compose setup anvende denne digitalpost-http som endpoint.

For at køre fravalgs fulde integrationstest skal man have adgang til digital post kompoenten hos Trifork. Man kan dog undlade denne del fra integrationstesten - skulle man ikke have adgang - se test vejledening.

API dokumentation til Post Komponenten findes her.

Udtræk af certifikat og private key fra keystore

Certifikat

Træk certifikatet ud fra PKCS12 keystore i CER format:

keytool -exportcert -keystore NSP_Test_Service_Consumer_sds.p12 -storepass Test1234 -alias sosi:alias_system -file digitalpost-https.cer

Konverter cerfikatet fra CER til PEM format:

openssl x509 -in digitalpost-https.cer -outform PEM -out digitalpost-https.crt

Det burde være muligt at bruge denne kommando i stedet for keytool, men af en eller anden grund virker det ikke:

openssl pkcs12 -in NSP_Test_Service_Consumer_sds.p12 -nokeys -clcerts -password pass:Test1234

Private Key

Træk private key ud fra PKCS12 keystore med password beskyttelse:

openssl pkcs12 -in NSP_Test_Service_Consumer_sds.p12 -out digitalpost-https-password.key -password pass:Test1234 -passout pass:Test1234

Bemærk at denne kommando godt kan give en fejl "Error outputting keys and certificates ....", men den private key'en kommer stadig ud.


Fjern password beskyttelsen:

openssl rsa -in digitalpost-https-password.key -out digitalpost-https.key -passin pass:Test1234