@Override protected boolean onPreHandle(ServletRequest request, ServletResponse response, Object mappedValue) throws Exception { ShiroHttpServletRequest servletRequest = (ShiroHttpServletRequest) request; if (!"partial/ajax".equals(servletRequest.getHeader("Faces-Request"))) { Object principal = SecurityUtils.getSubject().getPrincipal(); String requestURI = servletRequest.getRequestURI(); int idx = requestURI.indexOf('/', 2); if (idx > 0) { requestURI = requestURI.substring(idx); } String remoteAddress = servletRequest.getRemoteAddr(); String userAgent = ((HttpServletRequest)request).getHeader("User-Agent"); BeanManagerProvider.getInstance().getBeanManager().fireEvent(new OctopusAuditEvent(requestURI, principal, remoteAddress, userAgent)); } return true; } }