diff options
Diffstat (limited to 'id')
5 files changed, 61 insertions, 47 deletions
| diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/CreateMandateResponse.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/CreateMandateResponse.java index 0f6ed8abf..f69a5a739 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/CreateMandateResponse.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/CreateMandateResponse.java @@ -90,7 +90,15 @@ public class CreateMandateResponse {        //  first check if response is a soap error
        NodeList list = response.getElementsByTagName("faultstring");
        if (list.getLength() > 0) {
 -        throw new SZRGWClientException("Fehler bei SZR-Gateway: "+list.item(0).getChildNodes().item(0).getNodeValue());
 +        String faultCode = "";
 +        String faultString = "";
 +        Element snameSpaceNode = response.getOwnerDocument().createElement("NameSpaceNode");
 +        snameSpaceNode.setAttribute("xmlns" + SOAPConstants.SOAP_ENV_POSTFIX, SOAPConstants.SOAP_ENV_NS);
 +        Node faultCodeNode = XPathAPI.selectSingleNode(response, SOAPConstants.XPATH_SOAP_FAULTCODE, snameSpaceNode);
 +        Node faultStringNode = XPathAPI.selectSingleNode(response, SOAPConstants.XPATH_SOAP_FAULTSTRING, snameSpaceNode);
 +        if (faultCodeNode!=null) faultCode = faultCodeNode.getNodeValue();
 +        if (faultStringNode!=null) faultString = faultStringNode.getNodeValue();
 +        throw new SZRGWClientException("Fehler bei SZR-Gateway (SOAP-Error " + faultCodeNode + "): " + faultString);
        }
        this.mandate = null;
 @@ -100,7 +108,6 @@ public class CreateMandateResponse {        Element nameSpaceNode = response.getOwnerDocument().createElement("NameSpaceNode");
        nameSpaceNode.setAttribute("xmlns" + SZRGWConstants.SZRGW_POSTFIX, SZRGWConstants.SZRGW_REQUEST_NS);
        nameSpaceNode.setAttribute("xmlns" + SZRGWConstants.MANDATE_POSTFIX, SZRGWConstants.MANDATE_NS);
 -      
        Node mandateNode = XPathAPI.selectSingleNode(response, "//" + SZRGWConstants.SZRGW_PREFIX + SZRGWConstants.CREATE_MANDATE_RESPONSE + "/" + SZRGWConstants.MANDATE_PREFIX + SZRGWConstants.MANDATE, nameSpaceNode);
        if (mandateNode!=null) {
          this.mandate = (Element) mandateNode;
 diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SOAPConstants.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SOAPConstants.java index d9d248c81..ca914bbab 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SOAPConstants.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SOAPConstants.java @@ -11,13 +11,18 @@ public interface SOAPConstants {    /*
     * Namespaces and namespace prefixes for SOAP message handling
     */  
 -  String SOAP_ENV_NS = "http://schemas.xmlsoap.org/soap/envelope/";
 -  String SOAP_ENV_ENCODING_STYLE = "http://schemas.xmlsoap.org/soap/encoding/";
 -  String SOAP_ENV_PREFIX = "soapenv:";
 -  String SOAP_ENV_POSTFIX = ":soapenv";
 +  public static final String SOAP_ENV_NS = "http://schemas.xmlsoap.org/soap/envelope/";
 +  public static final String SOAP_ENV_ENCODING_STYLE = "http://schemas.xmlsoap.org/soap/encoding/";
 +  public static final String SOAP_ENV_PREFIX = "soapenv:";
 +  public static final String SOAP_ENV_POSTFIX = ":soapenv";
 -  String ENVELOPE = "Envelope";
 -  String BODY = "Body";
 -  String ENCODING_STYLE = "encodingStyle";
 +  public static final String ENVELOPE = "Envelope";
 +  public static final String BODY = "Body";
 +  public static final String FAULT = "Fault";
 +  public static final String ENCODING_STYLE = "encodingStyle";
 +
 +  public static final String XPATH_SOAP_FAULT = "/" + SOAP_ENV_PREFIX + ENVELOPE + "/" + SOAP_ENV_PREFIX + BODY + "/" + SOAP_ENV_PREFIX + FAULT;
 +  public static final String XPATH_SOAP_FAULTCODE = XPATH_SOAP_FAULT + "/faultcode/text()";
 +  public static final String XPATH_SOAP_FAULTSTRING = XPATH_SOAP_FAULT + "/faultstring/text()";
  }
 diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SZRGWClient.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SZRGWClient.java index 1e6dc1039..22f3cfffd 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SZRGWClient.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SZRGWClient.java @@ -3,9 +3,10 @@ package at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw;  import java.io.ByteArrayInputStream;
  import java.io.ByteArrayOutputStream;
 -import java.security.Security;
 +import java.io.File;
  import javax.net.ssl.SSLSocketFactory;
 +
  import org.apache.commons.httpclient.HttpClient;
  import org.apache.commons.httpclient.methods.PostMethod;
  import org.apache.commons.httpclient.protocol.Protocol;
 @@ -13,7 +14,6 @@ import org.w3c.dom.Document;  import org.w3c.dom.Element;
  import at.gv.egovernment.moa.id.auth.validator.parep.ParepUtils;
 -import at.gv.egovernment.moa.id.config.ConfigurationException;
  import at.gv.egovernment.moa.logging.Logger;
 @@ -101,17 +101,18 @@ public class SZRGWClient {        soapBody.appendChild(doc.importNode(reqElem, true));
        Element requestElement = soapBody.getOwnerDocument().getDocumentElement();
 +      //ParepUtils.saveElementToFile(requestElement, new File("c:/szrRequest.xml"));
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        ParepUtils.serializeElementAsDocument(requestElement, bos);
        method.setRequestBody(new ByteArrayInputStream(bos.toByteArray()));
 -
        client.executeMethod(method);
        CreateMandateResponse response = new CreateMandateResponse();
        bos = new ByteArrayOutputStream();
        doc = ParepUtils.readDocFromIs(method.getResponseBodyAsStream());
 +      //ParepUtils.saveElementToFile(doc.getDocumentElement(), new File("c:/szrResponse.xml"));
        response.parse(doc.getDocumentElement());
 diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SZRGWConstants.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SZRGWConstants.java index 4f815f1e7..006b2b9f2 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SZRGWConstants.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SZRGWConstants.java @@ -8,44 +8,44 @@ package at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw;  public interface SZRGWConstants {
    //PersonData
 -  String PD_PREFIX = "pr:";
 -  String PD_POSTFIX = ":pr";
 -  String PERSON = "Person";
 -  String PHYSICALPERSON = "PhysicalPerson";
 -  String CORPORATEBODY = "CorporateBody";
 -  String IDENTIFICATION = "Identification";
 -  String VALUE = "Value";
 -  String TYPE = "Type";
 -  String NAME = "Name";
 -  String GIVENNAME = "GivenName";
 -  String FAMILYNAME = "FamilyName";
 -  String DATEOFBIRTH = "DateOfBirth";
 -  String FULLNAME = "FullName";
 -  String ORGANIZATION = "Organization";
 +  public static final String PD_PREFIX = "pr:";
 +  public static final String PD_POSTFIX = ":pr";
 +  public static final String PERSON = "Person";
 +  public static final String PHYSICALPERSON = "PhysicalPerson";
 +  public static final String CORPORATEBODY = "CorporateBody";
 +  public static final String IDENTIFICATION = "Identification";
 +  public static final String VALUE = "Value";
 +  public static final String TYPE = "Type";
 +  public static final String NAME = "Name";
 +  public static final String GIVENNAME = "GivenName";
 +  public static final String FAMILYNAME = "FamilyName";
 +  public static final String DATEOFBIRTH = "DateOfBirth";
 +  public static final String FULLNAME = "FullName";
 +  public static final String ORGANIZATION = "Organization";
 -  String POSTALADDRESS = "PostalAddress";
 -  String DELIVERYADDRESS = "DeliveryAddress";
 -  String MUNICIPALITY = "Municipality";
 -  String POSTALCODE = "PostalCode";
 -  String STREETNAME = "StreetName";
 -  String BUILDINGNUMBER = "BuildingNumber";
 -  String UNIT = "Unit";
 +  public static final String POSTALADDRESS = "PostalAddress";
 +  public static final String DELIVERYADDRESS = "DeliveryAddress";
 +  public static final String MUNICIPALITY = "Municipality";
 +  public static final String POSTALCODE = "PostalCode";
 +  public static final String STREETNAME = "StreetName";
 +  public static final String BUILDINGNUMBER = "BuildingNumber";
 +  public static final String UNIT = "Unit";
    //String ADDRESS = "Address";
    //String COUNTRYCODE = "CountryCode";
    //String DOORNUMBER = "DoorNumber";
    // SZR-gateway constants
 -  String SZRGW_REQUEST_NS = "http://reference.e-government.gv.at/namespace/szrgw/20070807#";
 -  String MANDATE_NS = "http://reference.e-government.gv.at/namespace/mandates/20040701#";
 -  String SZRGW_PREFIX = "sgw:";
 -  String SZRGW_POSTFIX = ":sgw";
 -  String CREATE_MANDATE_REQUEST = "CreateMandateRequest";
 -  String CREATE_MANDATE_RESPONSE = "CreateMandateResponse";
 -  String ERROR_RESPONSE = "ErrorResponse";
 -  String MANDATOR = "Mandator";
 -  String REPRESENTATIVE = "Representative";
 -  String MANDATE = "Mandate";
 -  String MANDATE_PREFIX = "md:";
 -  String MANDATE_POSTFIX = ":md";
 +  public static final String SZRGW_REQUEST_NS = "http://reference.e-government.gv.at/namespace/szrgw/20070807#";
 +  public static final String MANDATE_NS = "http://reference.e-government.gv.at/namespace/mandates/20040701#";
 +  public static final String SZRGW_PREFIX = "sgw:";
 +  public static final String SZRGW_POSTFIX = ":sgw";
 +  public static final String CREATE_MANDATE_REQUEST = "CreateMandateRequest";
 +  public static final String CREATE_MANDATE_RESPONSE = "CreateMandateResponse";
 +  public static final String ERROR_RESPONSE = "ErrorResponse";
 +  public static final String MANDATOR = "Mandator";
 +  public static final String REPRESENTATIVE = "Representative";
 +  public static final String MANDATE = "Mandate";
 +  public static final String MANDATE_PREFIX = "md:";
 +  public static final String MANDATE_POSTFIX = ":md";
  }
 diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/config/ParepConfiguration.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/config/ParepConfiguration.java index 16daa5452..e3a09b7dd 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/config/ParepConfiguration.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/config/ParepConfiguration.java @@ -195,7 +195,7 @@ public class ParepConfiguration {          this.standardConnectionParameters = buildConnectionParameter(connectionParamElement, nameSpaceNode);
        }
 -      Logger.debug("Lade Konfiguration der Parteienvertreter");
 +      Logger.trace("Lade Konfiguration der Parteienvertreter");
        NodeList partyRepresentativeNodeList = XPathAPI.selectNodeList(configElement, Constants.MOA_ID_CONFIG_PREFIX + ":PartyRepresentation/"
            + Constants.MOA_ID_CONFIG_PREFIX + ":PartyRepresentative", nameSpaceNode);
        for (int i = 0; i < partyRepresentativeNodeList.getLength(); i++) {
 @@ -233,7 +233,7 @@ public class ParepConfiguration {            partyRepresentative.setConnectionParameters(buildConnectionParameter(connectionParamSubElement, nameSpaceNode));
          }
          partyRepresentatives.put(partyRepresentative.getOid(), partyRepresentative);
 -        Logger.info("Parteienvertreter: " + partyRepresentative.getOid() + " erfolgreich konfiguriert (representPhysicalParty="
 +        Logger.debug("Parteienvertreter: " + partyRepresentative.getOid() + " erfolgreich konfiguriert (representPhysicalParty="
              + partyRepresentative.isRepresentingPhysicalParty() + ", representCorporateParty=" + partyRepresentative.isRepresentingCorporateParty() 
              + ", representationText=" + partyRepresentative.getRepresentationText()
              + ")");
 @@ -386,6 +386,7 @@ public class ParepConfiguration {    public static boolean isMandateCompatibilityMode(Element configElement) throws ConfigurationException {
      try {
 +      if (configElement==null) return false;
        Element nameSpaceNode = configElement.getOwnerDocument().createElement("NameSpaceNode");
        nameSpaceNode.setAttribute("xmlns:" + Constants.MOA_ID_CONFIG_PREFIX, Constants.MOA_ID_CONFIG_NS_URI);
        Node mandateCompatibilityNode = XPathAPI.selectSingleNode(configElement, Constants.MOA_ID_CONFIG_PREFIX + ":CompatibilityMode/text()", nameSpaceNode);
 | 
