美文网首页
非基于spring security的拦截器

非基于spring security的拦截器

作者: 极客_Ls | 来源:发表于2020-01-31 20:08 被阅读0次

壹.拦截器

实现HandlerInterceptor接口,重写preHandle方法

package com.lhh.pan.interceptor;

import com.lhh.pan.model.UserAuthenDTO;
import com.sun.deploy.net.HttpResponse;
import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashSet;
import java.util.Set;

public class SimpleInterceptor implements HandlerInterceptor{

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        UserAuthenDTO userAuthenDTO = (UserAuthenDTO) request.getSession().getAttribute(UserAuthenDTO.SESSION_USER_KEY);
        String requestUrl = request.getRequestURI();
        System.out.println(requestUrl+"=====================================");
        Set set = new HashSet();
        set.add("1");
        if (userAuthenDTO == null){
            writeContent(response,"请先登录");
        }else {
            userAuthenDTO.setAuthorities(set);
            if (userAuthenDTO.getAuthorities() != null && userAuthenDTO.getAuthorities().contains("1")
                    && requestUrl.contains("/index")){
                return true;
            }
            writeContent(response,"不好意思,没有权限");
        }
        return false;
    }


    private void writeContent(HttpServletResponse response,String msg){
        response.setContentType("text/html;charset=UTF-8");
        try{
            PrintWriter printWriter = response.getWriter();
            printWriter.print(msg);
            printWriter.close();
        }catch (IOException e){
            e.printStackTrace();
        }
    }

}

贰.注册拦截器

在 WebMvcConfigurer 的实现类中重写addInterceptors方法

@Override
public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(new SimpleInterceptor()).addPathPatterns("/index");
}

相关文章

网友评论

      本文标题:非基于spring security的拦截器

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