Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

1.Inleiding

...

De volgende afbeelding toont de interactie tussen de verschillende componenten wanneer een EAWS gebruikt wordt als (dynamische) bron voor contextwaarden: 

 

Image Modified

De stappen gaan als volgt:

...

Voor de gegevensuitwisseling tussen het Gebruikersbeheer en de EAWS, wordt gebruik gemaakt van een tussenliggende component, i.e. Datapower. Hieronder kan een vereenvoudigde afbeelding gevonden worden van de opzet. De verschillende componenten en eigenschappen zijn aangeduid op de figuur, waar kan gezien worden dat geen rechtstreeks communicatie tussen Gebruikersbeheer en EAWS zal plaatsvinden.  

 3.Beveiliging & Mutual SSL

...

5.Technische Documentatie: EAWS - SOAP Webservice

De volgende figuur toont de interactie tussen WebIDM en de EAWS webservice wanneer WebIDM de contextwaarden opvraagt bij de EAWS.

Image Modified

WebIDM initieert de communicatie en stuurt de organisatiecode van de gekozen werkrelatie naar de EAWS. Het antwoord van de EAWS naar WebIDM dient opnieuw de gekozen organisatiecode te bevatten, én de contextwaarden die WebIDM mag weergeven aan de lokale beheerder voor die organisatie.

De volgende secties beschrijven de structuur van de SOAP-berichten, het XSD-schema, web service technische beschrijving (WSDL), en een voorbeeld-implementatie in JAVA. 

5.1 Voorbeeld Request

Volgend XML-bestand toont een voorbeeld SOAP-bericht datWebIDM verstuurt naar de EAWS. De enige parameter die WebIDM meestuurt in de request is de organisatiecode (GID: OVO-code, EA & LB: KBO-nummer, OV: vestigingsnummer): 

View file
nameRequest_example.xml
height150

De Body van het bericht bevat het element ‘QuerySingleFilterBeschikbareEntitlementRequest’. Dit element heeft een aantal kind-elementen, waarin uiteindelijk op het diepste niveau de organisatiecode vervat zit. Dit is de organisatiecode die de EAWS kan gebruiken om de gepaste contextwaarden op te zoeken en terug te sturen naar WebIDM.
Daarnaast vinden we in dit element ook het element ‘SelectAttributeList’ terug. De opgegeven attribuutwaarden binnenin dit element verwijzen naar de achterliggende naamgeving om de technische waarde en displaynaam van de contextlijst door te sturen. Deze naamgeving ligt vast, i.e. ContextWaarde en ContextNaam.

5.2 Voorbeeld

Volgend XML-bestand toont een voorbeeld SOAP-bericht dat de EAWS web service terugstuurt naar WebIDM. Het antwoord dient de originele vraag te bevatten (i.e. het ‘SingleWhereFilterQuery’ element uit de request), en de contextwaarden die van toepassing zijn voor de organisatiecode uit de request.

Voor elke contextwaarde dient de web service een ‘ResultRow’ aan te maken, die zowel de technische waarde als de displaynaam van de context bevat. De displaynaam is de waarde die WebIDM weergeeft aan de lokale beheerder tijdens het kiezen van de contexten, de technische waarde is de waarde die WebIDM wegschrijft in het attribuut met rolleninformatie voor het recht:

View file
nameResponse_example.xml
height150

5.3 Web Service Schema en Beschrijving

Het volgende ZIP-bestand bevat een gedetailleerde technische beschrijving van de web service (WSDL-bestand), en de structuur van de elementen (XSD-bestanden) waaraan WebIDM en de EAWS moeten voldoen om te communiceren met elkaar.  

View file
nameEAWS-XSD-WSDL.zip
height150

5.4 Referentie Implementatie (JAVA - SPRING BOOT)

Het volgende ZIP-bestand bevat een referentie-implementatie van een EAWS web service, geschreven in JAVA, met behulp van het Spring Boot framework.

View file
nameEAWS-web-service.zip
height150

Het belangrijkste bestand in dit project is ‘src/main/java/webservice/OrganisationEndpoint.java’. Dit bestand implementeert de methode ‘getResponse()’, waarin de SOAP-request binnenkomt en gedecodeerd wordt.

Op basis van de organisatiecode in het ‘QuerySingleFilterBeschikbareEntitlementRequest’ object, haalt de web service één of meerdere bijhorende contextwaarden op (in dit voorbeeldproject op basis van een XML-bestand dat de organisaties en bijbehorende contexten bevat).

De web service stuurt deze contextwaarden dan terug naar WebIDM in een ‘QuerySingleFilterBeschikbareEntitlementStringResponse’ object.

In dit voorbeeld wordt lokaal de webservice opgestart op poort 9090. Dit wordt geconfigureerd in het bestand ‘src/main/resources/application.properties’. In die folder staan verder ook nog de schemadefinities en het bronbestand dat de organisaties en bijbehorende contextwaarden vastlegt.

Het project is gebaseerd op het volgende standaard Spring Boot project: https://spring.io/guides/gs/producing-web-service/, en heeft volgende requirements:

  • Java JDK 1.8
  • Gradle 2.3+ of Maven 3.0+

Spring Boot zorgt voor een self-contained web service, waardoor developers dit project eenvoudig zelf kunnen aanpassen, bouwen en opstarten.

De web service kan getest worden met bv. Postman, met behulp van volgende requests:

View file
nameEAWS.postman_collection.json
height150