LoginInterceptor.java 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package com.ssm.interceptor;
  2. import javax.servlet.http.HttpServletRequest;
  3. import javax.servlet.http.HttpServletResponse;
  4. import org.springframework.stereotype.Component;
  5. import org.springframework.web.method.HandlerMethod;
  6. import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
  7. import com.ssm.common.SessionTimeOutException;
  8. import com.ssm.model.system.SysUser;
  9. import com.ssm.util.Util;
  10. import com.ssm.web.WithoutUserLogin;
  11. /**
  12. * 对有所有com.ssm包下的controller 进行拦截,当session中不存在 SysUser
  13. * 拦截进入 session-timeout页面
  14. * @author Administrator
  15. *
  16. */
  17. @Component
  18. public class LoginInterceptor extends HandlerInterceptorAdapter{
  19. @Override
  20. public boolean preHandle(HttpServletRequest request,
  21. HttpServletResponse response, Object handler) throws Exception {
  22. HandlerMethod method = (HandlerMethod)handler;
  23. if(method.getMethod().isAnnotationPresent(WithoutUserLogin.class))
  24. return true;
  25. SysUser sysUser = Util.getUserSession(request);
  26. if(sysUser == null){
  27. throw new SessionTimeOutException("session 超时");
  28. }
  29. else
  30. return true;
  31. /*HttpSession session = request.getSession();
  32. if(session != null){
  33. SysUser sysUser = (SysUser) session.getAttribute(Const.USER_SESSION_KEY);
  34. if(sysUser == null)
  35. throw new SessionTimeOutException("session 超时");
  36. else
  37. return true;
  38. } */
  39. }
  40. }