Class AccessLogFilter

  • All Implemented Interfaces:
    javax.servlet.Filter

    public class AccessLogFilter
    extends Object
    implements javax.servlet.Filter
    Logs JIRA username and request URL via log4j. See http://confluence.atlassian.com/display/JIRA/User+access+logging
    • Constructor Detail

      • AccessLogFilter

        public AccessLogFilter()
    • Method Detail

      • init

        public void init​(javax.servlet.FilterConfig filterConfig)
                  throws javax.servlet.ServletException
        Does nothing but prints INFO log message
        Specified by:
        init in interface javax.servlet.Filter
        Parameters:
        filterConfig - not used
        Throws:
        javax.servlet.ServletException - not thrown
      • doFilter

        public void doFilter​(javax.servlet.ServletRequest servletRequest,
                             javax.servlet.ServletResponse servletResponse,
                             javax.servlet.FilterChain chain)
                      throws IOException,
                             javax.servlet.ServletException
        Creates logs if INFO logging level is set and URL is "interesting" according to isInterestingUrl(String).
        Specified by:
        doFilter in interface javax.servlet.Filter
        Parameters:
        servletRequest - request
        servletResponse - response
        chain - filter chain
        Throws:
        IOException - if another filter in the filter chain throws it
        javax.servlet.ServletException - if another filter in the filter chain throws it
      • getStartText

        protected String getStartText​(String url,
                                      javax.servlet.http.HttpServletRequest request,
                                      long startMem)
      • getEndText

        protected String getEndText​(int httpStatusCode,
                                    String startText,
                                    long memDiff,
                                    long timeDiff)
      • isInterestingUrl

        protected boolean isInterestingUrl​(String url)
        Returns true if the given URL is of our interest. Images (.gif, .png, .jpg, .ico), CSS (.css) and JavaScript (.js) are out of interest and if url ends with one of these extentions false is returned.
        Parameters:
        url - url to check
        Returns:
        true if interesting
      • destroy

        public void destroy()
        Does nothing
        Specified by:
        destroy in interface javax.servlet.Filter
      • setUsernameLoggingEnabled

        public static void setUsernameLoggingEnabled​(boolean value)