package com.manage.custorm.intercepter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import com.manage.custorm.dao.IvrLoginDao;
@Component
public class LoginInterceptor implements HandlerInterceptor {
// 这个方法是在访问接口之前执行的,我们只需要在这里写验证登陆状态的业务逻辑,就可以在用户调用指定接口之前验证登陆状态了
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
// 每一个项目对于登陆的实现逻辑都有所区别,我这里使用最简单的Session提取User来验证登陆。
// 这里的User是登陆时放入session的
IvrLoginDao token = (IvrLoginDao) request.getSession().getAttribute("IvrLoginDao");
// 如果session中没有token,表示没登陆
if (token == null) {
throw new Exception("404" + "IvrLoginDao 为bull");
} else {
return true; // 如果session里有user,表示该用户已经登陆,放行,用户即可继续调用自己需要的接口
}
}
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
}
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
}
}
HttpSession session = request.getSession();
session.setAttribute("IvrLoginDao", loginInfo);
// 设置session的有效时长,以s为单位,30*60即在没有活动的30分钟后就销毁
session.setMaxInactiveInterval(30 * 60);
spring.resources.chain.strategy.content.enabled: true
#\u5E94\u7528\u4E8E\u7248\u672C\u7B56\u7565\u7684\u6A21\u5F0F\u7684\u9017\u53F7\u5206\u9694\u5217\u8868 \u9ED8\u8BA4/**
spring.resources.chain.strategy.content.paths:/**