目录

创建项目结构

父工程

客户

认证服务器

资源拥有者

资源服务器


创建项目结构

演示代码下载:
https://gitee.com/lisenaq/oauth2-example.git
演示客户发请求:
http://localhost:8080/client/getCode

父工程

父工程有:子模块需要重新导入该标签的作用是为了锁定整个微服务项目的版本
父工程中没有:子模块不需要导入对应的依赖

客户

创建 springboot 项目,加入配置必要的依赖包

<dependencies><dependency><groupId>org.apache.oltu.oauth2</groupId><artifactId>org.apache.oltu.oauth2.client</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>
</dependencies>
application.yml

spring:application:name: OAuth2-client
server:port: 8080

认证服务器

pom.xml:

 <dependencies><dependency><groupId>org.apache.oltu.oauth2</groupId><artifactId>org.apache.oltu.oauth2.authzserver</artifactId></dependency><dependency><groupId>org.apache.oltu.oauth2</groupId><artifactId>org.apache.oltu.oauth2.resourceserver</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
application.yml :

spring:application:name: OAuth2-authorization-server
server:port: 8081

资源拥有者

pom.xml:

<dependencies><dependency><groupId>org.apache.oltu.oauth2</groupId><artifactId>org.apache.oltu.oauth2.authzserver</artifactId></dependency><dependency><groupId>org.apache.oltu.oauth2</groupId><artifactId>org.apache.oltu.oauth2.resourceserver</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

application.yml:
spring:application:name: OAuth2-resource-owner
server:port: 8082

资源服务器

pom.xml:
 <dependencies><dependency><groupId>org.apache.oltu.oauth2</groupId><artifactId>org.apache.oltu.oauth2.authzserver</artifactId></dependency><dependency><groupId>org.apache.oltu.oauth2</groupId><artifactId>org.apache.oltu.oauth2.resourceserver</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
application.yml :
spring:application:name: oauth2-resource-server
server:port: 8083

1.资源所有者
    资源所有者接到客户请求,需要返回授权码
2.客户 
    编写一个controller,向资源所有者请求发送请求来获取授权码
3.客户
    资源所有者生成授权码后,需要回调客户的一个接口,将授权码传回, 客户得到授权码后,需要向认证
    服务器发出请求,申请令牌
4.认证服务器
    认证服务器接到客户请求,生成令牌,并返回令牌数据
5.  客户
    客户获取了令牌,并使用令牌向资源服务器请求数据
6. 资源服务器
    资源服务器接到请求,返回数据

关于代码调试,下载导入的项目中已经打好了Debugger断点,自己去调就好了。

