summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/STALSignatureException.java14
-rw-r--r--bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/STALSignatureMethod.java3
-rw-r--r--bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/Signature.java9
-rw-r--r--smccSTAL/src/main/java/at/gv/egiz/bku/smccstal/SignRequestHandler.java36
-rw-r--r--smccSTAL/src/main/java/at/gv/egiz/bku/smccstal/StatusRequestHandler.java4
5 files changed, 41 insertions, 25 deletions
diff --git a/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/STALSignatureException.java b/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/STALSignatureException.java
index 91cfde5d..aa126744 100644
--- a/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/STALSignatureException.java
+++ b/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/STALSignatureException.java
@@ -52,10 +52,22 @@ public class STALSignatureException extends SignatureException {
*
* @param errorCode the error code
*/
- public STALSignatureException(int errorCode) {
+ public STALSignatureException(int errorCode) {
+ super();
this.errorCode = errorCode;
}
+ /**
+ * Creates a new instance of this STALSigantureException with
+ * the given <code>errorCode</code>.
+ *
+ * @param errorCode the error code
+ */
+ public STALSignatureException(int errorCode, String msg) {
+ super(msg);
+ this.errorCode = errorCode;
+ }
+
/**
* Creates a new instance of this STALSignatureException with
* the given error <code>msg</code>.
diff --git a/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/STALSignatureMethod.java b/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/STALSignatureMethod.java
index 44f49031..51c6c805 100644
--- a/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/STALSignatureMethod.java
+++ b/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/STALSignatureMethod.java
@@ -113,7 +113,8 @@ public class STALSignatureMethod extends AbstractSignatureMethodImpl {
if (response instanceof SignResponse) {
return ((SignResponse) response).getSignatureValue();
} else if (response instanceof ErrorResponse) {
- STALSignatureException se = new STALSignatureException(((ErrorResponse) response).getErrorCode());
+ ErrorResponse err = (ErrorResponse) response;
+ STALSignatureException se = new STALSignatureException(err.getErrorCode(), err.getErrorMessage());
throw new XMLSignatureException(se);
} else {
throw new XMLSignatureException("Failed to access STAL.");
diff --git a/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/Signature.java b/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/Signature.java
index e7f04457..8cc6caf2 100644
--- a/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/Signature.java
+++ b/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/Signature.java
@@ -434,12 +434,13 @@ public class Signature {
Throwable cause = e.getCause();
while (cause != null) {
if (cause instanceof STALSignatureException) {
- if (((STALSignatureException) cause).getCause() instanceof SLViewerException) {
- throw (SLViewerException) ((STALSignatureException) cause).getCause();
+ STALSignatureException stalCause = (STALSignatureException) cause;
+ if (stalCause.getCause() instanceof SLViewerException) {
+ throw (SLViewerException) stalCause.getCause();
}
- int errorCode = ((STALSignatureException) cause).getErrorCode();
+ int errorCode = stalCause.getErrorCode();
SLCommandException commandException = new SLCommandException(errorCode);
- log.info("Failed to sign signature.", e);
+ log.info("Failed to sign signature: {}", stalCause.getMessage(), e);
throw commandException;
} else {
cause = cause.getCause();
diff --git a/smccSTAL/src/main/java/at/gv/egiz/bku/smccstal/SignRequestHandler.java b/smccSTAL/src/main/java/at/gv/egiz/bku/smccstal/SignRequestHandler.java
index a6a58806..41ef90a5 100644
--- a/smccSTAL/src/main/java/at/gv/egiz/bku/smccstal/SignRequestHandler.java
+++ b/smccSTAL/src/main/java/at/gv/egiz/bku/smccstal/SignRequestHandler.java
@@ -55,7 +55,7 @@ import at.gv.egiz.stal.signedinfo.SignedInfoType;
public class SignRequestHandler extends AbstractRequestHandler {
- private final Logger log = LoggerFactory.getLogger(SignRequestHandler.class);
+ private final static Logger log = LoggerFactory.getLogger(SignRequestHandler.class);
private static JAXBContext jaxbContext;
static {
@@ -73,6 +73,14 @@ public class SignRequestHandler extends AbstractRequestHandler {
this.secureViewer = secureViewer;
}
+ private ErrorResponse errorResponse(int errorCode, String errorMessage, Exception e)
+ {
+ log.error(errorMessage, e);
+ ErrorResponse err = new ErrorResponse(errorCode);
+ err.setErrorMessage(errorMessage + (e == null ? "" : " " + e));
+ return err;
+ }
+
@SuppressWarnings("unchecked")
@Override
public STALResponse handleRequest(STALRequest request) throws InterruptedException {
@@ -89,50 +97,42 @@ public class SignRequestHandler extends AbstractRequestHandler {
byte[] resp = card.createSignature(new ByteArrayInputStream(signReq.getSignedInfo()), kb,
new SignPINGUI(gui, secureViewer, si.getValue()), signatureMethod);
if (resp == null) {
- return new ErrorResponse(6001);
+ return errorResponse(6001, "Response is null", null);
}
SignResponse stalResp = new SignResponse();
stalResp.setSignatureValue(resp);
return stalResp;
} catch (NotActivatedException e) {
- log.info("Citizen card not activated.", e);
gui.showErrorDialog(BKUGUIFacade.ERR_CARD_NOTACTIVATED, null, this, null);
waitForAction();
gui.showMessageDialog(BKUGUIFacade.TITLE_WAIT,
BKUGUIFacade.MESSAGE_WAIT);
- return new ErrorResponse(6001);
+ return errorResponse(6001, "Citizen card not activated.", e);
} catch (LockedException e) {
- log.info("Citizen card locked.", e);
gui.showErrorDialog(BKUGUIFacade.ERR_CARD_LOCKED, null, this, null);
waitForAction();
gui.showMessageDialog(BKUGUIFacade.TITLE_WAIT,
BKUGUIFacade.MESSAGE_WAIT);
- return new ErrorResponse(6001);
+ return errorResponse(6001, "Citizen card locked.", e);
} catch (CancelledException cx) {
- log.debug("User cancelled request.");
- return new ErrorResponse(6001);
+ return errorResponse(6001, "User cancelled request.", null);
} catch (TimeoutException ex) {
- log.error("Timeout during pin entry");
gui.showMessageDialog(BKUGUIFacade.TITLE_ENTRY_TIMEOUT,
BKUGUIFacade.ERR_PIN_TIMEOUT, null,
BKUGUIFacade.BUTTON_CANCEL, this, null);
waitForAction();
gui.showMessageDialog(BKUGUIFacade.TITLE_WAIT,
BKUGUIFacade.MESSAGE_WAIT);
- return new ErrorResponse(6001);
+ return errorResponse(6001, "Timeout during pin entry.", null);
} catch (SignatureCardException e) {
- log.error("Error while creating signature: " + e);
- return new ErrorResponse(4000);
+ return errorResponse(4000,"Error while creating signature.", e);
} catch (JAXBException e) {
- log.error("Cannot unmarshall signed info.", e);
- return new ErrorResponse(1000);
+ return errorResponse(1000, "Cannot unmarshall signed info.", e);
} catch (IOException e) {
- log.error("Error while creating signature: " + e);
- return new ErrorResponse(4000);
+ return errorResponse(4000, "Error while creating signature.", e);
}
} else {
- log.error("Got unexpected STAL request: {}.", request);
- return new ErrorResponse(1000);
+ return errorResponse(1000, "Got unexpected STAL request: " + request + ".", null);
}
}
diff --git a/smccSTAL/src/main/java/at/gv/egiz/bku/smccstal/StatusRequestHandler.java b/smccSTAL/src/main/java/at/gv/egiz/bku/smccstal/StatusRequestHandler.java
index 706774e4..86711ca4 100644
--- a/smccSTAL/src/main/java/at/gv/egiz/bku/smccstal/StatusRequestHandler.java
+++ b/smccSTAL/src/main/java/at/gv/egiz/bku/smccstal/StatusRequestHandler.java
@@ -69,7 +69,9 @@ public class StatusRequestHandler extends AbstractRequestHandler {
return response;
} else {
log.error("Got unexpected STAL request: {}.", request);
- return new ErrorResponse(1000);
+ ErrorResponse err = new ErrorResponse(1000);
+ err.setErrorMessage("Got unexpected STAL request: " + request);
+ return err;
}
}