cjs的博客,bbs cjdby

本文目录一览:

OAuth2实现单点登录SSO

1. 前言

技术这东西吧,看别人写的好像很简单似的,到自己去写的时候就各种问题,“一看就会,一做就错”。网上关于实现SSO的文章一大堆,但是当你真的照着写的时候就会发现根本不是那么回事儿,简直让人抓狂,尤其是对于我这样的菜鸟。几经曲折,终于搞定了,决定记录下来,以便后续查看。先来看一下效果

2. 准备

2.1. 单点登录

最常见的例子是,我们打开淘宝APP,首页就会有天猫、聚划算等服务的链接,当你点击以后就直接跳过去了,并没有让你再登录一次

下面这个图是我再网上找的,我觉得画得比较明白:

可惜有点儿不清晰,于是我又画了个简版的:

重要的是理解:

2.2. OAuth2

推荐以下几篇博客

《 OAuth 2.0 》

《 Spring Security对OAuth2的支持 》

3. 利用OAuth2实现单点登录

接下来,只讲跟本例相关的一些配置,不讲原理,不讲为什么

众所周知,在OAuth2在有授权服务器、资源服务器、客户端这样几个角色,当我们用它来实现SSO的时候是不需要资源服务器这个角色的,有授权服务器和客户端就够了。

授权服务器当然是用来做认证的,客户端就是各个应用系统,我们只需要登录成功后拿到用户信息以及用户所拥有的权限即可

之前我一直认为把那些需要权限控制的资源放到资源服务器里保护起来就可以实现权限控制,其实是我想错了,权限控制还得通过Spring Security或者自定义拦截器来做

3.1. Spring Security 、OAuth2、JWT、SSO

在本例中,一定要分清楚这几个的作用

首先,SSO是一种思想,或者说是一种解决方案,是抽象的,我们要做的就是按照它的这种思想去实现它

其次,OAuth2是用来允许用户授权第三方应用访问他在另一个服务器上的资源的一种协议,它不是用来做单点登录的,但我们可以利用它来实现单点登录。在本例实现SSO的过程中,受保护的资源就是用户的信息(包括,用户的基本信息,以及用户所具有的权限),而我们想要访问这这一资源就需要用户登录并授权,OAuth2服务端负责令牌的发放等操作,这令牌的生成我们采用JWT,也就是说JWT是用来承载用户的Access_Token的

最后,Spring Security是用于安全访问的,这里我们我们用来做访问权限控制

4. 认证服务器配置

4.1. Maven依赖

这里面最重要的依赖是:spring-security-oauth2-autoconfigure

4.2. application.yml

4.3. AuthorizationServerConfig(重要)

说明:

4.4. WebSecurityConfig(重要)

4.5. 自定义登录页面(一般来讲都是要自定义的)

自定义登录页面的时候,只需要准备一个登录页面,然后写个Controller令其可以访问到即可,登录页面表单提交的时候method一定要是post,最重要的时候action要跟访问登录页面的url一样

千万记住了,访问登录页面的时候是GET请求,表单提交的时候是POST请求,其它的就不用管了

4.6. 定义客户端

4.7. 加载用户

登录账户

加载登录账户

4.8. 验证

当我们看到这个界面的时候,表示认证服务器配置完成

5. 两个客户端

5.1. Maven依赖

5.2. application.yml

这里context-path不要设成/,不然重定向获取code的时候回被拦截

5.3. WebSecurityConfig

说明:

5.4. MemberController

5.5. Order项目跟它是一样的

5.6. 关于退出

退出就是清空用于与SSO客户端建立的所有的会话,简单的来说就是使所有端点的Session失效,如果想做得更好的话可以令Token失效,但是由于我们用的JWT,故而撤销Token就不是那么容易,关于这一点,在官网上也有提到:

本例中采用的方式是在退出的时候先退出业务服务器,成功以后再回调认证服务器,但是这样有一个问题,就是需要主动依次调用各个业务服务器的logout

6. 工程结构

附上源码:

7. 演示

8. 参考

9. 文档

原文链接:

