Skip to content

Instantly share code, notes, and snippets.

@BrunoDSouza
Last active August 25, 2017 04:37
Show Gist options
  • Save BrunoDSouza/98f7f6d00c3f6c7df8a7cb36154410aa to your computer and use it in GitHub Desktop.
Save BrunoDSouza/98f7f6d00c3f6c7df8a7cb36154410aa to your computer and use it in GitHub Desktop.
Classe utilizada para interceptar requisições
package com.zieg.petcare.config;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.zieg.petcare.services.UserService;
public class HandlerInterceptor extends HandlerInterceptorAdapter{
private static Logger log = LoggerFactory.getLogger(HandlerInterceptor.class);
private static final long MAX_INACTIVE_SESSION_TIME = 5 * 10000;
@Autowired
private HttpSession session;
@Autowired
private UserService userService;
public boolean preHandle(final HttpServletRequest request, final HttpServletResponse response,
final Object handler) throws Exception {
long startTime = System.currentTimeMillis();
request.setAttribute("executionTime", startTime);
if (userService.isUserLogged()) {
session = request.getSession();
log.info("Ultimo acesso, requisição na session: {} ms", System.currentTimeMillis() - request.getSession().getLastAccessedTime());
if(System.currentTimeMillis() - session.getLastAccessedTime() > MAX_INACTIVE_SESSION_TIME) {
log.warn("Logging out, to inactive session");
SecurityContextHolder.clearContext();
request.logout();
response.sendRedirect("/logout");
}
if(userService.getPrincipal().getName() == ""){
log.warn("Logging out, to user no most valid!");
SecurityContextHolder.clearContext();
request.logout();
response.sendRedirect("/logout");
}
}
else return false;
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response,
Object handler, ModelAndView modelAndView) throws Exception {
log.info("Request after handler execute - URL :: {} Sent to Handler :: Current Time = {} ",
request.getRequestURL().toString(), System.currentTimeMillis());
}
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex) throws Exception {
log.info("Request after complete handler execution - URL:: {} Sent to Handler :: Sent to Handler :: Current Time= {} ",
request.getRequestURL().toString(), System.currentTimeMillis());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment