aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/DispatcherServlet.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/DispatcherServlet.java')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/DispatcherServlet.java22
1 files changed, 19 insertions, 3 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/DispatcherServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/DispatcherServlet.java
index 1e38bd4ff..03cb6c1c4 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/DispatcherServlet.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/DispatcherServlet.java
@@ -276,11 +276,27 @@ public class DispatcherServlet extends AuthServlet{
Logger.info("PreProcessing of SSO interfederation response complete. ");
- //request is a not valid interfederation response -> Restart local authentication
+ //request is a not valid interfederation response
} else if (protocolRequest != null &&
MiscUtil.isNotEmpty(protocolRequest.getRequestID())) {
- Logger.info("Restart authentication with stored " + protocolRequest.requestedModule()
- + " AuthnRequest for OnlineApplication " + protocolRequest.getOAURL());
+
+ OAAuthParameter oaParams = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(protocolRequest.getOAURL());
+ if (oaParams.isSTORKPVPGateway() || !oaParams.isPerformLocalAuthenticationOnInterfederationError()) {
+ // -> send end error to service provider
+ Logger.info("Federated authentication for entity " + protocolRequest.getOAURL()
+ + " FAILED. Sending error message to service provider.");
+ MOAIDException e = new MOAIDException("auth.27", new Object[]{});
+ IModulInfo requestedModul = ModulStorage.getModuleByPath(protocolRequest.requestedModule());
+ if (!requestedModul.generateErrorMessage(e, req, resp, protocolRequest))
+ handleErrorNoRedirect(e.getMessage(), e, req,
+ resp);
+
+ return;
+
+ } else
+ //-> Restart local authentication
+ Logger.info("Restart authentication with stored " + protocolRequest.requestedModule()
+ + " AuthnRequest for OnlineApplication " + protocolRequest.getOAURL());
//request is a new authentication request
} else if (protocolRequest != null &&