diff options
author | Christof Rabensteiner <christof.rabensteiner@iaik.tugraz.at> | 2019-05-27 09:46:36 +0200 |
---|---|---|
committer | Christof Rabensteiner <christof.rabensteiner@iaik.tugraz.at> | 2019-05-27 10:28:56 +0200 |
commit | 695ab1f836160d40c4352a2c3127f4f687912817 (patch) | |
tree | cd23bf0e2f6430bd2f5caf40825705e3fe644f98 /src/main/java/at/gv/egiz/moazs/msg/MsgClient.java | |
parent | 0a316ada10bb88720dd15958168409fcb9fcf800 (diff) | |
download | moa-zs-695ab1f836160d40c4352a2c3127f4f687912817.tar.gz moa-zs-695ab1f836160d40c4352a2c3127f4f687912817.tar.bz2 moa-zs-695ab1f836160d40c4352a2c3127f4f687912817.zip |
Intercept Incoming DeliveryRequestStatus and Store as byte[]
- Add egovutils dependency (Reason: Need DomUtils to serialize /
unserialize Soap Message via DOMParser)
- Add Incerceptor to MsgClient / -Factory that stores the message
content byte-by-byte in the DeliveryRepository. The format is
required for successfully validating a DeliveryRequestStatus.
- Add SoapUtils, which interacts with byte[] Soap message.
- Add CXFMessageUtils, which interacts with CXF Messages from
interceptor chains.
- Refactor xsd namespaces: Move them out from the PrefixMapper and
into a dedicated class.
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/msg/MsgClient.java')
-rw-r--r-- | src/main/java/at/gv/egiz/moazs/msg/MsgClient.java | 43 |
1 files changed, 13 insertions, 30 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/msg/MsgClient.java b/src/main/java/at/gv/egiz/moazs/msg/MsgClient.java index 6f0b1d9..fd36a92 100644 --- a/src/main/java/at/gv/egiz/moazs/msg/MsgClient.java +++ b/src/main/java/at/gv/egiz/moazs/msg/MsgClient.java @@ -6,6 +6,8 @@ import at.gv.zustellung.msg.xsd.DeliveryRequestStatusType; import at.gv.zustellung.msg.xsd.DeliveryRequestType; import org.apache.cxf.jaxws.JaxWsClientFactoryBean; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; +import org.apache.cxf.message.Message; +import org.apache.cxf.phase.PhaseInterceptor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -15,53 +17,34 @@ public class MsgClient { private final DeliveryRequestType msgRequest; private final ConfigType config; + private final PhaseInterceptor<? extends Message> interceptor; - MsgClient(DeliveryRequestType msgRequest, ConfigType config) { + MsgClient(DeliveryRequestType msgRequest, ConfigType config, PhaseInterceptor<? extends Message> interceptor) { this.msgRequest = msgRequest; this.config = config; + this.interceptor = interceptor; } + /** + * Send {@code msgRequest} to {@code Config/Server/ZUSEUrlID} and run {@code interceptor} on response. + * @return + */ public DeliveryRequestStatusType send() { - var proxy = connect(config); - return proxy.delivery(msgRequest); - } private App2ZusePort connect(ConfigType config) { - new JaxWsClientFactoryBean(); - var address = config.getServer().getZUSEUrlID(); - var factory = new JaxWsProxyFactoryBean(); + + var factory = new JaxWsClientFactoryBean(); factory.setServiceClass(App2ZusePort.class); factory.setAddress(address); + factory.getInInterceptors().add(interceptor); - var proxy = factory.create(); - -// var client = ClientProxy.getClient(proxy); -// var conduit = (HTTPConduit) client.getConduit(); -// -// if (addressIsHttps(address)) { -// var tlsParams = new TLSClientParameters(); -// tlsParams.setSSLSocketFactory(createSSLContext().getSocketFactory()); -// conduit.setTlsClientParameters(tlsParams); -// } + var proxy = new JaxWsProxyFactoryBean(factory).create(); return (App2ZusePort) proxy; } - -// private SSLContext createSSLContext() { -// java.util.Properties props = new Properties(); -// props.entrySet(); -// -// // return SSLUtils.getPropertiesSSLContext(this.props, this.configDir, this.propsPrefix, forceTrustAllManager); -// return null; -// } - - private boolean addressIsHttps(String address) { - return address.startsWith("https://"); - } - } |