拦截器

This commit is contained in:
hjc
2019-12-19 22:37:52 +08:00
parent 12b0f4eab7
commit e49dc747e7
11 changed files with 89 additions and 12 deletions
@@ -0,0 +1,23 @@
package com.cwhelp.common.config;
import com.cwhelp.common.interceptor.ApiLoginInterceptor;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.Arrays;
/**
* Created by huangjc on 2019/12/19 0019.
*/
@SpringBootConfiguration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new ApiLoginInterceptor()).addPathPatterns("/apiBiz/**")
.addPathPatterns("/api/biz/**").excludePathPatterns(Arrays.asList("/css/**", "/js/**", "/images/**", "/lib/**"));
}
}
@@ -15,9 +15,9 @@ import java.io.PrintWriter;
/**
* Created by huangjc on 2019/12/10 0010.
*/
@Component
@ServletComponentScan
@WebFilter(filterName = "apiLoginFilter", urlPatterns = {"/api_biz/*", "/api/biz/*"})
//@Component
//@ServletComponentScan
//@WebFilter(filterName = "apiLoginFilter", urlPatterns = {"/api_biz/*", "/api/biz/*"})
public class ApiLoginFilter implements Filter {
@Override
@@ -28,7 +28,7 @@ public class ApiLoginFilter implements Filter {
HttpSession session = request.getSession();
if(session.getAttribute(token) == null){
response.setStatus(401);
response.setContentType("text/html;charset=utf-8");
response.setContentType("application/json;charset=utf-8");
PrintWriter writer = response.getWriter();
JSONObject json = new JSONObject();
json.put("code","401");
@@ -0,0 +1,46 @@
package com.cwhelp.common.interceptor;
import com.alibaba.fastjson.JSONObject;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.PrintWriter;
/**
* Created by huangjc on 2019/12/19 0019.
*/
@Component
public class ApiLoginInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String token = request.getHeader("token");
HttpSession session = request.getSession();
if(session.getAttribute(token) == null){
response.setStatus(401);
response.setContentType("application/json;charset=utf-8");
PrintWriter writer = response.getWriter();
JSONObject json = new JSONObject();
json.put("code","401");
json.put("msg","请先登录!");
writer.print(json);
return false;
}
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}