From 6d30f261c618a3b69a8f1be092056383e6dea424 Mon Sep 17 00:00:00 2001 From: Christof Rabensteiner Date: Thu, 18 Jul 2019 09:23:00 +0200 Subject: Integrate Mzs Service Timeout and Handle Async Responses - Service Timeout : Add service timeout to mzs schema (DeliveryRequest / Config), application.yaml, convert service timeout from spring environment to Config, and merge service timeouts in Configs. - Handling of Asynchronous DeliveryRequestStatus: Move "Applying Response Sinks" from backend into dedicated component "MsgResponseSinkHub" and integrate SinkHub into MzsService (apply sinks to asynchronous responses). - Remove line breaks in SignatureVerifier's log statements. - Revise documentation of parameters in application.yaml. --- src/main/resources/application.yaml | 129 ++++++++++++++++++++++++++++++------ src/main/resources/mzs/app2mzs.xsd | 1 + 2 files changed, 109 insertions(+), 21 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 53d1951..7e2797f 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -1,4 +1,4 @@ -### Logging +# Optional logging: level: root: WARN @@ -9,49 +9,118 @@ logging: SignatureVerifier: DEBUG LogResponseSink: INFO -# Default type for java's ssl key/trust store +# Mandatory +# Default type for java's ssl key/trust store. When in doubt, set to +# jks. javax.net.ssl: keyStoreType: jks trustStoreType: jks -# Configure parameters here or in DeliveryRequest/Config. -# Choose a profile in DeliveryRequest/Config/ProfileId. -# If a parameter is missing, moa zs falls back to "default" -# Order: DeliveryRequest/Config > [chosen-profile] > default +# Mandatory +# Defines configuration profiles. Each profile contains all parameters +# that are interpreted by moa-zs to determine how a delivery request +# should be processed. Configure parameters here and/or in +# DeliveryRequest/Config. You can select a profile per delivery +# request by referring to the profile id in +# DeliveryRequest/Config/ProfileId. If a parameter is missing, moa-zs +# falls back to "default" You can override parameters in profiles. +# Parameter have the following (descending) priority: +# DeliveryRequest/Config > [chosen-profile] > default delivery-request-configuration-profiles: + + # Mandatory + # The "default" profile. Will be chosen if + # DeliveryRequest/Config/ProfileId is missing. default: + + # Optional + # Specifies in seconds, how long the mzs service maximally waits + # for a delivery request to complete. If the timeout is reached, + # the service will reply with "PartialSuccess" and handle + # responses asynchronously. A missing service-timeout means that the + # service waits indefinitely. See also: msg-response-sinks, which + # allows you to configure, how moa-zs handles asynchronous + # responses. + service-timeout: 60 + + # Mandatory + # If true, moa-zs asks the tnvz service if the receiver is + # addressable. Requires setting up the tvnz-client. perform-query-person-request: false + + # Optional (Mandatory if perform-query-person-request is true) + # Parameters for the connection to tvnz. Specify url, + # connection-timeout, receive-timeout and ssl here. See msg-client + # for an exhaustive description of all parameters. + tvnz-client: + + # Mandatory + url: http://localhost:8082/tnvz/ + + # Optional + # ssl: ... + # connection-timeout: ... + # receive-timeout: ... + + # Mandatory + # Parameters for the connection to msg. msg-client: + + # Mandatory url: http://localhost:8081/services/DeliveryRequest - # Time in ms after which a connection will be closed. - # 0 means indefinitely. + + # Mandatory + # Time in ms after which a connection will be closed. 0 means + # indefinitely. connection-timeout: 0 - # Time in ms that the client waits after having sent the request. - # 0 means indefinitely. + + # Mandatory + # Time in ms that the client waits after having sent the + # request. 0 means indefinitely. receive-timeout: 0 - # Specifies how MoaZS should a synchronous responses from msg. + # Mandatory + # Specifies how moa-zs should process asynchronous responses from msg. msg-response-sinks: + + # Mandatory + # Save response on the file system under the folder "path". save-response-to-file: + # Mandatory active: false + # Mandatory if activated path: /msg-responses/ + + # Mandatory + # Log response to the at.gv.egiz.moazs.backend.LogResponseSink Logger. log-response: true + + # Mandatory + # Forward the response to mzs service. forward-response-to-service: + # Mandatory active: false + # Mandatory if activated mzs-client: - # TODO: ensure that only one url is needed to - # sent DeliveryRequestStatus / DeliveryNotifications + # TODO: ensure that only one url is needed to sent DeliveryRequestStatus / DeliveryNotifications url: http://service.which.implements.mzs2app.wsdl/services/ # connection-timeout # receive-timeout # ssl... + # Optional + # Add your own profiles (at wish) here. Follow the same structure as the "default" profile. + # Override parameters at wish. + + # Example + # "ssl-profile" is an example for a profile that overrides msg client parameters + # to protect the msg connection with ssl client authentication. ssl-profile: msg-client: url: https://localhost/zusemsg/services/DeliveryRequest ssl: ## Boolean; if true, app will trust all server certificates; - ## if false, server certificate needs to be in truststore. + ## if false, server certificate needs to be in the truststore. trust-all: false ## Boolean; if true, app ignores mismatches between server's host name and ## Certificate's common name / alternative subject name. @@ -65,32 +134,50 @@ delivery-request-configuration-profiles: ## JKS or PKCS12 type: PKCS12 +# Optional # If set to false, moa zs ignores an incomplete default DeliveryRequest-configuration # profile and continues startup. See 'delivery-request-configuration-profiles'. # Default value: true verify-completeness-of-default-delivery-request-configuration: true -### moa spss config +# Mandatory +# Moa Spss Configuration moa.spss: + + # Mandatory is-active: true - # if active, moa spss will validate manifests in xml signatures + + # Mandatory + # If active, moa spss validates manifests in xml signatures. is-manifest-check-active: false + + # Mandatory server: - # path that points to MoaSPSSConfiguration file; can be: + + # Mandatory + # Path that points to MoaSPSSConfiguration file; can be: # - absolute path (unix: starts with /), or # - relative path (otherwise, relative to application's class path) configuration: moa-spss/MOASPSSConfiguration.xml + + # Mandatory + # Select, which trust-profile moa spss uses to verify a signature. default-trustprofile: test-trustprofile +# Optional +# Redis Setup (Cluster Mode) spring: redis: host: 172.17.0.2 port: 6379 +# Mandatory repository: - # duration in minutes before repository records are evicted. + + # Mandatory + # Duration in minutes before repository records are evicted. expiresAfterWrite: 30 -## activate cluster mode -# profiles: -# active: cluster +# Optional +# activate cluster mode +# profiles.active: cluster diff --git a/src/main/resources/mzs/app2mzs.xsd b/src/main/resources/mzs/app2mzs.xsd index da49631..7e70092 100644 --- a/src/main/resources/mzs/app2mzs.xsd +++ b/src/main/resources/mzs/app2mzs.xsd @@ -95,6 +95,7 @@ + -- cgit v1.2.3