1.总结:昨天主要是继续完善OAuth2配合将问题完成单点登录,昨天也应证了一个认证服务,两个客户端服务在登陆一次后可以访问两个客户端的页面,也算是完成了单点登录
 
2.具体实现
  1. 首先是使用java解析jwt,在我们的controller的函数中定义request参数,根据request参数获取其头部的“Authorization”键来得到其头部,再使用字符串分割得到头部的token,最后根据密钥,token获取用户信息
  2. 在我们实际的项目中,我们的token会设置失效时间,这个时候就需要添加刷新令牌,当然刷新令牌也可以添加失效时间,用来保护token
  3. springsecurityOAuth2整合jwt:首先创建一个客户端,导入之前的springboot和springcloud的融合依赖,重点是它的parent包,不然会报错版本错误;然后去在客户端的启动类上面添加@EnableOAuthSso开启单点登录,再去AuthorizationServerConfig中添加自动授权配置,以及一个单点登录必须的身份认证才能获取密钥的beansecurity.tokenKeyAccess("isAuthoticated()")
 
3.反思:在之前的Jwt实现单点登录的时候主要还是没有明白它怎么实现的,在这次的OAuth中体验出了单点登录的特性,但是有些还是需要完善的,比如jwt加密这个问题,以及通过数据库来实现登录,而不是自己模仿数据;自己现在知识来那个还不够,要多实践才能明白;多去敲单点登录相关代码,最后再综合起来实现比较完善的单点登录
 
4.复盘:这几天主要是实现了以OAuth2结合Jwt来实现单点登录;
  1. 首先是OAuth2 实现单点登录有几种模式,主要的就是授权码模式、密码模式;
  2. 授权码模式:用户访问资源服务器,资源服务器会给他一个授权码,用户拿着授权码去认证服务器获取token,再使用token去访问资源服务器;
  3. 密码模式:用户通过用户名和密码获取token去访问资源服务器
  4. 在OAuth中AuthorizationServerConfig中主要配置客户端ID,以及密钥,授权范围以及类型,token有效期以及重定向地址;再就是单点登录需要的获取密钥的身份认证
  5. 在ResourceServerConfig中需要授权和认证访问请求,以及访问资源的路径
  6. 在SecurityConfig中要授权认证访问请求,以及其他的表单提交等等公共的
  7. 在JwtTokenStoreConfig中主要配置Jwt存储token的生成以及转化为jwtToken
 

9.springSecurity整合OAuth2结合Jwt实现单点登录的更多相关文章

  1. springBoot整合spring security+JWT实现单点登录与权限管理--筑基中期

    写在前面 在前一篇文章当中,我们介绍了springBoot整合spring security单体应用版,在这篇文章当中,我将介绍springBoot整合spring secury+JWT实现单点登录与 ...

  2. spring boot:spring security+oauth2+sso+jwt实现单点登录(spring boot 2.3.3)

    一,sso的用途 ? 1,如果有多个应用系统,用户只需要登录一次就可以访问所有相互信任的应用系统. 不需要每次输入用户名称和用户密码, 也不需要创建并记忆多套用户名称和用户密码. 2,系统管理员只需维 ...

  3. Spring Security构建Rest服务-1300-Spring Security OAuth开发APP认证框架之JWT实现单点登录

    基于JWT实现SSO 在淘宝( https://www.taobao.com )上点击登录,已经跳到了 https://login.taobao.com,这是又一个服务器.只要在淘宝登录了,就能直接访 ...

  4. springboot+security+JWT实现单点登录

    本次整合实现的目标:1.SSO单点登录2.基于角色和spring security注解的权限控制. 整合过程如下: 1.使用maven构建项目,加入先关依赖,pom.xml如下: <?xml v ...

  5. oauth2.0实现sso单点登录的方式和相关代码

    SSO介绍 什么是SSO 百科:SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他 ...

  6. 使用Spring Security OAuth2进行简单的单点登录

    1.概述 在本教程中,我们将讨论如何使用Spring Security OAuth和Spring Boot实现SSO - 单点登录. 我们将使用三个单独的应用程序: 授权服务器 - 这是中央身份验证机 ...

  7. 手把手教你学会 基于JWT的单点登录

      最近我们组要给负责的一个管理系统 A 集成另外一个系统 B,为了让用户使用更加便捷,避免多个系统重复登录,希望能够达到这样的效果--用户只需登录一次就能够在这两个系统中进行操作.很明显这就是单点登 ...

  8. Spring Boot 集成 JWT 实现单点登录授权

    使用步骤如下:1. 添加Gradle依赖: dependencies { implementation 'com.auth0:java-jwt:3.3.0' implementation('org.s ...

  9. Spring Cloud OAuth2 实现用户认证及单点登录

    文章较长,建议推荐,建议转发,建议收藏,建议关注公众号哈. OAuth 2 有四种授权模式,分别是授权码模式(authorization code).简化模式(implicit).密码模式(resou ...

  10. SpringCloud(10)使用Spring Cloud OAuth2和JWT保护微服务

    采用Spring Security AOuth2 和 JWT 的方式,避免每次请求都需要远程调度 Uaa 服务.采用Spring Security OAuth2 和 JWT 的方式,Uaa 服务只验证 ...

随机推荐

  1. CentOS 8.x 编译安装LNMP(Linux + Nginx + MySQL + PHP)架构部署动态网站环境

    LNMP动态网站部署架构是一套由Linux + Nginx + MySQL + PHP组成的动态网站系统解决方案,具有免费.高效.扩展性强且资源消耗低等优良特性,目前正在被广泛使用. 前传: 1.Ce ...

  2. reflection反射

    reflection反射 动态和静态语言 动态语言 动态语言就是一类在运行时可以改变其结构的语言,通俗点说就是在运行时代码可以根据某些条件改变自身结构 主要动态语言:object-C,C#,JavaS ...

  3. 正确理解RestFul 接口

    一.REST# REST,即Representational State Transfer的缩写,翻译过来就是"表现层状态转化".不得不承认,我在刚开始看到这个名词的时候是一脸懵逼 ...

  4. [Python]Running multiprocessing

    import multiprocessing as mp import time def name_and_time(name,num): print(f"Hello {name}, cur ...

  5. django中使用autocomplete无效查错

    检查autocomplete是否工作正常,将自己的结果集注释掉,使用前端预设好的结果集var countries=["Afghanistan","Albania" ...

  6. 前端复习之css

    1.css概述 1 1.CSS3概述 2 1.问题 3 1.设置页面中所有的文本颜色为红色 4 2.设置页面中所有div的文本的颜色为蓝色 5 3.将所有的div的文本的颜色改为黄色 6 7 HTML ...

  7. 运行npm报错:无法加载文件 D:\nodejs\node_global\webpack.ps1,因为在此系统上禁止运行脚本

    npm报错 在 windows终端输入 vue init webpack app, 创建一个名为 app 的 Vue 项目时报错如下: 无法加载文件 D:\nodejs\node_global\web ...

  8. python xlwings实用操作记录

    import xlwings as xw tfile="test.xlsx" newfile="new.xlsx" app = xw.App(visible=F ...

  9. mysql 设置查询超时配置

    mysql设置查询超时 mysql5.6: max_statement_time (毫秒) mysql5.7: max_execution_time(毫秒) mariadb: max_statemen ...

  10. MySQL 分组排序,取第一条

    select t1.* from coal_installed_capacity t1where NOT EXISTS (select * from coal_installed_capacity t ...