summaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/util/client/szr/SZRHTTPHeaderHandler.java
diff options
context:
space:
mode:
authorThomas Lenz <thomas.lenz@egiz.gv.at>2019-07-19 10:35:29 +0200
committerThomas Lenz <thomas.lenz@egiz.gv.at>2019-07-19 10:35:29 +0200
commit2c3c1d6bb748a0655a83fdf4cd26135042d898b9 (patch)
tree6feabd6d3a6a3aed7751154053b3487de4959d6d /src/main/java/at/gv/util/client/szr/SZRHTTPHeaderHandler.java
parent2d03e741a91f6155dce75952b0174e3e52a12740 (diff)
downloadegovutils-2c3c1d6bb748a0655a83fdf4cd26135042d898b9.tar.gz
egovutils-2c3c1d6bb748a0655a83fdf4cd26135042d898b9.tar.bz2
egovutils-2c3c1d6bb748a0655a83fdf4cd26135042d898b9.zip
USP client integration2.0.7
switch to v2.0.7
Diffstat (limited to 'src/main/java/at/gv/util/client/szr/SZRHTTPHeaderHandler.java')
-rw-r--r--src/main/java/at/gv/util/client/szr/SZRHTTPHeaderHandler.java138
1 files changed, 0 insertions, 138 deletions
diff --git a/src/main/java/at/gv/util/client/szr/SZRHTTPHeaderHandler.java b/src/main/java/at/gv/util/client/szr/SZRHTTPHeaderHandler.java
deleted file mode 100644
index bde6b7b..0000000
--- a/src/main/java/at/gv/util/client/szr/SZRHTTPHeaderHandler.java
+++ /dev/null
@@ -1,138 +0,0 @@
-package at.gv.util.client.szr;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.xml.namespace.QName;
-import javax.xml.ws.handler.MessageContext;
-import javax.xml.ws.handler.soap.SOAPHandler;
-import javax.xml.ws.handler.soap.SOAPMessageContext;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.cxf.message.Message;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import at.gv.util.MiscUtil;
-import at.gv.util.xsd.szr.pvp.Param;
-import at.gv.util.xsd.szr.pvp.PvpTokenType;
-import at.gv.util.xsd.szr.pvp.PvpTokenType.Accounting;
-import at.gv.util.xsd.szr.pvp.PvpTokenType.Accounting.GvCostCenterId;
-import at.gv.util.xsd.szr.pvp.Role;
-
-public class SZRHTTPHeaderHandler implements SOAPHandler<SOAPMessageContext> {
-
- private PvpTokenType pvpTokenType = null;
-
- private Logger log = LoggerFactory.getLogger(SZRHTTPHeaderHandler.class);
-
- public static final String PVP_HEADER_COSTCENTERID_DEFAULT = "<default>";
- public static final String PVP_HEADER_VALUE_DELIMITER = ",";
- public static final String PVP_HEADER_ROLE_VALUE_DELIMITER = ";";
-
- public void close(MessageContext arg0) {
- }
-
-
- public boolean handleFault(SOAPMessageContext arg0) {
- return true;
- }
-
- public void configure(PvpTokenType pvpToken) {
- MiscUtil.assertNotNull(pvpToken, "pvpToken");
- this.pvpTokenType = pvpToken;
- }
-
-
- public boolean handleMessage(SOAPMessageContext smc) {
- log.trace("Initializing SZR SOAP message handler.");
-
- boolean isOutMessage = ((Boolean) smc.get(SOAPMessageContext.MESSAGE_OUTBOUND_PROPERTY)).booleanValue();
- log.trace("Outbound message: " + isOutMessage);
- if (pvpTokenType == null) {
- throw new NullPointerException("Please configure first the PVP token.");
- }
-
- if (!isOutMessage) {
- return true;
- }
- Map<String, List> headers = (Map<String, List>) smc.get(Message.PROTOCOL_HEADERS);
- setHeader(headers, "X-VERSION", pvpTokenType.getVersion());
- setHeader(headers, "X-AUTHENTICATE-UserID", pvpTokenType.getAuthenticate().getUserPrincipal().getUserId());
- setHeader(headers, "X-AUTHENTICATE-GVGID", pvpTokenType.getAuthenticate().getUserPrincipal().getGvGid());
- setHeader(headers, "X-AUTHENTICATE-PARTICIPANTID", pvpTokenType.getAuthenticate().getParticipantId());
- setHeader(headers, "X-AUTHENTICATE-GVOUID", pvpTokenType.getAuthenticate().getUserPrincipal().getGvOuId());
- setHeader(headers, "X-AUTHENTICATE-OU", pvpTokenType.getAuthenticate().getUserPrincipal().getOu());
- setHeader(headers, "X-AUTHENTICATE-GVFUNCTION", pvpTokenType.getAuthenticate().getUserPrincipal().getGvFunction());
- setHeader(headers, "X-AUTHENTICATE-gvSecClass", String.valueOf(pvpTokenType.getAuthenticate().getUserPrincipal().getGvSecClass().intValue()));
- setHeader(headers, "X-AUTHENTICATE-cn",pvpTokenType.getAuthenticate().getUserPrincipal().getCn());
-
- //set roles attribute
- String roleString = null;
- List<Role> roles = pvpTokenType.getAuthorize().getRole();
- if (roles != null && !roles.isEmpty()) {
- for (Role role : roles) {
- String roleElement = role.getValue();
- List<Param> roleParams = role.getParam();
- if (roleParams != null && !roleParams.isEmpty()) {
- roleElement = roleElement + "(";
- for (Param el : roleParams) {
- roleElement = roleElement + el.getKey() + "=" + el.getValue() + PVP_HEADER_VALUE_DELIMITER;
-
- }
- roleElement = roleElement.substring(0, roleElement.length()-1) + ")";
- }
-
- if (roleString == null)
- roleString = roleElement;
- else
- roleString = roleString + PVP_HEADER_ROLE_VALUE_DELIMITER + roleElement;
- }
- }
- setHeader(headers, "X-AUTHORIZE-ROLES", roleString);
-
- //set optional headers
- String costCenterId = null;
- String invoiceRecptId = null;
-
- Accounting accounting = pvpTokenType.getAccounting();
- if (accounting != null) {
- invoiceRecptId = accounting.getInvoiceRecptId();
- if (accounting.getGvCostCenterId() != null && !accounting.getGvCostCenterId().isEmpty()) {
- for (GvCostCenterId el : accounting.getGvCostCenterId()) {
- String value = StringUtils.EMPTY;
- if (el.isDefault())
- value = PVP_HEADER_COSTCENTERID_DEFAULT;
-
- value = value + el.getValue();
-
- if (costCenterId == null)
- costCenterId = value;
- else
- costCenterId = PVP_HEADER_VALUE_DELIMITER + value;
-
- }
- }
- }
-
- setHeader(headers, "X-ACCOUNTING-CostCenterId", costCenterId);
- setHeader(headers, "X-ACCOUNTING-InvoiceRecptId", invoiceRecptId);
-
- return true;
-
-
- }
-
- public Set<QName> getHeaders() {
- return null;
- }
- private void setHeader(Map<String, List> headers, String name, String value) {
- if (MiscUtil.isEmpty(value))
- headers.put(name, null);
- else
- headers.put(name, Collections.singletonList(value));
-
- }
-
-}