Rev 1814 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1 | fvelez | 1 | package pt.estgp.estgweb.web.filters; |
2 | |||
3 | import org.apache.log4j.Logger; |
||
697 | jmachado | 4 | import pt.estgp.estgweb.domain.UserSessionImpl; |
1830 | jmachado | 5 | import pt.estgp.estgweb.web.UserSessionProxy; |
1 | fvelez | 6 | |
7 | import javax.servlet.*; |
||
8 | import javax.servlet.http.HttpServletRequest; |
||
9 | import javax.servlet.http.HttpServletResponse; |
||
10 | import java.io.IOException; |
||
11 | |||
12 | /** |
||
13 | * |
||
14 | * @author Jorge Machado |
||
15 | */ |
||
16 | |||
17 | public class UserFilter implements 1.5.0/docs/api/java/util/logging/Filter.html">Filter { |
||
18 | |||
1771 | jmachado | 19 | private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(UserFilter.class); |
1 | fvelez | 20 | |
21 | |||
22 | public UserFilter() |
||
23 | { |
||
24 | } |
||
25 | |||
26 | public void init(FilterConfig config) |
||
27 | { |
||
28 | |||
29 | } |
||
30 | |||
31 | /** |
||
32 | * |
||
33 | * @param request The servlet request we are processing |
||
34 | * @param chain The filter chain we are processing |
||
35 | * |
||
36 | * @exception java.io.IOException if an input/output error occurs |
||
37 | * @exception javax.servlet.ServletException if a servlet error occurs |
||
38 | */ |
||
39 | public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) |
||
40 | throws 1.5.0/docs/api/java/io/IOException.html">IOException, ServletException |
||
41 | { |
||
42 | HttpServletRequest hrequest = (HttpServletRequest) request; |
||
43 | if(((HttpServletRequest)request).getServletPath().indexOf("errorNoCookies.do")>=0 || !hrequest.isRequestedSessionIdFromCookie()) |
||
44 | chain.doFilter(request,response); |
||
45 | |||
1830 | jmachado | 46 | UserSessionImpl userSession = (UserSessionImpl) UserSessionProxy.loadUserSessionFromRequest(hrequest); |
697 | jmachado | 47 | |
48 | if(userSession != null && userSession.getUser() != null) |
||
1 | fvelez | 49 | chain.doFilter(request,response); |
697 | jmachado | 50 | else if(userSession == null) |
51 | { |
||
52 | logger.info("User lost Session"); |
||
53 | } |
||
1 | fvelez | 54 | else |
55 | { |
||
1771 | jmachado | 56 | try{ |
57 | |||
58 | |||
59 | // ((HttpServletResponse)response).setStatus(401); |
||
60 | ((HttpServletResponse)response).sendError(401); |
||
61 | }catch(1.5.0/docs/api/java/lang/Throwable.html">Throwable e) |
||
62 | { |
||
63 | logger.error("Error don't sending error, probably already sent: " + e); |
||
64 | } |
||
1 | fvelez | 65 | } |
66 | } |
||
67 | |||
68 | |||
69 | public void destroy() |
||
70 | { |
||
71 | // Nothing |
||
72 | } |
||
73 | |||
74 | } |