Page History
...
- Identificér endpoint URL'en for servicen
- Find servicens WSDL
- Find ud af hvorvidt servicen skal kaldes gennem SOSI-Gateway
Notér 'soapAction' attributten for hver operation i servicens WSDL – bemærk at 'soapAction' attributten er mandatory for HTTP-bundne webservices jf. WSDL specifikationen \[WSDL\]
- Identificér en fælles prefix for alle de noterede 'soapActions'
- Definér en timeoutgrænse for hver operation
- Tilføj nu et <Endpoint> tag til DCC'en konfigurationsfil med følgende attributter:
- 'ActionPrefix' sættes til den identificerede fælles prefix
- 'URL' sættes til URL'en for servicen
- 'ProxyURL' (optionel) sættes til URL'en for SOSI-Gateways 'proxy' snitflade såfremt servicen skal tilgås gennem denne
- 'IdcardMaxAgeMinutes' (optionel) – se afsnittet 'IdcardMaxAgeMinutes instruktionen' længere nede
- 'DoNotVerifySSLHostname' (optionel) – se afsnittet 'SSL/TLS håndtering' længere nede
- 'WSA_Headers_Processing' (optionel) – se afsnittet 'WS-Addressing processering' længere nede
- Tilføj nu et <Action> tag under <Endpoint> tagget for hver af de identificerede 'soapActions' og sæt 'Name' attributten på <Action> tagget til 'soapActions' navn - uden den identificerede fælles prefix. Under hver <Action> tag tilføjes derefter et <DecouplingModel> tag med værdien 'synchronous_timeout' og et <Timeout> tag med det definerede timeout for operationen som angives i millisekunder.
- SOSI-DCC genstartes for at få konfigurationsændringen til at slå i gennem
...
Code Block |
---|
<?xml version="1.0" encoding="UTF-8"?> <Endpoint ActionPrefix="http://www.dkma.dk/medicinecard/xml.schema/"URL="http://triforkprodtest.lms.trifork.com/fmk12/ws/MedicineCard"ProxyURL="http://localhost:8080/sosigw/proxy/soap-request"IdcardMaxAgeMinutes="560"> <Action Name="2009/01/01#GetMedicineCard"> <DecouplingModel>synchronous_timeout</DecouplingModel> <Timeout>30000</Timeout> </Action> <!-- flere actions --> <Action Name="2011/01/01#CreatePrescriptionMedicationWithoutCPR"> <DecouplingModel>synchronous_timeout</DecouplingModel> <Timeout>30000</Timeout> </Action> </Endpoint> |
...
Code Block |
---|
<?xml version="1.0" encoding="UTF-8"?>
<Endpoint ActionPrefix="http://www.example.org#" URL="http://foobar.com/example/*">
<Action Name="doIt">
<DecouplingModel>synchronous_timeout</DecouplingModel>
<Timeout>10000</Timeout>
</Action>
</Endpoint>
|
...
IdcardMaxAgeMinutes instruktionen
For en service der kaldes gennem SOSI-Gateway kan der angives en IdcardMaxAgeMinutes konfigurationsparameter som sættes til den alder i minutter et idkort højst må have for at servicen vil acceptere den. Hvis denne parameter sættes tilføjer DCC'en en SOSI-GW specifik soap header til kaldet med parameterværdien. Når SOSI-GW modtager kaldet vil den afvise den med en standard 'no valid idcard in cache' hvis idkortet i dens cache er ældre en angivet i parameteren.
Fordelen ved at sætte denne parameter er at klienter spares for et kald i de tilfælde hvor der er et idkort i SOSI-GW som er gyldigt, men for gammel i forhold til den service der bliver kaldt: Fremfor at de får en fejlbesked fra servicen om at idkortet er for gammel og derefter skal foretage et eksplicit login til SOSI-GW (som består af to kald), får de i stedet et fejlsvar fra SOSI-GW med en implicit login header og kan derefter foretage et login til SOSI-GW med et enkelt kald.
Ulempen ved at benytte parameteren er at værdien skal afstemmes med serviceudbyderen.
SSL/TLS håndtering
For udgående HTTPS kald validerer DCC'en som udgangspunkt 'trust' af det kaldte endpoint's SSL/TLS-server-certifikat mod Java's egen truststore.
Det er muligt at udvide 'trust' til at omfatte certifikater (også udstedende rod-/kryds-certifikater) fra et lokalt truststore.
Det lokale truststore skal være et standard Java KeyStore fil, som indeholder de trustede (almindelige eller udstedende) certifikater. KeyStoren filen placeres i $JBOSS_HOME/standalone/configuration/ og konfigureres i DCC'ens konfigurationsfil (dcc-config.xml) med filnavn og password, feks som:
...
Som default foretages hostname verifikation af server-certifikatet (wildcards er understøttet) – dette er dog muligt at slå fra på endpoint/action niveau ved at sætte 'DoNotVerifySSLHostname' (for XML baseret endpoint konfiguration) eller 'DO_NOT_VERIFY_SSL_HOSTNAME' (for database baseret konfiguration) til 'true'.
WS-Addressing processering:
Der kan konfigureres hvordan WS-Addressing headere i routede kald skal håndteres af DCC. Følgende tre modeller understøttes:
...