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
Projektet bygges og unit tests afvikles med følgende Maven kommando:
mvn clean install
Der genereres desuden en testrapport.
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:
Opsætte udviklingsmiljø (her antages IntelliJ)
Følgende software er nødvendigt for at bygge projektet:
Java 8
Maven
Gennemfør følgende steps for at bygge WAR filer:
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
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.
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 |
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 |