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. PTA一元多项式的乘法与加法运算 另一种算法

    设计函数分别求两个一元多项式的乘积与和. 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. ...

  2. 请求GET和POST的区别

    实际上GET和POST他们只有语义上的区别,之所以有我们所谓的区别是由于前端与后端达成的协议. 区别1:get请求不会附带请求体,而post请求有请求体. 区别2: get请求传递的信息量是有限的,适 ...

  3. linux查看所有的用户和组信息

    1.cat /etc/passwd    查看所有用户 2.cat /etc/passwd|grep 用户名,用于查找某个用户 3.cat /etc/group查看所有组信息 4.cat /etc/g ...

  4. MVCC原理

    MVCC MVCC (Multi-Version Concurrency Control) ,即多版本并发控制,利用记录的版本链和ReadView,来控制并发事务访问相同记录时的行为.ReadView ...

  5. 【基础知识】C++算法基础(快速排序)

    快速排序: 1.执行流程(一趟快排): 2.一趟快排的结果:获得一个枢纽,在此左边皆小于此数,在此右边皆大于此数,因此可以继续使用递归获得最终的序列.

  6. Java线上日志分析

    1.查询关键字前后30行 cat 日志文件名.log | grep -30 '关键字' 例: cat mcs-all.log | grep -30 '2019-04-08 13:30:04,271' ...

  7. NFS只能挂载为nobody的解决办法

    方法一 mount中指定参数 mount -t nfs -o vers=3 192.168.23.23:/data1 /data1 这种方法不推荐,但可以解决临时挂载的需求 方法二 cat /etc/ ...

  8. Hadoop之HDFS优缺点、设计原理、框架

    如需大数据开发整套视频(hadoop\hive\hbase\flume\sqoop\kafka\zookeeper\presto\spark):请联系QQ:1974983704  Hadoop的前世今 ...

  9. the third change day

    2022.5.9 今日名言:青春是一个短暂的美梦,当你醒来的时候,它早已消失的无影无踪.----莎士比亚 早起听了一堂听力课,感觉他教的挺好,准备跟着试试,快考试了,别来不及了. 目录 听力技巧 阅读 ...

  10. Apache Ranger系列九:修改源码支持URI类型为s3的操作

    问题描述:ranger在checkPrivileges(org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizer)时,当 ...