当前位置: 首页 > news >正文

《web应用技术》第十一次作业

1、验证过滤器进行权限验证的原理。

代码展示:

@Slf4j

@WebFilter(urlPatterns = "/*")

public class LoginCheckFilter implements Filter {

    @Override

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

        HttpServletRequest req = (HttpServletRequest) request;

        HttpServletResponse resp = (HttpServletResponse) response;

        String url = req.getRequestURL().toString();

        log.info("请求的url: {}",url);

        if(url.contains("login")){

            log.info("登录操作, 放行...");

            chain.doFilter(request,response);

            return;

 }

        String jwt = req.getHeader("token");

        if(!StringUtils.hasLength(jwt)){

            log.info("请求头token为空,返回未登录的信息");

            Result error = Result.error("NOT_LOGIN");

            String notLogin = JSONObject.toJSONString(error);

            resp.getWriter().write(notLogin);

            return;

        }

        try {

            JwtUtils.parseJWT(jwt);

        } catch (Exception e) {//jwt解析失败

            e.printStackTrace();

            log.info("解析令牌失败, 返回未登录错误信息");

            Result error = Result.error("NOT_LOGIN");

            String notLogin = JSONObject.toJSONString(error);

            resp.getWriter().write(notLogin);

            return;

        }

        log.info("令牌合法, 放行");

        chain.doFilter(request, response);

    }

}

2、Apifox的使用

3、Git的继续使用

相关文章:

  • Postman接口测试工具详解
  • 【逻辑回归】和【线性回归】的区别和联系-九五小庞
  • 【git使用四】git分支理解与操作(详解)
  • 快手爬票概述
  • node设置镜像源详细教程
  • SpringMVC的工作流程
  • 编程App软件优化是什么
  • 【知识点】std::thread::detach std::lock_guard std::unique_lock
  • 【CT】LeetCode手撕—121. 买卖股票的最佳时机
  • 在不使用js在情况下只用css实现瀑布流效果
  • 速盾:cdn加速怎么计费?
  • 二刷算法训练营Day29 | 回溯算法(5/6)
  • SortTable.js + vxe-table 实现多条批量排序
  • 第 4 章:从 Spring Framework 到 Spring Boot
  • PyCharm设置不默认打开上次的项目
  • JavaScript-如何实现克隆(clone)函数
  • 《深入 React 技术栈》
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • Go 语言编译器的 //go: 详解
  • jQuery(一)
  • Koa2 之文件上传下载
  • Mocha测试初探
  • MySQL数据库运维之数据恢复
  • mysql中InnoDB引擎中页的概念
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Python 基础起步 (十) 什么叫函数?
  • spring cloud gateway 源码解析(4)跨域问题处理
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 读懂package.json -- 依赖管理
  • 对超线程几个不同角度的解释
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 写代码的正确姿势
  • 鱼骨图 - 如何绘制?
  • HanLP分词命名实体提取详解
  • 整理一些计算机基础知识!
  • #图像处理
  • #微信小程序(布局、渲染层基础知识)
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (Python) SOAP Web Service (HTTP POST)
  • (TOJ2804)Even? Odd?
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (汇总)os模块以及shutil模块对文件的操作
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (一)Dubbo快速入门、介绍、使用
  • (一)基于IDEA的JAVA基础1
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • .Net - 类的介绍
  • .net 获取url的方法