summaryrefslogtreecommitdiff
path: root/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BKUWorker.java
diff options
context:
space:
mode:
Diffstat (limited to 'BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BKUWorker.java')
-rw-r--r--BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BKUWorker.java25
1 files changed, 24 insertions, 1 deletions
diff --git a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BKUWorker.java b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BKUWorker.java
index f7b5fb2f..042c6a83 100644
--- a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BKUWorker.java
+++ b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BKUWorker.java
@@ -34,6 +34,8 @@ import at.gv.egiz.bku.smccstal.AbstractSMCCSTAL;
import at.gv.egiz.bku.smccstal.SMCCSTALRequestHandler;
import at.gv.egiz.smcc.SignatureCard;
import at.gv.egiz.smcc.util.SMCCHelper;
+import at.gv.egiz.stal.ErrorResponse;
+import at.gv.egiz.stal.InfoboxReadRequest;
import at.gv.egiz.stal.QuitRequest;
import at.gv.egiz.stal.STALRequest;
import at.gv.egiz.stal.STALResponse;
@@ -107,6 +109,8 @@ public class BKUWorker extends AbstractSMCCSTAL implements Runnable,
gui.showWelcomeDialog();
try {
stalPort = getSTALPort();
+
+
} catch (Exception e) {
log.fatal("Failed to call STAL service.", e);
actionCommandList.clear();
@@ -134,7 +138,26 @@ public class BKUWorker extends AbstractSMCCSTAL implements Runnable,
GetNextRequestResponseType resp = stalPort.getNextRequest(nextRequest);
log.info("Got " + resp.getRequest().size() + " requests from server.");
List<STALRequest> stalRequests = resp.getRequest();
- List<STALResponse> responses = handleRequest(stalRequests);
+ boolean handle = true;
+ for (STALRequest request : stalRequests) {
+ if (request instanceof InfoboxReadRequest) {
+ InfoboxReadRequest infobx = (InfoboxReadRequest) request;
+ if (infobx.getInfoboxIdentifier().equals("IdentityLink")) {
+ if (infobx.getDomainIdentifier() == null) {
+ if (!InternalSSLSocketFactory.getInstance().isEgovAgency()) {
+ handle = false;
+ }
+ }
+ }
+ }
+ }
+ List<STALResponse> responses;
+ if (handle) {
+ responses = handleRequest(stalRequests);
+ } else {
+ responses = new ArrayList<STALResponse>(1);
+ responses.add(new ErrorResponse(6002));
+ }
log.info("Got " + responses.size() + " responses.");
nextRequest = factory.createGetNextRequestType();
nextRequest.setSessionId(sessionId);