cjs是谁的名字的缩写?

cjs是成杰思的名字缩写。

成杰思,男,出生于江苏盐城,现居南京,从华侨大学中文系毕业后进入江苏广播电视总台工作;2002年,由他创办的大型脱口秀节目《男生宿舍》,每天晚上22:00至23:00在FM101.1江苏交通广播网播出。

节目开播十年来创造了居高不下的收听率,也吸引了听众群。随着主持人袁一博、焦阳的加入,《男生宿舍》人气逐渐变高。

人物经历

2003年,为《男生宿舍》设计了一个子栏目,叫“楼道歌手”。

2004年4月26日,《男生宿舍》为“楼道歌手”2003年度巡回演出比赛总冠军王海笑举办个人演唱会,吸引了一些高校学生前来观看。

2012年5月,成杰思被中华诗学研究会聘用为“中华诗学推广大使”。

PHP视频教程~!

你好呀

我的QQ 499015358 加我,

然后我把自己的视频资料都传给你,包括一个集合软件.

希望我们共同进步.

我的博客

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/157685.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-18 20:01
下一篇 2024-11-18 20:01

相关推荐

  • Halo博客全面解析

    一、Halo博客官网 Halo是一个基于Java的开源博客系统,它支持多种数据库和多主题,可以很快速地搭建个人博客或团队博客。 官网地址为:http://halo.run/。在官网…

    编程 2025-04-12
  • WordPress Markdown:打造高效博客写作体验

    一、简介 WordPress Markdown是一款WordPress插件,它能够为博客写作提供高效、简单、明了的体验。Markdown是目前全球流行的一种轻量级标记语言,它本身非…

    编程 2025-01-16
  • 深入了解张鑫旭的博客

    张鑫旭是一位著名的前端开发工程师,同时也是一位博客作者。他的博客以对前端开发的深入探究和分享为主,深受广大前端开发者的喜爱。在本文中,我们将从多个方面深入了解张鑫旭的博客。 一、博…

    编程 2025-01-16
  • java博客园,java大牛博客

    本文目录一览: 1、什么是java servlets 博客园 2、java博客网站有哪些 3、最具影响力的java社区是哪个?类似于.NET的博客园 4、有哪些比较好个人博客或者博…

    编程 2025-01-13
  • 和失败php表相关的博客内容,php常见问题

    本文目录一览: 1、php要学哪些?学习php需要掌握哪些东西 2、php博客系统读文件出错 3、PHP与MYSQL数据库连接成功但是查询表失败的问题 4、php文件上传失败的问题…

    编程 2025-01-11
  • 索迪戴西cjs,索德 西尔迪

    本文目录一览:

    编程 2025-01-11
  • php学习记录领域博主,php个人技术博客

    本文目录一览: 1、学习php可以做什么?发展方向有哪些? 2、php视频教程谁讲的比较好,从入门基础开始讲的,请大家推荐一下。 3、php学什么 Php主要学习什么 4、php新…

    编程 2025-01-06
  • jsp个人毕业设计源码,jsp个人博客毕业设计

    本文目录一览: 1、计算机毕设是做一个JSP+MYSQL的网站 想要前辈成熟的源码+论文做参考 2、求一个毕业设计选题系统源码 做毕设用的 用jsp+sql编写的 谢绝推销 急用 …

    编程 2025-01-04
  • 十大校霸cjs是谁(十大校霸cjs是谁啊)

    本文目录一览: 1、cjs是谁的名字的缩写? 2、纯爱小说《碎玉投珠》要拍成剧啦,你们期待谁来演丁汉白呢? cjs是谁的名字的缩写? cjs是成杰思的名字缩写。 成杰思,男,出生于…

    编程 2025-01-04
  • golang牛人,golang大神博客

    本文目录一览: 1、为什么要使用 Go 语言?Go 语言的优势在哪里 2、为什么要学习Golang? 3、女生可以去学习编程吗? 为什么要使用 Go 语言?Go 语言的优势在哪里 …

    编程 2025-01-03

发表回复

登录后才能评论