首页 > 编程知识 正文

cjsblog的博客的简单介绍

时间:2023-12-27 22:26:28 阅读:324342 作者:GKKK

本文目录一览:

成吉思汗哪个职业厉害,成吉思汗哪个职业好??

个人比较喜欢群P冲进敌人堆里近身血战 所以选了武士 防高血厚 很威武的 而且后期弄满暴击石头 也是能秒人的 很猛

成吉思汗哪个职业最厉害??

如果不想总被挂,建议你玩个医生。一般不是双方装备悬殊、等级差距太大,别人想挂你,很难。当然,没有最厉害的职业,只有最厉害的玩家!得看你投入的金钱、时间多少了。装备够强、等级够高,再加点PK小技巧,无论什么职业,你就是最厉害的…

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. 文档

原文链接:

PHP视频教程~!

你好呀

我的QQ 499015358 加我,

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

希望我们共同进步.

我的博客

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。