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

相关推荐
王会举17 分钟前
Java实现日志全链路追踪.精确到一次请求的全部流程
java·log4j
CHH543124 分钟前
3D立体卡片动效(附源码)
前端·css·3d·玩转css
戏拈秃笔25 分钟前
前端——在本地搭建Vue单页应用
前端·javascript·vue.js
Elena_Lucky_baby26 分钟前
vue项目创建+eslint+Prettier+git提交规范(commitizen+hooks+husk)
前端·javascript·vue.js
马剑威(威哥爱编程)30 分钟前
使用 Mybatis 时,调用 DAO接口时是怎么调用到 SQL 的?
java·sql·mybatis
m0_6442226140 分钟前
HarmonyOS开发探索:自定义键盘-webview
前端·华为·计算机外设·移动开发·harmonyos·鸿蒙开发
铁匠匠匠1 小时前
django学习入门系列之第三点《案例 小米商城二级菜单》
前端·css·经验分享·python·学习·django·前端框架
呀呀呀雅楠?1 小时前
vue3(nuxt3)中使用ref获取不到子组件变量
前端·javascript·vue.js·nuxtjs
三村阿明1 小时前
Java多线程
java·开发语言·多线程·reentrantlock
一颗苹果OMG1 小时前
三栏布局,到底哪种最好用呢
前端·css