Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Coudy Hou
JavaGuide
提交
e4dbc8db
J
JavaGuide
项目概览
Coudy Hou
/
JavaGuide
与 Fork 源项目一致
从无法访问的项目Fork
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
JavaGuide
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e4dbc8db
编写于
10月 16, 2020
作者:
G
guide
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[refractor]认证授权部分图片地址
上级
0c06821b
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
14 addition
and
13 deletion
+14
-13
README.md
README.md
+6
-3
docs/system-design/authority-certification/JWT优缺点分析以及常见问题解决方案.md
...stem-design/authority-certification/JWT优缺点分析以及常见问题解决方案.md
+0
-0
docs/system-design/authority-certification/SSO单点登录看这一篇就够了.md
docs/system-design/authority-certification/SSO单点登录看这一篇就够了.md
+0
-0
docs/system-design/authority-certification/basis-of-authority-certification.md
...thority-certification/basis-of-authority-certification.md
+8
-10
docs/system-design/authority-certification/images/basis-of-authority-certification/Session-Based-Authentication-flow.png
...ority-certification/Session-Based-Authentication-flow.png
+0
-0
docs/system-design/authority-certification/images/basis-of-authority-certification/Token-Based-Authentication.png
...of-authority-certification/Token-Based-Authentication.png
+0
-0
docs/system-design/authority-certification/images/basis-of-authority-certification/authentication.png
...mages/basis-of-authority-certification/authentication.png
+0
-0
docs/system-design/authority-certification/images/basis-of-authority-certification/authorization.png
...images/basis-of-authority-certification/authorization.png
+0
-0
docs/system-design/authority-certification/images/basis-of-authority-certification/cookie-sessionId.png
...ges/basis-of-authority-certification/cookie-sessionId.png
+0
-0
docs/system-design/authority-certification/images/basis-of-authority-certification/session-cookie-intro.png
...basis-of-authority-certification/session-cookie-intro.png
+0
-0
docs/system-design/authority-certification/images/basis-of-authority-certification/微信支付-fnglfdlgdfj.png
...ges/basis-of-authority-certification/微信支付-fnglfdlgdfj.png
+0
-0
docs/system-design/distributed-system/分布式.md
docs/system-design/distributed-system/分布式.md
+0
-0
未找到文件。
README.md
浏览文件 @
e4dbc8db
...
...
@@ -194,16 +194,16 @@
#### JWT
1.
[
JWT 优缺点分析以及常见问题解决方案
](
docs/system-design/authority-certification/JWT
-advantages-and-disadvantages
.md
)
1.
[
JWT 优缺点分析以及常见问题解决方案
](
docs/system-design/authority-certification/JWT
优缺点分析以及常见问题解决方案
.md
)
2.
[
适合初学者入门 Spring Security With JWT 的 Demo
](
https://github.com/Snailclimb/spring-security-jwt-guide
)
#### SSO(单点登录)
SSO(Single Sign On)即单点登录说的是用户登陆多个子系统的其中一个就有权访问与其相关的其他系统。举个例子我们在登陆了京东金融之后,我们同时也成功登陆京东的京东超市、京东家电等子系统。相关阅读:
**[SSO 单点登录看这篇就够了!](docs/system-design/authority-certification/sso
.md)**
**SSO(Single Sign On)**
即单点登录说的是用户登陆多个子系统的其中一个就有权访问与其相关的其他系统。举个例子我们在登陆了京东金融之后,我们同时也成功登陆京东的京东超市、京东家电等子系统。相关阅读:
**[SSO 单点登录看这篇就够了!](docs/system-design/authority-certification/SSO单点登录看这一篇就够了
.md)**
### 分布式
[
分布式相关概念入门
](
docs/system-design/
website-architecture
/分布式.md
)
[
分布式相关概念入门
](
docs/system-design/
distributed-system
/分布式.md
)
#### 搜索引擎
...
...
@@ -238,6 +238,7 @@ SSO(Single Sign On)即单点登录说的是用户登陆多个子系统的其中
### 微服务
1.
[
大白话入门 Spring Cloud
](
docs/system-design/micro-service/spring-cloud.md
)
2.
[
微服务/分布式大厂真实面试问题解答
](
https://xiaozhuanlan.com/topic/2895047136
)
### 高并发
...
...
@@ -271,6 +272,8 @@ SSO(Single Sign On)即单点登录说的是用户登陆多个子系统的其中
CAP 也就是 Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性) 这三个单词首字母组合。
#### BASE理论
**BASE**
是
**Basically Available(基本可用)**
、
**Soft-state(软状态)**
和
**Eventually Consistent(最终一致性)**
三个短语的缩写。BASE理论是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于CAP定理逐步演化而来的,它大大降低了我们对系统的要求。
...
...
docs/system-design/authority-certification/JWT
-advantages-and-disadvantages
.md
→
docs/system-design/authority-certification/JWT
优缺点分析以及常见问题解决方案
.md
浏览文件 @
e4dbc8db
文件已移动
docs/system-design/authority-certification/
sso
.md
→
docs/system-design/authority-certification/
SSO单点登录看这一篇就够了
.md
浏览文件 @
e4dbc8db
文件已移动
docs/system-design/authority-certification/basis-of-authority-certification.md
浏览文件 @
e4dbc8db
...
...
@@ -6,11 +6,11 @@
**认证 (Authentication):**
你是谁。
![](
.
./pictures
/authentication.png
)
![](
.
/images/basis-of-authority-certification
/authentication.png
)
**授权 (Authorization):**
你有权限干什么。
![](
.
./pictures
/authorization.png
)
![](
.
/images/basis-of-authority-certification
/authorization.png
)
稍微正式点(啰嗦点)的说法就是:
...
...
@@ -21,7 +21,7 @@
## 2. 什么是Cookie ? Cookie的作用是什么?如何在服务端使用 Cookie ?
![](
.
./pictures
/cookie-sessionId.png
)
![](
.
/images/basis-of-authority-certification
/cookie-sessionId.png
)
### 2.1 什么是Cookie ? Cookie的作用是什么?
...
...
@@ -90,7 +90,7 @@ public String readAllCookies(HttpServletRequest request) {
很多时候我们都是通过 SessionID 来实现特定的用户,SessionID 一般会选择存放在 Redis 中。举个例子:用户成功登陆系统,然后返回给客户端具有 SessionID 的 Cookie,当用户向后端发起请求的时候会把 SessionID 带上,这样后端就知道你的身份状态了。关于这种认证方式更详细的过程如下:
![
Session Based Authentication flow
](
.
./pictures
/Session-Based-Authentication-flow.png
)
![
Session Based Authentication flow
](
.
/images/basis-of-authority-certification
/Session-Based-Authentication-flow.png
)
1.
用户向服务器发送用户名和密码用于登陆系统。
2.
服务器验证通过后,服务器为用户创建一个 Session,并将 Session信息存储 起来。
...
...
@@ -105,7 +105,7 @@ public String readAllCookies(HttpServletRequest request) {
花了个图简单总结了一下Session认证涉及的一些东西。
<img
src=
".
./pictures
/session-cookie-intro.png"
style=
"zoom:50%;"
/>
<img
src=
".
/images/basis-of-authority-certification
/session-cookie-intro.png"
style=
"zoom:50%;"
/>
另外,Spring Session提供了一种跨多个应用程序或实例管理用户会话信息的机制。如果想详细了解可以查看下面几篇很不错的文章:
...
...
@@ -143,9 +143,7 @@ public String readAllCookies(HttpServletRequest request) {
XSS中攻击者会用各种方式将恶意代码注入到其他用户的页面中。就可以通过脚本盗用信息比如cookie。
推荐阅读:
1.
[
如何防止CSRF攻击?—美团技术团队
](
https://tech.meituan.com/2018/10/11/fe-security-csrf.html
)
推荐阅读:
[
如何防止CSRF攻击?—美团技术团队
](
https://tech.meituan.com/2018/10/11/fe-security-csrf.html
)
## 6. 什么是 Token?什么是 JWT?如何基于Token进行身份验证?
...
...
@@ -167,7 +165,7 @@ JWT 由 3 部分构成:
在基于 Token 进行身份验证的的应用程序中,服务器通过
`Payload`
、
`Header`
和一个密钥(
`secret`
)创建令牌(
`Token`
)并将
`Token`
发送给客户端,客户端将
`Token`
保存在 Cookie 或者 localStorage 里面,以后客户端发出的所有请求都会携带这个令牌。你可以把它放在 Cookie 里面自动发送,但是这样不能跨域,所以更好的做法是放在 HTTP Header 的 Authorization字段中:
` Authorization: Bearer Token`
。
![
Token Based Authentication flow
](
.
./pictures
/Token-Based-Authentication.png
)
![
Token Based Authentication flow
](
.
/images/basis-of-authority-certification
/Token-Based-Authentication.png
)
1.
用户向服务器发送用户名和密码用于登陆系统。
2.
身份验证服务响应并返回了签名的 JWT,上面包含了用户是谁的内容。
...
...
@@ -194,7 +192,7 @@ OAuth 2.0 比较常用的场景就是第三方登录,当你的网站接入了
微信支付账户相关参数:
<img
src=
".
./pictures
/微信支付-fnglfdlgdfj.png"
style=
"zoom:50%;"
/>
<img
src=
".
/images/basis-of-authority-certification
/微信支付-fnglfdlgdfj.png"
style=
"zoom:50%;"
/>
**推荐阅读:**
...
...
docs/system-design/
pictures
/Session-Based-Authentication-flow.png
→
docs/system-design/
authority-certification/images/basis-of-authority-certification
/Session-Based-Authentication-flow.png
浏览文件 @
e4dbc8db
文件已移动
docs/system-design/
pictures
/Token-Based-Authentication.png
→
docs/system-design/
authority-certification/images/basis-of-authority-certification
/Token-Based-Authentication.png
浏览文件 @
e4dbc8db
文件已移动
docs/system-design/
pictures
/authentication.png
→
docs/system-design/
authority-certification/images/basis-of-authority-certification
/authentication.png
浏览文件 @
e4dbc8db
文件已移动
docs/system-design/
pictures
/authorization.png
→
docs/system-design/
authority-certification/images/basis-of-authority-certification
/authorization.png
浏览文件 @
e4dbc8db
文件已移动
docs/system-design/
pictures
/cookie-sessionId.png
→
docs/system-design/
authority-certification/images/basis-of-authority-certification
/cookie-sessionId.png
浏览文件 @
e4dbc8db
文件已移动
docs/system-design/
pictures
/session-cookie-intro.png
→
docs/system-design/
authority-certification/images/basis-of-authority-certification
/session-cookie-intro.png
浏览文件 @
e4dbc8db
文件已移动
docs/system-design/
pictures
/微信支付-fnglfdlgdfj.png
→
docs/system-design/
authority-certification/images/basis-of-authority-certification
/微信支付-fnglfdlgdfj.png
浏览文件 @
e4dbc8db
文件已移动
docs/system-design/
website-architecture
/分布式.md
→
docs/system-design/
distributed-system
/分布式.md
浏览文件 @
e4dbc8db
文件已移动
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录