From 75dc392b8f81254e171d54b21fbf88b58859edda Mon Sep 17 00:00:00 2001 From: fanxb Date: Tue, 5 Mar 2019 13:39:08 +0800 Subject: [PATCH] add --- .../springboot系列/spring boot SSO单点登录.md | 31 +++++++++++++++++++ ...pringCloud之Spring Cloud Sleuth分布式跟踪.md | 2 ++ 2 files changed, 33 insertions(+) create mode 100644 java/springboot系列/spring boot SSO单点登录.md diff --git a/java/springboot系列/spring boot SSO单点登录.md b/java/springboot系列/spring boot SSO单点登录.md new file mode 100644 index 0000000..3b3a7a0 --- /dev/null +++ b/java/springboot系列/spring boot SSO单点登录.md @@ -0,0 +1,31 @@ +--- +id: '2019-03-01-18-52' +date: '2019/03/01 18:52' +title: 'spring boot 基于JWT实现单点登录' +tags: ['spring-boot', 'SSO', '单点登录', 'jwt'] +categories: + - 'java' + - 'spring boot学习' +--- + +**本篇原创发布于:**[FleyX 的个人博客](http://tapme.top/blog/detail/2019-03-01-18-52) + +照例配个图: +![塞尔达,林克](https://raw.githubusercontent.com/FleyX/files/master/blogImg/20190301190816.png) + +
看我大塞尔达,不!是林克
+ +  最近我们组要给负责的一个管理系统 A 集成另外一个系统 B,为了让用户使用更加便捷,避免多个系统重复登录,希望能够达到这样的效果——用户只需登录一次就能够在这两个系统中进行操作。很明显这就是**单点登录(Single Sign-On)**达到的效果,正好可以明目张胆的学一波单点登录知识。 + +本篇主要内容如下: + +- SSO 介绍 +- SSO 的几种实现方式对比 +- 基于 JWT 的 spring boot 单点登录实现 + +**注意:** +  SSO这个概念已经出现很久很久了,目前各种平台都有非常成熟的实现,比如`OpenSSO`,`OpenAM`,`Kerberos`,`CAS`等,当然很多时候成熟意味着复杂。本文不讨论那些成熟方案的使用,也不考虑SSO在CS应用中的使用。 + +# 什么是SSO + +   \ No newline at end of file diff --git a/java/springcloud实战/6.springCloud之Spring Cloud Sleuth分布式跟踪.md b/java/springcloud实战/6.springCloud之Spring Cloud Sleuth分布式跟踪.md index fbead1b..668e7ba 100644 --- a/java/springcloud实战/6.springCloud之Spring Cloud Sleuth分布式跟踪.md +++ b/java/springcloud实战/6.springCloud之Spring Cloud Sleuth分布式跟踪.md @@ -16,6 +16,8 @@ categories:   微服务虽然能够将单体软件系统分解为更小的、更易于管理的小系统。但是这种特性是需要付出代价的。其中之一就是----调试困难。所以需要有一种办法能够将所有服务产生的消息聚合起来,方便的获取某一次用户请求的全部日志信息。本篇只解决将请求串起来这个问题,日志聚合需要对应的日志平台配合,这里不做讨论(其实就是将日志全部手机放到一个地方(比如es),再进行查询)。 + + (PS:写这篇的时候突然发现,前面那种实现关联id方法是错误的,学习《spring微服务实战》过程中看到了不少错误,单大都不是很重要的,唯独关联id的那部分问题挺大。书上的实现是在每个服务中增加一个过滤器,提取入站请求中的关联id,然后存到ThreadLocal中,然后给服务调用类Ribbon加一个过滤器:用于从ThreadLocal中提取出关联id然后加入到请求的header中。这里的问题是前面的过滤器所在的线程和后面服务调用的线程不是同一个线程,也就无法用ThreadLocal来进行数据保存。在Feign请求的过程中是获取不到保存的值的) # 集成Spring Cloud Sleuth