Formål

Dette dokument har til formål at gøre det muligt for andre end den oprindelige leverandør at overtage videreudvikling af DGWS/IDWS Proxy.

Dokumentationen er være rettet mod udviklere og IT-arkitekter, som ikke på forhånd har kendskab til komponenten, og som ikke har adgang til komponentens oprindelige udviklere.

Det forudsættes at læseren har læst dokumentet Design og Arkitektur.

Ændringslog

Version

Dato

Ændring

Ansvarlig

1.0

2017-12-11

Initielt dokument

Trifork

1.12018-05-12Tilrettet i henhold til ændringer i version 1.7.5Trifork

Introduktion til projektet

DGWS / IDWS Proxy komponenten er en applikation, der kan fungere som proxy for andre applikationer, der udstiller services på DGWS og/eller IDWS form.

Den samme applikation kan således stå for verifikation af ID-kort og IDWS-tokens for flere forskellige ”service provider applikationer”. Dette sikrer at disse tokens valideres korrekt og ensartet for en række forskellige applikationer.

Samtidig kan komponenten stå for en række andre opgaver, som er ensartet for disse typer applikationer og derfor med fordel kan placeres i en fælles proxy:

  • Validere ID-kort / IDWS-tokens
  • Udtrække relevante attributter og give dem videre på samme måde uanset om det er DGWS eller IDWS - konkret i en JSON struktur i en HTTP header
  • Sørge for håndtering af retransmission (pt. ikke implementeret)
  • Sørge for Audit- og SLA-logning
  • Forwarde (validerede) requests til service-applikationen

Proxyen kompileres til en enkelt WAR-fil/komponent WSProxy.war. Herudover indeholder kodebasen også en testservice, som kompileres til en særskilt war. Denne anvendes hovedsageligt til integrationstests.

Proxyen giver kun mening i forbindelse med en ”service provider applikation”, som requests kan forwardes til, og vil således altid skulle installeres på samme server som en anden service.

Specielle bemærkninger

Applikationsserver

Til drift benyttes Wildfly 8.2, men servicen kan også afvikles under f.eks. Apache Tomcat.

Database

Den aktuelle version af proxyen har ingen database. Dette vil dog skulle tilføjes for at understøtte retransmission.

Logs

Der kan som udgangspunkt logges til følgende logfiler:

  • <name>-proxy.log
  • <name>-audit.log

hvor name er navnet på war-filen.

Se eksempel på konfiguration af logning i installationsvejledningen for FSK, som anvender DGWS/IDWS proxyen.

Opsætning af udviklingsmiljø

Al kode findes i NSP's Subversion: https://svn.nspop.dk/svn/trifork/dgws_idws_proxy/

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

  • bygge war-filen med Maven og køre tests
  • opsætte udviklingsmiljø (her antages IntelliJ)

Kodestruktur

Koden er opdelt i følgende submoduler:

  • testservice: Indeholder en test-webservice, som anvendes til integrationstests i forbindelse med Maven byg.
  • testservice-schemas: Indeholder WSDL og XSD-filer for testservicen, og genererer webservice client-klasser.
  • wsproxy: Dette modul udgør proxy-servicen.
  • wsproxy-schemas: Indeholder XML-schemas for SOAP-Headers, der anvendes af f.eks. DGWS.
  • wsproxy-api: Indeholder metoder til at serialisere/deserialisere de data, der forwardes af proxyen. Den applikation, der forwardes til, kan anvende dette API til at få fat i proxy-data.
  • testutils: Indeholder hjælpeklasser til test. Den applikation, der forwardes til, kan anvende disse klasser til integrationstests, som omfatter proxyen.

Bygge WAR filer

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

  • En Subversion-klient
  • Java 8
  • Maven

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

  • Check projektet ud fra subversion
  • For at bygge projektet, foretage unittests samt at bygge war-filer foretages kommandoen: mvn clean install

Opsætning af IntelliJ Idea

Man åbner pom.xml fra rodbiblioteket. Efter en mvn clean install bør dependencies være på plads.

Der anvendes Lombok-annotationer i projektet (f.eks. @Data og @Log4j2), så IntelliJ Lombok plugin skal installeres for at de automatisk genererede get-, set- og log-metoder opfattes rigtigt af IntelliJ.

Lokal deployment/udførsel

Hvis man ikke har installeret Wildfly, kan proxy og testservicen deployes til Tomcat i IntelliJ. Opret en Tomcat runtime konfiguration (Tomcat 7 kan anvendes), og specificer deployment af hhv. testservice.war og wsproxy.war.

Deployment på Wildfly

Når man udvikler kan det være praktisk at deploye til en lokal Wildfly server, da det er denne applikationsserver som bruges i NSP produktionsmiljøet. Der henvises til Installationsvejledningen for nærmere instrukser.

  • No labels