《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的继续使用

相关推荐
NutShell Wang几秒前
拆解 GitHub gh-stack:堆叠 PR 工作流的设计取舍与工程实现
前端·git·开源·github·代码复审·开发者工具·vibe coding
名字还没想好☜4 分钟前
React 用 IntersectionObserver 实现图片懒加载与无限滚动:封装一个 useInView Hook
前端·javascript·vue.js·react.js·react
Sam_Deep_Thinking4 分钟前
用Java 17从0到1写一个mini版RPC,理解远程调用的本质
java·面试·rpc·程序员·系统架构
敲代码的嘎仔26 分钟前
从零搭建微服务:Spring Cloud Alibaba 全家桶踩坑实录(Nacos + OpenFeign + Gateway + Sentinel)
java·spring boot·spring·spring cloud·微服务·gateway·sentinel
带娃的IT创业者34 分钟前
Puppeteer 深度解析:超越自动化测试的现代 Web 交互范式
前端·交互·puppeteer·可观测性·浏览器自动化·无头浏览器·web工程化
程序员爱钓鱼36 分钟前
Rust 所有权 Ownership 详解:理解内存安全的核心机制
前端·后端·rust
一条泥憨鱼1 小时前
苍穹外卖【day7| 对购物车进行操作】
java·后端·mysql·苍穹外卖
Mh9 小时前
别再只会 `find` 了:Map 在前端业务里的真实用法
前端·javascript
陈随易9 小时前
FFmpeg 9.0 发布,代号 Lei,音视频处理再升级
前端·后端·程序员
爱丶狸10 小时前
Grafana_Zabbix_ImageRenderer_部署与前端操作手册
linux·前端·zabbix·grafana·kylin