OAuth2 (二)相关推荐

  1. Spring Security Oauth2 (二) 代码 授权码模式

    └─java└─claroja│ Springsecurityoauth2DemoApplication.java│├─config│ AuthorizationServerConfig.java│ ...

  2. Laravel OAuth2 (二) ---配置与数据库设计

    前言 使用 OAuth2 进行第三方登陆分为好几种情况,例如完全第三方登陆,不保存任何用户信息,或者第三方登陆后保存用户信息关联本站账号.个人觉得保存一下用户信息比较妥当(虽然这样注册的时候让用户觉得 ...

  3. 《深入理解 Spring Cloud 与微服务构建》第十七章 使用 Spring Cloud OAuth2 保护微服务系统

    <深入理解 Spring Cloud 与微服务构建>第十七章 使用 Spring Cloud OAuth2 保护微服务系统 文章目录 <深入理解 Spring Cloud 与微服务构 ...

  4. SpringCloud、SpringBoot2.0 整合Oauth2 (四) 配置文件快速配置url过滤

    SpringBoot2.0 整合Oauth2 (四) 配置文件快速配置url过滤 文章目录 SpringBoot2.0 整合Oauth2 (四) 配置文件快速配置url过滤 1.添加url过滤配置 2 ...

  5. OAuth 2.0 简介

    文章目录 一.什么是OAuth2 二.OAuth2使用场景 三.Oauth设计理念 四.OAuth 2.0的运行流程 五.客户端获取授权的四种模式 前言:之前一直觉得Oauth比较神秘,今天就花了点时 ...

  6. 【django】用户登录模块实现步骤(二)之QQ登录工具AgentLogin和通过OAuth2.0认证获取openid【33】

    一.QQ登录工具AgentLogin 1.AgentLogin介绍 ⽬前只⽀持 腾讯QQ,微信,微博的第三⽅登录 该⼯具封装了QQ登录时对接QQ互联接⼝的请求操作.可⽤于快速实现QQ登录功能. 2.A ...

  7. OAuth2学习(二)——OAuth2实战

    在上一篇文章中我们讲解了OAuth2的一些基本概念,对OAuth2有了基本的认识.这一节内容我们就讲解一下OAuth2实战,围绕OAuth2的基本类型进行实战讲解. 授权码模式(authorizati ...

  8. Day212.OAuth2、微信二维码登入注册功能、用户登录信息前后端供、讲师列表前后端 -谷粒学院

    谷粒学院 OAuth2的使用场景 一.OAuth2解决什么问题 1.OAuth2提出的背景 照片拥有者想要在云冲印服务上打印照片,云冲印服务需要访问云存储服务上的资源 2.图例 资源拥有者:照片拥有者 ...

  9. 大话微服务:Spring Cloud gateway+OAuth2 实现单点登录和权限控制(二) OAuth2.0 四种模式的通俗理解

    一. 概述 OAuth2.0的规范要求,就是客户端(即通常是各个应用程序)要访问资源所有者时,经过资源所有者同意后,由Oauth向这个客户端颁发令牌.为了满足互联网不同的场景 ,规定了四种获得令牌的流 ...

  10. SpringSecurity(二十)---OAuth2:实现资源服务器(上)资源服务器搭建以及直接调用授权服务器模式

    一. 前言 本章将讨论如何使用Spring Security实现一个资源服务器,资源服务器是管理用户资源的组件.另外,学习本章有个前提,需要先把前面搭建授权服务器的相关文章先给阅读,否则可能后面出现的 ...

最新文章

  1. 每日一皮:不同的视角看待问题...
  2. Python基础教程:元组详细使用
  3. css为什么要用浮动_css浮动的特性,与浮动带来的影响以及如何清除浮动
  4. nginx 4层代理配置
  5. Android--使用LayoutInflater加载布局文件的三种方法
  6. 线程安全性的基础知识
  7. 章节三、2-方法_演示实例
  8. Django序列化django REST framework
  9. [Matlab有限元分析] 1.有限元分析的发展、基本概念和特点
  10. 移动节点的间接路由方式
  11. 高德地图之逆地理编码
  12. c语言课设源程序学英语,C语言程序课程设计实验报告(用一个字符数组保存一个英文句子)详细分解.docx...
  13. 【活动报名】 拥抱公平《 Impact Tech, She Can 》
  14. 基于HTML旅游酒店主题网页项目的设计与实现——度假酒店预订网站(5页面)HTML+CSS+JavaScript...
  15. 默认模式网络(Default mode network, DMN)
  16. 在微型计算机中 负数常用()表示,在微型计算机中,负数常用( )表示。
  17. 《大数据面试题》面试大数据这一篇就够了
  18. VUE3.0从安装到应用 (2)
  19. pyalgotrade量化回测框架简单试用
  20. arcgis for android(六)定位

热门文章

  1. 数学文化 卢卡斯数列和黄金分割
  2. 第一次CCF计算机软件能力认证
  3. java程序员学技术都会访问那些网站?
  4. 2022煤气上岗证题目及答案
  5. Spring为什么这么火 之 Spring蕴含的设计思想
  6. jQuery动画——animate()
  7. AHOI2019N省联考凉凉记
  8. linux ftp 虚拟目录,Linux搭建FTP之vsftpd 虚拟用户配置步骤
  9. 【专题教程第4期】SEGGER的J-Scope波形上位机软件,HSS模式简单易用,无需额外资源,也不需要写目标板代码
  10. /etc/sysconfig/network: No such file or directory