突破拦截验证测试本地接口

仅供程序员测试用

对象:shiro安全框架类型项目

方法一: 先调用登录接口

登录接口需要注释部分代码:
突破拦截验证测试本地接口_第1张图片
参数中itcode需要正确输入,登录接口返回可用的token,然后将token带入你需要的接口进行测试;

方法二: 修改配置

权限系统不会拦截登录接口,因做了配置,当前接口也可以做同样的配置;
突破拦截验证测试本地接口_第2张图片
页面也加上配置,没有可以不加:
突破拦截验证测试本地接口_第3张图片

方法三:修改拦截器

每个接口都会被拦截,只是本地测试的话,可以先把拦截器部分注释掉,不让用户去获取user,免去判断。然后在调用接口就没有问题了。

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        User user = null;
        Protected protectedResource = null;
        RequestMapping requestMapping = null;

        if (handler instanceof HandlerMethod) {
            HandlerMethod handlerMethod = (HandlerMethod) handler;
            if (handlerMethod.hasMethodAnnotation(Protected.class)) {
                requestMapping = handlerMethod.getMethodAnnotation(RequestMapping.class);
                protectedResource = handlerMethod.getMethodAnnotation(Protected.class);
//                user = authenticationService.getLoginUser(request);
            }
        }

//        if (protectedResource != null && requestMapping != null) {
//            if (user == null) {
//                // 没有登陆访问保护资源
//                processUnauthorizedForAccessProtectedResource(response,ApiCode.UNAUTHORIZED);
//                return false;
//            } else {
//                if (protectedResource.value() == Protected.Type.AUTHORIZE) {
//                    if (!hasPermission(user, requestMapping, request)) {
//                        processUnauthorizedForAccessProtectedResource(response, ApiCode.NOT_PERMISSION);
//                        return false;
//                    }
//                }
//            }
//        }
        //it may be null
        request.setAttribute(CommonConstant.Key.USER, user);
        return true;
    }

方法四:页面指定url调用

需要在方法三的基础上操作,便于页面直接调用。

4.1 修改页面指定url

在这里插入图片描述

4.2 点击连接使用

突破拦截验证测试本地接口_第4张图片

你可能感兴趣的:(shiro)