首页 > 其他分享 >filter拦截与放行

filter拦截与放行

时间:2024-02-25 23:22:44浏览次数:17  
标签:String josnString filter servletResponse 放行 Result 拦截 servletRequest login

@WebFilter(urlPatterns = "/*")
public class LoginChechedFilter implements Filter {

//拦截方法,只要资源链接被拦截就会触发此方法
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

HttpServletRequest request=(HttpServletRequest) servletRequest;
HttpServletResponse response= (HttpServletResponse) servletResponse;
//获取请求路径,为login则放行
String url=request.getRequestURI().toString(); //http://localhost:8080/login
//判断url有无login
if(url.contains("login")){
//登录功能,放行
filterChain.doFilter(servletRequest,servletResponse);
return;
}
else {
//获取请求头Token,只要登录成功,就存储了Token
String jwt= request.getHeader("token");

if(jwt==null){
//返回登录页面
Result not_login= Result.error("NOT_LOGIN");
//把not_login转为Json
String josnString=JSONObject.toJSONString(not_login);
//给客户端响应数据,给前端返回json{"code":0,"msg":"NOT_LOGIN","data":null}
response.getWriter().write(josnString);
return;
}

//解析token
try{
GernerateToken.parseJWT(jwt);}
catch (Exception e){
//令牌存在问题

Result not_login= Result.error("NOT_LOGIN");
//把not_login转为Json
String josnString=JSONObject.toJSONString(not_login);
//给客户端响应数据,给前端返回json{"code":0,"msg":"NOT_LOGIN","data":null}
response.getWriter().write(josnString);
return;


}
//令牌认证成功,放行
filterChain.doFilter(servletRequest,servletResponse);
}
}

标签:String,josnString,filter,servletResponse,放行,Result,拦截,servletRequest,login
From: https://www.cnblogs.com/wonder-question/p/18033338

相关文章

  • vue中filters和computed有什么区别
    在Vue.js中,filters和computed都是用来处理模板中的数据的方式,但它们有不同的应用场景和使用方式。filters是一种简单的函数,可以在模板中对数据进行格式化。它们可以用于在显示数据之前对其进行处理,例如对日期格式进行转换、将文本转换为大写或小写字母等。filters没有缓存......
  • 过滤器与拦截器
    1.过滤器Filter1.1Filter定义Filter是sun公司中servlet2.3后增加的一个新功能,在javaEE中定义了一个接口javax.servlet.Filter来描述过滤器。Filter可以认为是Servlet的一种“加强版”,它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理......
  • nginx启动报错:ngx_http_image_filter_module.so" version 1016001 instead of 1022001
    问题现象,启动nginx,提示版本不对[root@k8s-test-node2modules]#/data/nginx/sbin/nginxnginx:[emerg]module"/usr/lib64/nginx/modules/ngx_http_image_filter_module.so"version1016001insteadof1022001in/usr/share/nginx/modules/mod-http-image-filter.conf:1......
  • 旁门左道:借助 HttpClientHandler 拦截请求,体验 Semantic Kernel 插件
    前天尝试通过one-api+dashscope(阿里云灵积)+qwen(通义千问)运行SemanticKernel插件(Plugin),结果尝试失败,详见前天的博文。今天换一种方式尝试,选择了一个旁门左道走走看,看能不能在不使用大模型的情况下让SemanticKernel插件运行起来,这个旁门左道就是从StephenToub那......
  • Spring/SpringBoot 拦截器
    Spring/SpringBoot拦截器拦截器的作用:拦截器,可以进行请求过滤、权限管理、打印日志、数据校验等。拦截器,可以在请求前、请求后进行处理。代码示例:拦截器MyInterceptor:Spring的拦截器,需要实现HandlerInterceptor接口。publicclassMyInterceptorimplementsHandler......
  • Spring拦截顺序
    请求进入:filter -> interceptor ->controllerAdvice -> aspect -> controller响应返回:controller -> aspect  -> controllerAdvice -> interceptor -> filter  场景:1、全局日志切面:通过aspect切面实现(类上有Aspect注解,Order注解value为1来规定在aspect切面中......
  • 【阅读笔记】空域保边降噪《Side Window Filtering》
    1、保边滤波背景保边滤波器的代表包括双边滤波、引导滤波,但是这类滤波器有一个问题,它们均将待处理的像素点放在了方形滤波窗口的中心。但如果待处理的像素位于图像纹理或者边缘,方形滤波核卷积的处理结果会导致这个边缘变模糊。基于这个观察,《SideWindowFiltering》的作者提出......
  • JwtAuthenticationTokenFilter
    packagecom.oep.backend.config.filter;//实现config.filter.JwtAuthenticationTokenFilter类,用来验证jwttoken,如果验证成功,则将User信息注入上下文中importcom.oep.backend.mapper.AccountMapper;importcom.oep.backend.pojo.Account;importcom.oep.backend.service......
  • mybatis 通过拦截器打印完整的sql语句以及执行结果操作
    下面的文件放在source-fw的【jp.co.token.sikyuu.iterceptor】包下面MybatisInterceptor.javaInterceptorForQry.java下面的文件放在source-fw的【jp.co.token.sikyuu.common】包下面FastJsonUtils.java下面的文件放在WebRoot/WEB-INF/lib/路径下面fastjson-......
  • 读论文-协同过滤技术综述(A Survey of Collaborative Filtering Techniques)
    前言今天读的一篇论文题目为《协同过滤技术综述》(ASurveyofCollaborativeFilteringTechniques),文章发表于《人工智能研究进展》(AdvancesinArtificialIntelligence)。要引用这篇论文,请使用下述格式:XiaoyuanSu,TaghiM.Khoshgoftaar,"ASurveyofCollaborativeF......