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:

  • Opsætte udviklingsmiljø (her antages IntelliJ)

  • Bygge war-filen med Maven og køre tests 

Bygge WAR filer

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

  • Git
  • Java 8

  • Maven

  • Docker

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

  1. Klon projektet fra Git
  2. Byg projektet
    • mvn clean install

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 to ting være opfyldt:

  • ens IP skal være være white listet hos Trifork.
  • man skal anvende 2-vejs TLS.

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. Dette er gjort vha environment variablen DIGITALPOST_FGVHR_URL, som spring sørger for bliver til digitalpost.fgvhr.url. På den måde bliver servicens property fil ikke påvirket af dette setup.

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 testvejledningen.

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



  • No labels