diff options
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.java | 19 |
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); |