首先需要创建一个类实现(implements) HandlerInterceptor接口
@Component
public class LoginInterceptor implements HandlerInterceptor {
}
生成实现方法preHandl
preHandl在请求处理之前执行,返回值决定是否继续进行请求处理。可以用来进行权限验证等操作
postHandle():在请求处理之后,渲染视图之前执行。可以对模型数据进行处理或修改。
afterCompletion():在整个请求完成之后执行,主要用于资源清理操作。
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//判断是否请求的Method
if (!(handler instanceof HandlerMethod)) {
return true;
}
// 如果当前请求的路径是登录地址:/login,则直接放行
String requestURI = request.getRequestURI();
System.out.println("当前请求的路径:" + requestURI);
if ("/user/login".equals(requestURI)) {
return true;
}
//返回认证方法结果
boolean authed = auth(request);
if (authed) {
return true;
} else {
// 注释这一段表示返回一段json提示未登录
// BaseResponse baseResponse = BaseResponse.