aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/moazs/msg/MsgClient.java
diff options
context:
space:
mode:
authorChristof Rabensteiner <christof.rabensteiner@iaik.tugraz.at>2019-05-27 09:46:36 +0200
committerChristof Rabensteiner <christof.rabensteiner@iaik.tugraz.at>2019-05-27 10:28:56 +0200
commit695ab1f836160d40c4352a2c3127f4f687912817 (patch)
treecd23bf0e2f6430bd2f5caf40825705e3fe644f98 /src/main/java/at/gv/egiz/moazs/msg/MsgClient.java
parent0a316ada10bb88720dd15958168409fcb9fcf800 (diff)
downloadmoa-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.java43
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://");
- }
-
}