KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > killingar > forum > filter > LoginFilter


1 /* Copyright 2000-2005 Anders Hovmöller
2  *
3  * The person or persons who have associated their work with
4  * this document (the "Dedicator") hereby dedicate the entire
5  * copyright in the work of authorship identified below (the
6  * "Work") to the public domain.
7  *
8  * Dedicator makes this dedication for the benefit of the
9  * public at large and to the detriment of Dedicator's heirs
10  * and successors. Dedicator intends this dedication to be an
11  * overt act of relinquishment in perpetuity of all present
12  * and future rights under copyright law, whether vested or
13  * contingent, in the Work. Dedicator understands that such
14  * relinquishment of all rights includes the relinquishment of
15  * all rights to enforce (by lawsuit or otherwise) those
16  * copyrights in the Work.
17  *
18  * Dedicator recognizes that, once placed in the public
19  * domain, the Work may be freely reproduced, distributed,
20  * transmitted, used, modified, built upon, or otherwise
21  * exploited by anyone for any purpose, commercial or non-
22  * commercial, and in any way, including by methods that have
23  * not yet been invented or conceived.
24  */

25
26 package net.killingar.forum.filter;
27
28 import net.killingar.forum.internal.managers.ForumManager;
29
30 import javax.servlet.*;
31 import javax.servlet.http.HttpServletRequest JavaDoc;
32 import javax.servlet.http.HttpServletResponse JavaDoc;
33 import javax.servlet.http.HttpSession JavaDoc;
34
35 public class LoginFilter implements Filter
36 {
37     private FilterConfig filterConfig;
38
39     public void doFilter(final ServletRequest JavaDoc request, final ServletResponse JavaDoc response, FilterChain chain) throws java.io.IOException JavaDoc, javax.servlet.ServletException JavaDoc
40     {
41         // get manager
42
HttpServletRequest JavaDoc httpRequest = (HttpServletRequest JavaDoc)request;
43         HttpSession JavaDoc session = httpRequest.getSession(true);
44
45         ForumManager manager;
46         synchronized(session)
47         {
48             manager = (ForumManager)session.getAttribute("manager");
49             if (manager == null)
50             {
51                 try
52                 {
53                     manager = new ForumManager();
54                     session.setAttribute("manager", manager);
55                 }
56                 catch (Exception JavaDoc e)
57                 {
58                     throw new ServletException("Exception when creating ForumManager: "+e);
59                 }
60             }
61         }
62
63         // check login status
64
if (!manager.isLoggedIn())
65         {
66             if (httpRequest.getRequestURI().indexOf("/public/") == -1 && httpRequest.getRequestURI().indexOf("/img/") == -1)
67             {
68                 String JavaDoc url = httpRequest.getRequestURI();
69
70                 if (url.equals("/index.jsp"))
71                     url = "/";
72
73                 String JavaDoc params = httpRequest.getQueryString();
74                 if (params != null)
75                     url += "?"+params;
76
77                 ((HttpServletResponse JavaDoc)response).sendRedirect(httpRequest.getContextPath()+"/public/Login.action?url="+java.net.URLEncoder.encode(url));
78                 return;
79             }
80         }
81
82         chain.doFilter(request, response);
83     }
84
85     public void setFilterConfig(final FilterConfig filterConfig)
86     {
87         this.filterConfig = filterConfig;
88     }
89
90     public FilterConfig getFilterConfig()
91     {
92         return filterConfig;
93     }
94
95     public void init(FilterConfig filterConfig)
96     {
97     }
98
99     public void destroy()
100     {
101     }
102 }
103
104
105
Popular Tags