diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/session/SessionExistsFilter.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/session/SessionExistsFilter.java index 5a50217e582a64039d6d3633613092b2f726c511..c56f58a068ccee367629bafd85b62a6a137e7603 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/session/SessionExistsFilter.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/session/SessionExistsFilter.java @@ -1,7 +1,10 @@ package unipotsdam.gf.session; +import org.glassfish.hk2.api.ServiceLocator; +import org.glassfish.hk2.utilities.ServiceLocatorUtilities; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import unipotsdam.gf.config.GFApplicationBinder; import unipotsdam.gf.modules.user.User; import unipotsdam.gf.modules.user.UserDAO; @@ -31,7 +34,7 @@ public class SessionExistsFilter implements Filter { private void redirectToLogin(ServletRequest request, ServletResponse response) { log.debug("redirecting user to login because user does not exist"); - String loginJSP = "../../index.jsp"; + String loginJSP = "../index.jsp?session=false"; ((HttpServletResponse) response).setHeader("Location", loginJSP); response.setContentType("text/html"); ((HttpServletResponse) response).setStatus(HttpServletResponse.SC_FOUND); // SC_FOUND = 302 @@ -51,11 +54,12 @@ public class SessionExistsFilter implements Filter { if (attribute == null) { redirectToLogin(request, response); } else { + final ServiceLocator locator = ServiceLocatorUtilities.bind(new GFApplicationBinder()); + locator.inject(this); User user = userDAO.getUserByEmail(attribute.toString()); if (user == null) { redirectToLogin(request, response); } - chain.doFilter(request, response); } } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/taglibs/Menu.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/taglibs/Menu.java index 4b1173e8eaa5171d7eaa25562b8d4f46b198b66c..abf0f1938d15174356f9a02ca4d25685c38d72af 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/taglibs/Menu.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/taglibs/Menu.java @@ -7,7 +7,9 @@ import unipotsdam.gf.modules.user.UserDAO; import unipotsdam.gf.session.GFContexts; import unipotsdam.gf.modules.states.ProjectPhase; +import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.SimpleTagSupport; diff --git a/gemeinsamforschen/src/main/webapp/WEB-INF/web.xml b/gemeinsamforschen/src/main/webapp/WEB-INF/web.xml index 6c028f3253d45121af025dce9a39548fa62afc47..8e7e8fc495d8d2c1d10acc39f716fc15e1bc8e08 100644 --- a/gemeinsamforschen/src/main/webapp/WEB-INF/web.xml +++ b/gemeinsamforschen/src/main/webapp/WEB-INF/web.xml @@ -50,7 +50,13 @@ <filter-mapping> <filter-name>SessionValidatorFilter</filter-name> <!-- mandatory --> - <url-pattern>/*/*</url-pattern> <!-- either url-pattern or servlet-name is mandatory --> + <url-pattern>/project/*</url-pattern> <!-- either url-pattern or servlet-name is mandatory --> + <url-pattern>/groupfinding/*</url-pattern> <!-- either url-pattern or servlet-name is mandatory --> + <url-pattern>/annotation/*</url-pattern> <!-- either url-pattern or servlet-name is mandatory --> + <url-pattern>/feedback/*</url-pattern> <!-- either url-pattern or servlet-name is mandatory --> + <url-pattern>/journal/*</url-pattern> <!-- either url-pattern or servlet-name is mandatory --> + <url-pattern>/profile/*</url-pattern> <!-- either url-pattern or servlet-name is mandatory --> + <url-pattern>/researchReport/*</url-pattern> <!-- either url-pattern or servlet-name is mandatory --> <dispatcher>REQUEST</dispatcher> </filter-mapping>