关于html页面拦截器权限控制

来源:互联网 发布:网络异常检测 编辑:程序博客网 时间:2024/06/13 22:50

      最近项目中比较喜欢在前端用html,这样直接把页面贴进去方便好多,并且html响应也比较快,但是对于html权限这块,应用拦截器可以很简单的实现。

       直接贴代码

public class MyInterceptor implements HandlerInterceptor {
private Logger logger=Logger.getLogger(MyInterceptor .class);
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //请求的路径
        String url = request.getServletPath().toString();
        logger.info("url:" + url);
        //1、静态资源直接放行html img css js
        if (request.getServletPath().contains(".")) {
            return true;
        }
        //2、放行登录请求
        if (request.getServletPath().endsWith("login")) {
            return true;
        }
        //3、下载pdf放行  .pdf下载
        if (request.getServletPath().endsWith("download")) {
        return true;
        }
        //4、如果用户已经登录,从Header中获取Authorization
        String authorization = request.getHeader("Authorization");
        //5 判断token是不是空
        if (authorization == null) {
            return false;
        }

//这里token可以根据个人爱好,随便使用任何加密算法来实现
        String token="xxxxxxxx";
        //6、验证token是否为真实, 这里验证token签名  根据特殊秘钥  一般我们签名当前最火的是redis
        if (token.equals(authorization)) {
            return true;
        }
        //7非法请求 即这些请求需要登录后才能访问
        Response baseResponse = new Response();
        baseResponse.setCode("403");
        baseResponse.setMessage("权限不够");


        response.setContentType("text/json;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(baseResponse);
        return false;
    }

阅读全文
0 0
原创粉丝点击