STS-UUID2CPR-PROXY er en service, der afkobler integrationen mellem SOSI-STS'en og NemLogin Uuid2Cpr-servicen. Diagrammet nedenfor viser de komponenter som servicen kommunikerer med.
STS-UUID2CPR-PROXY er organiseret i to moduler: uuid2cpr-proxy-api og uuid2cpr-integration.
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.
Modulet uuid2cpr-integration er ansvarligt for integrationen med Digitaliseringsstyrelsens Uuid2Cpr-service. 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.
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:
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.