1
22
23 package com.liferay.portal.servlet.filters.audit;
24
25 import com.liferay.portal.kernel.audit.AuditRequestThreadLocal;
26 import com.liferay.portal.kernel.util.WebKeys;
27 import com.liferay.portal.servlet.filters.BasePortalFilter;
28
29 import javax.servlet.FilterChain;
30 import javax.servlet.http.HttpServletRequest;
31 import javax.servlet.http.HttpServletResponse;
32 import javax.servlet.http.HttpSession;
33
34
39 public class AuditFilter extends BasePortalFilter {
40
41 protected void processFilter(
42 HttpServletRequest request, HttpServletResponse response,
43 FilterChain filterChain)
44 throws Exception {
45
46 AuditRequestThreadLocal auditRequestThreadLocal =
47 AuditRequestThreadLocal.getAuditThreadLocal();
48
49 auditRequestThreadLocal.setClientHost(request.getRemoteHost());
50 auditRequestThreadLocal.setClientIP(request.getRemoteAddr());
51 auditRequestThreadLocal.setQueryString(request.getQueryString());
52
53 HttpSession session = request.getSession();
54
55 Long userId = (Long)session.getAttribute(WebKeys.USER_ID);
56
57 if (userId != null) {
58 auditRequestThreadLocal.setRealUserId(userId.longValue());
59 }
60
61 auditRequestThreadLocal.setRequestURL(
62 request.getRequestURL().toString());
63 auditRequestThreadLocal.setServerName(request.getServerName());
64 auditRequestThreadLocal.setServerPort(request.getServerPort());
65 auditRequestThreadLocal.setSessionID(request.getSession().getId());
66
67 try {
68 processFilter(AuditFilter.class, request, response, filterChain);
69 }
70 finally {
71 AuditRequestThreadLocal.removeAuditThreadLocal();
72 }
73 }
74
75 }