美文网首页
springboot 设置拦截器 进行登录验证

springboot 设置拦截器 进行登录验证

作者: Mr菜头 | 来源:发表于2020-09-07 14:15 被阅读0次

1、编写拦截器,返回json

@Component
public class SecurityInterceptor implements HandlerInterceptor {

    Logger log = LoggerFactory.getLogger(SecurityInterceptor.class);
    
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        
        String url = request.getRequestURL().toString();
        log.info(url);
        HttpSession session = request.getSession();
        //是否登录
        System.out.println(url.endsWith("login"));
        if (session.getAttribute("user") != null ) {            
            return true;
        }else {
            returnJson(response);
            return false;
        }
        
    }

    /**
     * 返回json,前后端分离
     * @param response
     */
    private void returnJson(HttpServletResponse response) {
        PrintWriter writer = null;
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html; charset=utf-8");
        try {
            writer = response.getWriter();
            writer.print("{\"message\":\"请先登录系统\"}");
            
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(writer!=null) {
                writer.close();
            }
        }
    }
}

2、注册拦截器

@Configuration
public class webConfig implements WebMvcConfigurer {
    
    @Autowired
    SecurityInterceptor securityInterceptor;
    
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //注册自定义拦截器
        InterceptorRegistration interceptor = registry.addInterceptor(securityInterceptor);
                //拦截url  
        interceptor.addPathPatterns("/wcs/**");
        //去除error和login
        interceptor.excludePathPatterns("/error");
        interceptor.excludePathPatterns("/login**");
        
        
    }

}

相关文章

网友评论

      本文标题:springboot 设置拦截器 进行登录验证

      本文链接:https://www.haomeiwen.com/subject/regkektx.html