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. Falsk 大文件上传/下载(send_from_directory)

    下载接口: 服务端flask下载接口 @app.route("/api/download/", methods=["POST"]) def download() ...

  2. vue项目中 vscode 保存时自动格式化设置,保持单引号和去除多余分号、逗号

    1.settings.json中添加: "prettier.semi": false, // 取消自动加分号 "prettier.singleQuote": t ...

  3. IDEA2021 在jsp文件中 写out报错

    报错原因: 是因为没有关联好服务器: 解决方案 File --> Project structure --> Modules --> 选中当前的模板 --> Dependenc ...

  4. 库已安装但找不到ttkbootstrap库

    cmd里装,弹提示Requirement already satisfied pip install --target=F:\Python37\lib ttkbootstrap https://blo ...

  5. Docker In Action 学习笔记 根据第二版有所更新

    第一章 最简单的 hello_world/Dockerfile FROM busybox:latest CMD ["echo", "hello world"] ...

  6. 【转】Thunderbird 设置转移

    此文章可能已经过时. 此文章的原文版本已经做出了重大更动.在此页面更新前,您可能也会觉得这个有用:Profiles - Where Thunderbird stores your messages a ...

  7. 【Access】清空数据并重置自增主键

    DELETE FROM tasks ALTER TABLE tasks ALTER COLUMN id COUNTER(1,1)

  8. maven常用镜像源

    <mirrors> <mirror> <id>ibiblio</id> <mirrorOf>central</mirrorOf> ...

  9. 不同时间格式转换问题_python2

    def unix_to_cst(data): """2019-03-17 11:00:00 --> Sun, 17 Mar 2019 11:00:00 GMT+08 ...

  10. NSIS 将一整个文件夹拷贝

    在做安装包的时候,有时候需要将文件夹以及文件夹下面所包含的所有文件夹和文件都拷贝到目标文件夹,一下有两种方法可以连同文件夹一起拷贝: 各文件的位置如下: 其中src 文件夹下的文件如下: 一开始dst ...