Index: lams_admin/web/WEB-INF/web.xml
===================================================================
diff -u -rea3eb45a90b898583f0846acd6cb113344863708 -rb6abe020e1a153e53ff398f05f3e3b235bf3660b
--- lams_admin/web/WEB-INF/web.xml (.../web.xml) (revision ea3eb45a90b898583f0846acd6cb113344863708)
+++ lams_admin/web/WEB-INF/web.xml (.../web.xml) (revision b6abe020e1a153e53ff398f05f3e3b235bf3660b)
@@ -75,8 +75,8 @@
- SecurityLogFilter
- org.lamsfoundation.lams.web.filter.SecurityLogFilter
+ AuditLogFilter
+ org.lamsfoundation.lams.web.filter.AuditLogFilter
CSRFGuard
@@ -96,7 +96,7 @@
/*
- SecurityLogFilter
+ AuditLogFilter
*.do
Index: lams_build/conf/slim/standalone.xml
===================================================================
diff -u -rea3eb45a90b898583f0846acd6cb113344863708 -rb6abe020e1a153e53ff398f05f3e3b235bf3660b
--- lams_build/conf/slim/standalone.xml (.../standalone.xml) (revision ea3eb45a90b898583f0846acd6cb113344863708)
+++ lams_build/conf/slim/standalone.xml (.../standalone.xml) (revision b6abe020e1a153e53ff398f05f3e3b235bf3660b)
@@ -113,12 +113,12 @@
-
-
+
-
+
@@ -134,7 +134,7 @@
-
+
@@ -248,10 +248,10 @@
-
+
-
+
Index: lams_build/conf/standalone.xml
===================================================================
diff -u -rea3eb45a90b898583f0846acd6cb113344863708 -rb6abe020e1a153e53ff398f05f3e3b235bf3660b
--- lams_build/conf/standalone.xml (.../standalone.xml) (revision ea3eb45a90b898583f0846acd6cb113344863708)
+++ lams_build/conf/standalone.xml (.../standalone.xml) (revision b6abe020e1a153e53ff398f05f3e3b235bf3660b)
@@ -142,12 +142,12 @@
-
-
+
-
+
@@ -163,7 +163,7 @@
-
+
@@ -277,10 +277,10 @@
-
+
-
+
Index: lams_common/src/java/org/lamsfoundation/lams/web/filter/AuditLogFilter.java
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/web/filter/AuditLogFilter.java (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/web/filter/AuditLogFilter.java (revision b6abe020e1a153e53ff398f05f3e3b235bf3660b)
@@ -0,0 +1,80 @@
+package org.lamsfoundation.lams.web.filter;
+
+import java.io.IOException;
+import java.util.Map.Entry;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import org.apache.log4j.Logger;
+import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
+import org.lamsfoundation.lams.web.session.SessionManager;
+import org.lamsfoundation.lams.web.util.AttributeNames;
+import org.springframework.web.filter.OncePerRequestFilter;
+
+/**
+ * Logs requests to controllers with their parameters
+ *
+ * @author Marcin Cieslak
+ */
+public class AuditLogFilter extends OncePerRequestFilter {
+
+ private static final Logger log = Logger.getLogger(AuditLogFilter.class);
+
+ @Override
+ public void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
+ throws IOException, ServletException {
+ try {
+ // look for user information
+ UserDTO user = AuditLogFilter.getUserDto();
+ StringBuilder logMessageBuilder = new StringBuilder();
+ if (user == null) {
+ logMessageBuilder.append("Unauthenticated user ");
+ } else {
+ logMessageBuilder.append("\"").append(user.getLogin()).append("\" (").append(user.getUserID())
+ .append(") ");
+ }
+
+ // what path was called
+ logMessageBuilder.append("called ").append(request.getRequestURI());
+
+ // optional parameters
+ if (!request.getParameterMap().isEmpty()) {
+ logMessageBuilder.append(" with parameters: ");
+ for (Entry entry : request.getParameterMap().entrySet()) {
+ String key = entry.getKey();
+ // skip CSRF parameter
+ if ("OWASP-CSRFGUARD".equals(key)) {
+ continue;
+ }
+
+ // print out all parameters with their values
+ logMessageBuilder.append(key).append("=[");
+ String[] values = entry.getValue();
+ if (values != null && values.length > 0) {
+ for (String value : entry.getValue()) {
+ logMessageBuilder.append(value).append(", ");
+ }
+ logMessageBuilder.delete(logMessageBuilder.length() - 2, logMessageBuilder.length());
+ }
+ logMessageBuilder.append("], ");
+ }
+ logMessageBuilder.delete(logMessageBuilder.length() - 2, logMessageBuilder.length());
+ }
+
+ log.info(logMessageBuilder);
+ } catch (Exception e) {
+ log.error("Exception while logging to audit log", e);
+ }
+
+ chain.doFilter(request, response);
+ }
+
+ private static UserDTO getUserDto() {
+ HttpSession ss = SessionManager.getSession();
+ return (UserDTO) ss.getAttribute(AttributeNames.USER);
+ }
+}
\ No newline at end of file
Fisheye: Tag b6abe020e1a153e53ff398f05f3e3b235bf3660b refers to a dead (removed) revision in file `lams_common/src/java/org/lamsfoundation/lams/web/filter/SecurityLogFilter.java'.
Fisheye: No comparison available. Pass `N' to diff?