SpringSecurity;OAuth2
2022-03-24 15:58:09 1 举报
AI智能生成
登录查看完整内容
详细介绍spring security 以及 oauth2.0,并且加入了jwt。
作者其他创作
大纲/内容
认证
授权
会话
主体,角色,资源,行为
RBAC模型
基本概念
pom
启动类加上@EnableWebSecurity
创建几个简单的资源访问接口
注入免密解析器PasswordEncoder和用户来源UserDetailsService
注入校验配置规则
获取当前用户
SpringBoot Security快速上手
主体数据来源
密码解析器
自定义登录
记住我功能
拦截策略
csrf
注解级别方法支持
异常处理
自定义授权及安全拦截策略
SpringBoot Security项目的扩展点
FilterChainProxy相关类的UML图
SecurityFilterChain流程图
SecurityContextPersistenceFilter
UsernamePasswordAuthenticationFilter
FilterSecurityInterceptor
ExceptionTranslationFilter
主要过滤器
获取认证信息
将认证信息提交给认证管理器
认证成功
认证核心接口AuthenticationProvider
AuthenticationProvider接口:认证处理器
Authentication认证信息
UserDetailsService接口: 获取用户信息
UserDetails: 用户信息实体
PasswordEncoder 密码解析器
BCryptPasswordEncoder
几个核心的组件的调用流程
过程
认证流程
拦截请求
获取资源访问策略
注入bean
configure中配置
设置投票决定器
AccessDecisionVoter
决策流程
决策
授权流程
SpringBoot Security工作原理
自定义登录页面及登录过程
修改UserDetails,从数据库加载用户信息。
修改HttpSecurity,从数据库加载授权配置。
将数据源改为从数据库获取数据
代码方式配置
注解方式配置
配置方法与资源绑定关系
自定义认证
获取当前用户信息
会话控制
会话超时
安全会话cookie
logoutHandler
退出
Session复制
Session黏贴
Session集中存储
基于Session的认证方式
基于Token的认证方式
方案选型
分布式认证方案
简介
用户访问百度的OAuth2.0过程
客户端
资源拥有者
授权服务器(也称为认证服务器)
资源服务器
角色理解
clientDetails(client_id)
secret
scope
access_token
grant_type
userDetails(user_id)
重要概念
OAuth2.0协议
OAuth2.0
引入依赖
添加yml配置
加入默认的数据表
配置授权服务器
配置security
用户实体
实现UserDetails
实现UserDetailsService
封装用户信息
资源服务器配置
资源
配置资源服务器,方便测试
搭建微服务授权中心
GET 访问
输入用户名/密码
询问是否同意登录,点击同意
调转到redirect_uri并附带code值
获取数据如下
POST 访问
访问资源
授权码模式
可以获取token
密码模式
流程测试
头部(header)
载荷(payload)
签名(signature)
注意
JWT结构
添加JWT配置
在授权服务器中指定令牌的存储策略是JWT
密码模式测试
刷新token
测试
整合过程
整合JWT
将生成的jwt.jks文件copy到授权服务器的resource目录下
查看公钥信息
生成jks证书文件
属性类
yml配置
在jwt配置类中指定属性配置类
授权服务器增加jwt的属性配置类
修改JwtTokenStoreConfig的配置,支持非对称加密
增强器
在 JwtTokenStoreConfig中配置增强器
在授权服务器配置中配置JWT的内容增强器
扩展JWT中的存储内容
整合JWT(优化)
Spring Security OAuth2.0(基于微服务)
yml配置认证中心的路由
配置类
yml
过滤不需要认证的url
编写GateWay的全局过滤器进行权限的校验拦截
校验工具类
校验token
远程调用封装(细节)
接入网关服务
Spring Security & OAuth2.0
0 条评论
回复 删除
下一页