Spring Security 技术Spring Security 是一个企业级安全框架,由spring官方推出,它对软件系统中的认证,授权,加密等功能进行封装,并在springboot技术推出以后,配置方面做了很大的简化.现在市场上分布式架构中的安全控制,正在逐步的转向Spring Security 。Spring Security 在企业中实现认证和授权业务时,底层构建了大量的过滤器,如图所示:

其中:图中绿色部分为认证过滤器,黄色部分为授权过滤器 。Spring Security就是通过这些过滤器然后调用相关对象一起完成认证和授权操作.Jwt 数据规范JWT(JSON WEB Token)是一个标准,采用数据自包含方式进行json格式数据设计,实现各方安全的信息传输,其官方网址为:https://jwt.io/ 。官方JWT规范定义,它构成有三部分,分别为Header(头部),Payload(负载),Signature(签名),其格式如下:
xxxxx.yyyyy.zzzzzHeader 部分是一个 JSON 对象,描述 JWT 的元数据,通常是下面的样子 。{"alg": "HS256","typ": "JWT"}上面代码中,alg属性表示签名的算法(algorithm),默认是 HMAC SHA256(简写HS256);typ属性表示这个令牌(token)的类型(type),JWT 令牌统一写为JWT 。最后,将这个 JSON 对象使用 Base64URL 算法(详见后文)转成字符串 。Payload部分Payload 部分也是一个 JSON 对象,用来存放实际需要传递的数据 。JWT规范中规定了7个官方字段,供选用 。
- iss (issuer):签发人
- exp (expiration time):过期时间
- sub (subject):主题
- aud (audience):受众
- nbf (Not Before):生效时间
- iat (Issued At):签发时间
- jti (JWT ID):编号
- 除了官方字段,你还可以在这个部分定义私有字段,下面就是一个例子 。
{"sub": "1234567890","name": "John Doe","admin": true}注意,JWT 默认是不加密的,任何人都可以读到,所以不要把秘密信息放在这个部分 。这个 JSON 对象也要使用 Base64URL 算法转成字符串 。
Signature部分
Signature 部分是对前两部分的签名,其目的是防止数据被篡改 。
首先,需要指定一个密钥(secret) 。这个密钥只有服务器才知道,不能泄露给用户 。然后,使用 Header 里面指定的签名算法(默认是 HMAC SHA256),按照下面的公式产生签名 。
HMACSHA256(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret)算出签名以后,把 Header、Payload、Signature 三个部分拼成一个字符串,每个部分之间用”点”(.)分隔,就可以返回给用户 。Oauth2规范oauth2定义了一种认证授权协议,一种规范,此规范中定义了四种类型的角色:
1)资源有者(User)
2)认证授权服务器(jt-auth)
3)资源服务器(jt-resource)
4)客户端应用(jt-ui)
同时,在这种协议中规定了认证授权时的几种模式:
1)密码模式 (基于用户名和密码进行认证)
2)授权码模式(就是我们说的三方认证:QQ,微信,微博, 。。。。)
3)…
总结(Summary)重难点分析
- 单点登陆系统的设计架构(微服务架构)
- 服务的设计及划分(资源服务器,认证服务器,网关服务器,客户端服务)
- 认证及资源访问的流程(资源访问时要先认证再访问)
- 认证和授权时的一些关键技术(Spring Security,Jwt,Oauth2)
- 为什么要单点登陆(分布式系统,再访问不同服务资源时,不要总是要登陆,进而改善用户体验)
- 单点登陆解决方案?(市场常用两种: spring security+jwt+oauth2,spring securit+redis+oauth2)
推荐阅读
- 路由器登录密码是什么 路由器的默认密码一般是多少?
- 手机wifi无ip分配解决方法 电脑ip配置失败是什么原因
- 国内手机登录facebook技巧 微信如何登入facebook账号
- 免费邮箱163 @163.com邮箱怎么登录?
- 喋血复仇游戏打不开怎么办 喋血复仇启动失败解决办法
- 迷你世界怎样玩测试服 怎么下载和登录呢
- 和平精英怎么登录 具体步骤分享
- 隐形守护者第二章潜伏失败怎么办 第二章潜伏方法分享_网
- 隐形守护者网络异常是什么情况 网络链接失败解决方法分享
- 新射雕群侠传之铁血丹心每日登录活动攻略 9月18日每日登录活动介绍
