在OAuth 2.0模式下使用Spring Cloud Gateway

Spring Cloud Gateway主要用于以下角色之一:

  • OAuth Client
  • *OAuth Resource Server

1 Spring Cloud Gateway as an OAuth 2.0 Client

在这种情况下,任何未经身份验证的传入请求都将启动授权码流程。网关获取令牌后,将在向后端服务发送请求时使用它:

在OAuth 2.0模式下使用Spring Cloud Gateway

添加依赖

<dependency>
    <groupid>org.springframework.cloud</groupid>
    <artifactid>spring-cloud-starter-gateway</artifactid>
</dependency>
<dependency>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-oauth2-client</artifactid>
</dependency>

application.yml


server:
  port: 8080
  servlet:
    context-path: /api
spring:
  security:
    oauth2:
      client:
        registration:
          cjscustom:
            client-id: client-1
            client-secret: 123456789
            client-authentication-method: client_secret_basic
            authorization-grant-type: authorization_code
            redirect-uri: http://127.0.0.1:8080/api/login/oauth2/code/cjscustom
            scope: openid,profile
        provider:
          cjscustom:
            authorization-uri: http://localhost:9000/oauth2/authorize
            token-uri: http://localhost:9000/oauth2/token
            jwk-set-uri: http://localhost:9000/oauth2/jwks
  cloud:
    gateway:
      default-filters:
        - TokenRelay=
      routes:
        - id: resource-server-1
          uri: http://localhost:8082
          predicates:
            - Path=/resource-1/**
        - id: resource-server-2
          uri: http://localhost:8083
          predicates:
            - Path=/resource-2/**
logging:
  level:
    root: debug

2 Spring Cloud Gateway as an OAuth 2.0 Resource Server

在这里,Gateway充当了网关守卫的角色,强制每个请求在发送到后端服务之前都有一个有效的访问令牌。此外,它还可以根据关联的作用域检查令牌是否具有访问给定资源的适当权限:

在OAuth 2.0模式下使用Spring Cloud Gateway

3 参考

https://www.baeldung.com/spring-cloud-gateway-oauth2

https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#token-relay-gatewayfilter-factory

https://datatracker.ietf.org/doc/html/rfc6749

https://www.rfc-editor.org/rfc/rfc6749

Original: https://www.cnblogs.com/cjsblog/p/16093204.html
Author: 废物大师兄
Title: 在OAuth 2.0模式下使用Spring Cloud Gateway

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/613127/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Nginx 代理超时

    Nginx代理超时 内部测试并未出现问题 但是再客户那边出现了 BUG System.InvalidOperationException: Response Content-Len…

    数据库 2023年6月11日
    065
  • 记一次故障系列:docker 启动失败

    启动报错: csharp;gutter:true; ]# systemctl start docker Job for docker.service failed because …

    数据库 2023年6月9日
    070
  • 深度干货!一篇Paper带您读懂HTAP | StoneDB学术分享会第①期

    在最新一届国际数据库顶级会议 ACM SIGMOD 2022 上,来自清华大学的李国良和张超两位老师发表了一篇论文:《HTAP Database: What is New and …

    数据库 2023年6月11日
    072
  • 使用Ant从零开始搭建tomcat源码环境

    使用Ant从零开始搭建tomcat源码环境 视频教程 准备工作 编辑 Idea,且装上Checkstyle插件(或者其他开发工具) 编译依赖的Jar包. 开始搭建 搭建编译环境 安…

    数据库 2023年6月11日
    092
  • 记一次部署系列:prometheus通过pushgateway配置自定义监控项

    1、部署pushgateway并配置prometheus能够拿到pushgateway的数据,类似下图。部署过程参考:https://www.cnblogs.com/sunnyto…

    数据库 2023年6月9日
    0214
  • [spring]spring详细总结

    spring 1.spring简介 Spring框架是一个开源的应用程序框架,是针对bean的生命周期进行管理的轻量级容器。 Spring解决了开发者在J2EE开发中遇到的许多常见…

    数据库 2023年6月16日
    049
  • 高可用 | 关于 Xenon 高可用的一些思考

    原创:知数堂 Xenon 不会补日志,Xenon 只会从包含最大 GTID 的所有 Follower 中选举一个 Follower,使之成为 Leader 。重新配置主从复制,并把…

    数据库 2023年5月24日
    067
  • 配置Django实现数据库读写分离

    配置Django实现数据库读写分离 django在进行数据库操作的时候,读取数据与写数据(增、删、改)可以分别从不同的数据库进行操作。 1. 在配置文件中增加slave数据库的配置…

    数据库 2023年6月14日
    084
  • 01-MySQL基础

    1、数据库的基本概念 1.1、文件操作数据的缺点 查找,增加,修改,删除数据等操作比较麻烦(特别是txt),效率低 1.2、数据库的介绍 存储和管理数据的仓库 英文单词为Dtaba…

    数据库 2023年5月24日
    055
  • Shell脚本简单示例

    Shell编程100例:https://zhuanlan.zhihu.com/p/509956726?utm_source=wechat_session&utm_mediu…

    数据库 2023年6月14日
    083
  • git 清除账号密码缓存

    配置用户名和邮箱: git config –global user.name “username”git config –globa…

    数据库 2023年6月11日
    079
  • Docker安装和配置

    sudo yum install -y docker-ce docker-ce-cli containerd.io 配置加速(可以理解为类似于Maven的阿里仓库,用于加速镜像的下…

    数据库 2023年6月6日
    067
  • 设计模式之抽象工厂

    一、抽象工厂:不管是简单工厂还是工厂方法,他们创建的都是同一类对象,有时候需要一组一组的创建对象,如果需要创建一组对象,抽象工厂是最好的方式,而抽象工厂的目的旨在创建一组包含多种不…

    数据库 2023年6月14日
    068
  • MySQL45讲之优化器选错索引

    前言 本文简要介绍了优化器选择索引的依据,以及如何人为地引导优化器选择较好的执行方案。 [En] This paper briefly introduces the basis f…

    数据库 2023年5月24日
    0108
  • 用户管理

    介绍Linux用户组的概念和对用户添加,删除和指定密码的基本操作 用户管理 Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一…

    数据库 2023年6月16日
    0108
  • MySQL数据备份 mysqldump 详解

    MySQL数据备份流程 打开cmd窗口 通过命令进行数据备份与恢复; 需要在Windows的命令行窗口中进行; l 开始菜单,在运行中输入cmd回车; l 或者win+R,然后输入…

    数据库 2023年6月14日
    074
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球