Overblik

STS-UUID2CPR-PROXY er en service, der afkobler integrationen mellem SOSI-STS'en og NemLog-in opslagstjenesterne uuid2cpr, pid2cpr og uuid2rid. Diagrammet nedenfor viser de komponenter som servicen kommunikerer med.

Overblik

Opbygning af service

STS-UUID2CPR-PROXY er organiseret i to moduler: uuid2cpr-proxy-api og uuid2cpr-integration.

Uuid2cpr-proxy-api

Modulet uuid2cpr-proxy-api er ansvarligt for at udstilling af et REST-api, overvågning af komponentens tilstand mv. Servicen er bygget på Servlets 3.1, og anvender RestEasy til udstille en OpenAPI-specifikation af servicen, og til generering af service-stubbe.

Under byggeprocessen bliver der konstrueret modificerede udgaver af jar-filerne for de to afhængigheder cxf-rt-ws-security og wss4j-ws-security-dom. Modifikationen varetages af pom-filen, og det er markeret med kommentarer heri, hvor modifikationen foregår:

<!-- Begin creation of custom jar-files. -->

[ ... ]

<!-- End creation of custom jar-files. -->


De modificerede afhængigheder ender under /lib, hvor de er tilgængelige for Docker-filen. I Docker-filen kopieres filerne ind, således at de overskriver standard-udgaverne af afhængighederne.

Uuid2cpr-integration

Modulet uuid2cpr-integration er ansvarligt for integrationen med Digitaliseringsstyrelsens NemLog-in opslagstjenester.. Integrationen er en modificeret udgave af Digitaliseringsstyrelsens OIOIDWS.Java-implementation, som er bygget på Apache CXF. Versionen af Apache CXF der anvendes er 3.3.7, da det er denne version NSP-platformen kommer med.

Pakkerne med præfikset org.apache indeholder tilpassede versioner af klasserne AbstractBindingBuilder (fra cxf-rt-ws-security-afhængigheden) og STRTransform (fra wss4j-ws-security-dom-afhængigheden). Klasserne matcher de tilsvarende klasser fra de officielle versioner af afhængighederne, og ændringerne er markeret med okmmentarer som følger:

// BEGIN DIGST WORKAROUND

[ ... ]

// END DIGST WORKAROUND

På denne måde bliver de modificerede udgaver brugt, når man kører integrationstesten i Uuid2CprClientIT.

Opgradering af modificerede afhængigheder

De to afhængigheder der er modificeret er cxf-rt-ws-security og wss4j-ws-security-dom. Hvis man ønsker at opgradere CXF, skal man derfor håndtere rettelserne til disse to afhængigheder. Opgradering foregår efter følgende fremgangsmåde:

  1. Find de nye versioner af de modificerede klasser. De officielle repositories er hhv. https://github.com/apache/cxf og https://github.com/apache/ws-wss4j.
  2. Kopier de nye versioner ind i uuid2cpr-integration modulet, og tilpas dem. Afhængigt af hvilken version der opgraderes til, kan dette være mere eller mindre svært. Ved udvikling af servicen er Digitaliseringsstyrelsens implementation, som anvender CXF 3.0.16, tilpasset til at anvende CXF 3.3.7, som er den version der pt. anvendes på NSP-platformen.
  3. Test at rettelserne virker ved at køre integrationstesten i Uuid2CprClientIT.

Såfremt det er de samme klasser der tilrettes i, så bør det ikke være nødvendigt at tilpasse hvordan jar-filerne modificeres.

  • No labels