aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/AuthDispatcherServlet.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/AuthDispatcherServlet.java')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/AuthDispatcherServlet.java19
1 files changed, 14 insertions, 5 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/AuthDispatcherServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/AuthDispatcherServlet.java
index ae0717a6d..38b876e76 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/AuthDispatcherServlet.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/AuthDispatcherServlet.java
@@ -12,7 +12,10 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import at.gv.egovernment.moa.id.MOAIDException;
import at.gv.egovernment.moa.id.auth.MOAIDAuthInitializer;
+import at.gv.egovernment.moa.id.auth.WrongParametersException;
+import at.gv.egovernment.moa.id.auth.servlet.AuthServlet;
import at.gv.egovernment.moa.id.moduls.AuthenticationManager;
import at.gv.egovernment.moa.id.moduls.IModulInfo;
import at.gv.egovernment.moa.id.moduls.ITargetConfiguration;
@@ -22,7 +25,7 @@ import at.gv.egovernment.moa.id.moduls.ServletType;
import at.gv.egovernment.moa.id.util.MOAIDMessageProvider;
import at.gv.egovernment.moa.logging.Logger;
-public class AuthDispatcherServlet extends HttpServlet {
+public class AuthDispatcherServlet extends AuthServlet {
/**
*
@@ -135,9 +138,9 @@ public class AuthDispatcherServlet extends HttpServlet {
try {
Object pathObject = req.getParameter(PARAM_TARGET_PATH);
String path = null;
-
+
HttpSession session = req.getSession();
-
+
if (pathObject != null && (pathObject instanceof String)) {
path = (String) pathObject;
}
@@ -170,10 +173,10 @@ public class AuthDispatcherServlet extends HttpServlet {
ITargetConfiguration configuration = info.preProcess(req, resp);
if (!AuthenticationManager.isAuthenticated(req, resp)) {
-
+
session.setAttribute(PARAM_TARGET_PATH, path);
session.setAttribute(PARAM_TARGET_PROTOCOL, protocol);
-
+
AuthenticationManager.doAuthentication(req, resp,
configuration);
return;
@@ -190,6 +193,8 @@ public class AuthDispatcherServlet extends HttpServlet {
Logger.info("Forwarding to Servlet: " + forward);
getServletContext().getNamedDispatcher(forward)
.forward(req, resp);
+ // TODO: disabled SSO
+ AuthenticationManager.logout(req, resp);
return;
} catch (Throwable e) {
e.printStackTrace();
@@ -198,6 +203,10 @@ public class AuthDispatcherServlet extends HttpServlet {
}
}
resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+ } catch (WrongParametersException ex) {
+ handleWrongParameters(ex, req, resp);
+ } catch (MOAIDException ex) {
+ handleError(null, ex, req, resp);
} catch (Throwable e) {
e.printStackTrace();
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);