怎么使用Spring Cloud的Zuul网关和JWT身份验证

发布时间:2021-11-17 13:57:47 作者:iii
来源:亿速云 阅读:156

本篇内容主要讲解“怎么使用Spring Cloud的Zuul网关和JWT身份验证”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Spring Cloud的Zuul网关和JWT身份验证”吧!

 1.1什么是Zuul

怎么使用Spring Cloud的Zuul网关和JWT身份验证

1.2 快速入门--路由转发

//已有访问路径
http://localhost:8080/user
//通过网关希望访问路径
http://localhost:10010/userservice/user

1.3面向服务的路由

怎么使用Spring Cloud的Zuul网关和JWT身份验证

1.4 简化路由配置

zuul:
  routes:
    userservice: /userservice/**

1.5 默认路由规则

##默认配置
zuul:
  routes:
    adminservice: /adminservice/**

怎么使用Spring Cloud的Zuul网关和JWT身份验证

1.6 zuul基础环境搭建

1.7 路由前缀

zuul:
  prefix: /api

怎么使用Spring Cloud的Zuul网关和JWT身份验证

1.8 Zuul过滤器

1.8.1 概述

1.8.2 自定义过滤器

package com.czxy.filter;

import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import com.netflix.zuul.exception.ZuulException;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletRequest;


@Component
public class LoginFilter extends ZuulFilter {
    @Override
    public String filterType() {
        return "pre";            //1 过滤器类型
    }

    @Override
    public int filterOrder() {
        return 1;               //2 过滤器排序
    }

    @Override
    public boolean shouldFilter() {
        return true;           //3 是否执行
    }

    @Override
    public Object run() throws ZuulException {
        // 获得一个特殊请求头,判断是否有值:有 返回 null(放行) , 没有 响应状态码401
        //1 获得工具类(请求上下文对象)
        RequestContext requestContext = RequestContext.getCurrentContext();
        //2 通过工具类获得request对象
        HttpServletRequest request = requestContext.getRequest();
        //3 通过request对象获得特殊请求头
        String auth = request.getHeader("authorization");
        //4 判断
        if(auth == null){
            //没有
            requestContext.setSendZuulResponse(false);      //关闭响应
            requestContext.setResponseStatusCode(401);
        }

        //放行
        return null;
    }
}

1.9 Spring Cloud 总结

怎么使用Spring Cloud的Zuul网关和JWT身份验证

2. JWT

服务与服务之间共享数据,采用JWT先生成数据,在另一个服务中解析数据,为了保证数据安全性,使用RAS对数据进行加密。

2.1 RAS 工具

//生成公钥和私钥
RasUtils.generateKey(公钥位置,私钥位置,密码);
RasUtils.generateKey(pubKeyPath,priKeyPath,"234");
//获得公钥
RasUtils.getPublicKey(pubKeyPath);
//获得私钥
RasUtils.getPrivateKey(priKeyPath);

怎么使用Spring Cloud的Zuul网关和JWT身份验证

2.2 JWT工具

到此,相信大家对“怎么使用Spring Cloud的Zuul网关和JWT身份验证”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. 如何实现Spring Cloud Zuul路由网关服务过滤
  2. 简单了解spring cloud 网关服务

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spring cloud zuul jwt

上一篇:pytorch慢到无法安装怎么处理

下一篇:jquery如何获取tr里面有几个td

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》