public class LoginFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException,
ServletException {
HttpServletRequest request = (HttpServletRequest)req;
HttpServletResponse response = (HttpServletResponse)res;
HttpSession session = request.getSession(false);
if (session == null ||
session.getAttribute("currentSessionUser") == null) {
response.sendRedirect("Loginpage.jsp"); // No logged-in user found, so redirect to login page.
response.setHeader("Cache-Control",
"no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma",
"no-cache"); // HTTP 1.0. response.setDateHeader("Expires", 0);
} else {
chain.doFilter(req,
res); // Logged-in user found, so just continue request.
}
}
}
上記のコードをjspで使用して、ユーザーがログアウト後にログインページをリダイレクトするように強制したいのですが、それをjspページに含めることができるようにjspに変換するにはどうすればよいですか。chain.filter()
以下のように書きます。これを行うことで、そのメソッドを呼び出すことができます
<%@ page import=" java.io.IOException"%>
<%@ page import="javax.servlet.Filter"%>
<%@ page import="javax.servlet.FilterChain"%>
<%@ page import="javax.servlet.FilterConfig"%>
<%@ page import="javax.servlet.ServletException"%>
<%@ page import="javax.servlet.ServletRequest"%>
<%@ page import="javax.servlet.ServletResponse"%>
<%@ page import="javax.servlet.http.HttpServletRequest"%>
<%@ page import="javax.servlet.http.HttpServletResponse"%>
<%@ page import=" javax.servlet.http.HttpSession"%>
<%@ page import="javax.servlet.annotation.WebFilter"%>
<%
//@Override
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
HttpSession session = req.getSession(false);
if (session == null || session.getAttribute("userHash") == null)
{
res.sendRedirect("/timescape/applicationservices/fileshare/vm/login/login.jsp"); // No logged-in user found, so redirect to login page.
res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
res.setHeader("Pragma", "no-cache"); // HTTP 1.0.
res.setDateHeader("Expires", 0);
}
else
{
chain.doFilter(request, response); // Logged-in user found, so just continue request.
}
%>