zoukankan      html  css  js  c++  java
  • 登录校验 简单实现

    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
    ServerHttpRequest request = exchange.getRequest();
    ServerHttpResponse response = exchange.getResponse();
    //判断是否为登录
    if (request.getURI().getPath().contains("login/in")){
    //放行
    return chain.filter(exchange);
    }
    HttpHeaders headers = request.getHeaders();
    String token = headers.getFirst("token");
    //拿到token 判断是否为空 为空返回客户端
    if (StringUtils.isEmpty(token)){
    response.setStatusCode(HttpStatus.UNAUTHORIZED);
    return response.setComplete();
    }
    Claims claims = AppJwtUtil.getClaimsBody(token);
    int result = AppJwtUtil.verifyToken(claims);
    try {
    //校验token 是否有效
    if (result == 0 || result == -1){
    Integer id = (Integer) claims.get("id");
    log.info("find user_id:{} form uri:{}",id,request.getURI());
    ServerHttpRequest serverHttpRequest = request.mutate().headers(httpHeaders -> {
    httpHeaders.add("userId", id + "");
    }).build();
    exchange.mutate().request(serverHttpRequest).build();

    }
    } catch (Exception e) {
    e.printStackTrace();
    response.setStatusCode(HttpStatus.UNAUTHORIZED);
    return response.setComplete();
    }


    return chain.filter(exchange);
    }
  • 相关阅读:
    二级菜单实现
    Python监控日志中经常访问的ip
    Python判断一个数是否为小数
    Python-读写文件
    python-字典
    Python实现屏蔽敏感词
    Python生成随机密码
    Python-列表和元组
    Jmeter命令行参数
    启动Jmeter时遇到的几种错误
  • 原文地址:https://www.cnblogs.com/KingAndPig/p/14067169.html
Copyright © 2011-2022 走看看