diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2017-09-08 14:33:54 +0200 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2017-09-08 14:33:54 +0200 | 
| commit | 77c0e0bf1c565766eb2cecfb31b509b51c92b3d7 (patch) | |
| tree | 55aae2aed60984567d0b9edd1323b67ac49291bd /id | |
| parent | 656b8b4910798dec7b253ea8f4b7dbec77715012 (diff) | |
| download | moa-id-spss-77c0e0bf1c565766eb2cecfb31b509b51c92b3d7.tar.gz moa-id-spss-77c0e0bf1c565766eb2cecfb31b509b51c92b3d7.tar.bz2 moa-id-spss-77c0e0bf1c565766eb2cecfb31b509b51c92b3d7.zip | |
update error handling for wrong encoded BKU error responses
Diffstat (limited to 'id')
2 files changed, 31 insertions, 9 deletions
| diff --git a/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/parser/ErrorResponseParser.java b/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/parser/ErrorResponseParser.java index a09f0a2a8..602914229 100644 --- a/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/parser/ErrorResponseParser.java +++ b/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/parser/ErrorResponseParser.java @@ -46,10 +46,16 @@  package at.gv.egovernment.moa.id.auth.parser; +import java.io.IOException; + +import javax.xml.transform.TransformerException; +  import org.w3c.dom.Element;  import org.w3c.dom.NodeList;  import at.gv.egovernment.moa.id.auth.exception.ParseException; +import at.gv.egovernment.moa.logging.Logger; +import at.gv.util.DOMUtils;  /**   * Parses an <code><ErrorResponse></code>. @@ -84,15 +90,30 @@ public class ErrorResponseParser {     */    public ErrorResponseParser(Element errorElement) throws ParseException {      if (errorElement != null) { -      String namespace = errorElement.getNamespaceURI(); -      NodeList nl = errorElement.getElementsByTagNameNS(namespace, "ErrorCode"); -      if (nl.getLength() == 1) { -        errorCode_ = ((Element)nl.item(0)).getFirstChild().getNodeValue(); -      } -      nl = errorElement.getElementsByTagNameNS(namespace, "Info"); -      if (nl.getLength() == 1) { -        errorInfo_ = ((Element)nl.item(0)).getFirstChild().getNodeValue(); -      } +    	try { +    		String namespace = errorElement.getNamespaceURI(); +    		NodeList nl = errorElement.getElementsByTagNameNS(namespace, "ErrorCode"); +    		if (nl.getLength() == 1) { +    			errorCode_ = ((Element)nl.item(0)).getFirstChild().getNodeValue(); +    		} +    		nl = errorElement.getElementsByTagNameNS(namespace, "Info"); +    		if (nl.getLength() == 1 && ((Element)nl.item(0)).getFirstChild() != null) { +    			errorInfo_ = ((Element)nl.item(0)).getFirstChild().getNodeValue(); +         +    		} +    	} catch ( Exception e) { +    		try { +    			if (Logger.isDebugEnabled()) +    				Logger.warn("Can not extract error code from BKU response. Full-response: " + DOMUtils.serializeNode(errorElement), e) ; +    			else +    				Logger.warn("Can not extract error code from BKU response. Exception: " + e.getMessage()) ; +				 +			} catch (TransformerException | IOException e1) { +				Logger.warn("Can not extract error code from BKU response.", e); +				Logger.warn("Can not serialize error response.", e1); +				 +			}    		 +		}      }    } diff --git a/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/parser/InfoboxReadResponseParser.java b/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/parser/InfoboxReadResponseParser.java index 275a85129..154092b03 100644 --- a/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/parser/InfoboxReadResponseParser.java +++ b/id/server/modules/moa-id-modul-citizencard_authentication/src/main/java/at/gv/egovernment/moa/id/auth/parser/InfoboxReadResponseParser.java @@ -150,6 +150,7 @@ public class InfoboxReadResponseParser {        if ("InfoboxReadResponse".equals(responseElem.getLocalName())) {          infoBoxElem_ = responseElem; +                } else {          ErrorResponseParser erp = new ErrorResponseParser(responseElem);          throw new BKUException("auth.08",  | 
