SpringCloud Zuul过滤器实现登陆鉴权代码实例

作者:Catbir 时间:2022-06-21 21:47:51 

1.新建一个filter‘包

2.新建一个类,实现ZuulFilter,重写里面的方法

3.在顶部类添加注解,@Component,让Spring扫描


/**
* 登陆过滤器
*/
@Component
public class LoginFilter extends ZuulFilter {
 @Override
 public String filterType() { //前置过滤器
   return PRE_TYPE;
 }

@Override
 public int filterOrder() { //过滤器顺序,越小越先执行
   return 3;
 }

@Override
 public boolean shouldFilter() { //过滤器是否生效
   RequestContext requestContext = RequestContext.getCurrentContext();
   HttpServletRequest request = requestContext.getRequest();
   System.out.println(request.getRequestURI());
   System.out.println(request.getRequestURL());
   if ("/apizuul/order/api/v1/order/save".equalsIgnoreCase(request.getRequestURI())){ //拦截
     return true;
   }
   return false;
 }

/**
  * 业务逻辑
  * @return
  * @throws ZuulException
  */
 @Override
 public Object run() throws ZuulException {
   System.out.println("拦截...");
   RequestContext requestContext = RequestContext.getCurrentContext();
   HttpServletRequest request = requestContext.getRequest();
   String token = request.getHeader("token");
   if (StringUtils.isBlank(token)){
     token = request.getParameter("token");
   }
   //登陆校验逻辑 jwt生成token
   if (StringUtils.isBlank(token)){
     requestContext.setSendZuulResponse(false); //不会往下执行
     requestContext.setResponseStatusCode(HttpStatus.UNAUTHORIZED.value());
   }
   return null;
 }

来源:https://www.cnblogs.com/zhuomuniao/p/12452927.html

标签:Spring,Cloud,Zuul,过滤器
0
投稿

猜你喜欢

  • Intellij Idea中批量导入第三方jar包的全过程

    2022-01-29 03:14:26
  • java递归算法实例分析

    2022-02-09 07:59:17
  • 一文解决springboot打包成jar文件无法正常运行的问题

    2021-11-03 14:54:28
  • Java汉字转拼音工具类完整代码实例

    2021-07-09 21:32:18
  • SpringBoot集成kaptcha验证码

    2023-06-26 03:56:17
  • MyBatis-Plus多表联查(动态查询)的项目实践

    2023-11-19 21:43:17
  • 浅谈java安全编码指南之死锁dead lock

    2023-06-22 04:49:19
  • java.net.SocketException: Connection reset 解决方法

    2023-06-17 01:28:43
  • Java中List常用操作比for循环更优雅的写法示例

    2023-08-08 23:25:14
  • JAVA面试题之Forward与Redirect的区别详解

    2023-11-25 02:27:15
  • java 请求跨域问题解决方法实例详解

    2023-08-24 02:55:11
  • JAVA与SQL 中的null与NULL解析

    2023-06-23 11:51:18
  • Spring Boot用户注册验证的实现全过程记录

    2023-01-03 01:58:34
  • 基于Java编写一个PDF与Word文件转换工具

    2023-05-30 19:23:12
  • JAVA面试题 简谈你对synchronized关键字的理解

    2022-09-17 17:06:05
  • Java实现分页查询功能

    2023-03-03 14:30:19
  • Java设计模式编程之解释器模式的简单讲解

    2022-01-24 16:03:32
  • Java Socket实现多人聊天系统

    2023-08-08 04:44:35
  • Java中左移和右移问题图文详解

    2023-02-14 15:44:05
  • 基于FLink实现实时安全检测的示例代码

    2022-05-06 11:03:11
  • asp之家 软件编程 m.aspxhome.com