KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > filters > LoginRequiredFilter


1 /*
2  * WebSessionFilter
3  *
4  * A filter that recognizes return users who have chosen to have their login
5  * information remembered. Creates a valid WebSession object and passes it a
6  * contact to use to fill its information
7  *
8  */

9 package com.dotmarketing.filters;
10
11 import java.io.IOException JavaDoc;
12
13 import javax.servlet.Filter JavaDoc;
14 import javax.servlet.FilterChain JavaDoc;
15 import javax.servlet.FilterConfig JavaDoc;
16 import javax.servlet.ServletException JavaDoc;
17 import javax.servlet.ServletRequest JavaDoc;
18 import javax.servlet.ServletResponse JavaDoc;
19 import javax.servlet.http.HttpServletRequest JavaDoc;
20 import javax.servlet.http.HttpServletResponse JavaDoc;
21 import javax.servlet.http.HttpSession JavaDoc;
22
23 import org.apache.commons.logging.LogFactory;
24 import org.apache.struts.Globals;
25 import org.apache.struts.action.ActionMessage;
26 import org.apache.struts.action.ActionMessages;
27
28 import com.dotmarketing.util.WebKeys;
29
30 public class LoginRequiredFilter implements Filter JavaDoc {
31
32
33     public void destroy() {
34
35     }
36
37     
38     public void doFilter(ServletRequest JavaDoc req, ServletResponse JavaDoc res, FilterChain JavaDoc chain) throws IOException JavaDoc, ServletException JavaDoc {
39        
40         HttpServletResponse JavaDoc response = (HttpServletResponse JavaDoc) res;
41         HttpServletRequest JavaDoc request = (HttpServletRequest JavaDoc) req;
42         HttpSession JavaDoc session = request.getSession();
43
44         boolean ADMIN_MODE = (session.getAttribute(com.dotmarketing.util.WebKeys.ADMIN_MODE_SESSION) != null);
45
46         // if we are not logged in, go to login page
47
if (session.getAttribute(WebKeys.CMS_USER) == null && !ADMIN_MODE) {
48             LogFactory.getLog(LoginRequiredFilter.class).warn(
49                     "Doing LoginRequiredFilter for RequestURI: " + request.getRequestURI() + "?" + request.getQueryString());
50
51             //if we don't have a redirect yet
52
session.setAttribute(WebKeys.REDIRECT_AFTER_LOGIN, request.getRequestURI() + "?" + request.getQueryString());
53
54             ActionMessages ams = new ActionMessages();
55             ams.add(Globals.MESSAGE_KEY, new ActionMessage("message.login.required"));
56             session.setAttribute(Globals.MESSAGE_KEY, ams);
57             response.sendError(401);
58             return;
59         }
60
61         chain.doFilter(req, response);
62     }
63
64     public void init(FilterConfig JavaDoc con) throws ServletException JavaDoc {
65
66     }
67 }
Popular Tags