![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring-security-oauth2
与风谋春
这个作者很懒,什么都没留下…
展开
-
【转载】spring-security-oauth2 (二十九) 总结
本系列博客全程参考仿照慕课网Spring Security开发安全的REST服务,里面更加详细,老师讲的很好,请大家购买支持!https://coding.imooc.com/class/134.html 源码地址:本项目源码仓库: https://gitee.com/kru...转载 2019-12-23 17:26:02 · 137 阅读 · 0 评论 -
【转载】spring-security-oauth2 (二十八) RBAC权限控制
一般的内部管理系统,权限比较复杂,通常权限都是动态配置的,也就是下面我们要讲的的rbac模型RBAC详细原理请度娘,这里只是涉及到企业权限的功能级权限,数据级权限还要我们自己控制(用户只能看见它相关的业务表数据)Spring Security中支持我们自定义的实现,就像这样调用,下面我...转载 2019-12-23 17:24:25 · 522 阅读 · 0 评论 -
【转载】spring-security-oauth2 (二十七) Spring Security 权限表达式
权限表达式通过源码分析可知,最终的配置都会转成ExpressionUrlAuthorizationConfigurer.AuthorizedUrl并进行投票决定。常见表达式如下:如何写联合表达式呢?就是既满足A条件,也满足B条件.antMatchers("xx").access("hasRole(...转载 2019-12-23 17:22:58 · 446 阅读 · 0 评论 -
【转载】spring-security-oauth2(二十六) Spring Security授权源码解析
原理流程图 spring security的基本原理之前讲解过了。这章主要看后面两个:FilterSecurityInterceptor决定该用户是否有权限访问指定的资源ExceptionTranslationFilter异常处理,如果不能访问,则处理FilterSecurityInte...转载 2019-12-23 17:21:41 · 150 阅读 · 0 评论 -
【转载】spring-security-oauth2(二十五) Spring Security授权简介
授权概念权限系统通常要解决认证和授权认证,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。 授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等)。前面我们分析的都是认证,即你是谁问题?这篇我们...转载 2019-12-23 17:20:30 · 78 阅读 · 0 评论 -
【转载】spring-security-oauth2(二十四) 基于JWT的SSO单点登录
单点登录原理何谓单点登录? 请看下面这篇博客单点登录与简单实现 首先创建我们的项目架构,不在原来的项目上进行了,便于理解分析,项目架构如下 tiger-sso 是pom项目,同时也是tiger-auth的子模块SSO认证服务器项目pom文件<?xml...转载 2019-12-23 17:19:30 · 194 阅读 · 0 评论 -
【转载】spring-security-oauth2(二十三) 基本令牌配置及JWT扩展解析
令牌前面我们用的都是默认配置,其实令牌的样式及存储我们都可以进行定制,这章我们主要完成基本的Token参数配置 使用jwt替换默认的token 扩展和解析jwt的信息基本的Token参数配置硬编码配置token是在认证服务器处理的。springboot2.x和1.x的配置不太一样,这点我们要注...转载 2019-12-23 17:18:11 · 211 阅读 · 0 评论 -
【转载】spring-security-oauth2(二十二) 重构注册逻辑
浏览器注册模式前面的我们社交登录都是基于用户的社交信息都已经存在于数据库中了, 如果用户首次登录该怎么办呢?回顾下我们的浏览器注册逻辑。具体详细步骤 社交注册1.当第一次用社交用户信息登录,会默认跳到我们自定义的注册界面2.在跳到注册页之前,会把第三方用户信息放到se...转载 2019-12-23 17:16:41 · 120 阅读 · 0 评论 -
【转载】spring-security-oauth2(二十一) 重构社交登录
重构社交登录app里面的第三方登录不像浏览器中一样,一般是通过调用sdk(服务提供商),一般有2中模式。浏览器社交登录流程 简化模式从流程图分析,我们要提供一个用openId登录后台,这个流程和短信登录很相似,只是openId是从我们的社交用户表(UserConnection)中获取。直...转载 2019-12-23 17:15:17 · 239 阅读 · 0 评论 -
【转载】spring-security-oauth2(二十) 重构短信登陆
app中无cookie概念,我们用设备id(deviceld)来代替session机制,其实就是存储机制不一样,我们可以将app的验证码存放在redis中在core项目中定义一个存储接口 CaptchaRepositorypackage com.rui.tiger.auth.core.cap...转载 2019-12-23 17:14:12 · 111 阅读 · 0 评论 -
【转载】spring-security-oauth2(十九) 重构用户名密码登陆
在开始重构前我们来回忆下前面的流程三种方式登陆成功后组装后续流程返回token,必须携带basic client信息(因为需要它获取clientDetails信息) ok分析完流程后我们进行重构。先直接用浏览器的配置进行修改后续继续重构优化登陆成功转换token处...转载 2019-12-23 17:12:36 · 311 阅读 · 0 评论 -
【转载】spring-security-oauth2(十八 ) SpringSecurityOAuth核心源码解析
要重写我们前面已经写好的三种认证模式,使其支持token我们有必要对源码进行一定的了解才能进行扩展。绿色的代表类,蓝色的代表接口TokenEndpoint :整个流程入口点,可以理解成controllerClentDetailsService : 读取第三方应用信息TokenRequest : 封...转载 2019-12-23 17:11:30 · 150 阅读 · 0 评论 -
【转载】spring-security-oauth2(十七 ) 实现标准的Oathh2服务提供商
基于传统的session机制,主要存在下面三个问题开发繁琐 安全性和客户体验差 有些前段技术不支持cookie,如小程序。基于token的方式(令牌)1.参数或请求头中添加token 2.token可以进行定制(jwt)SpringSecurityOAuth封装了服务提供商大部分的...转载 2019-12-23 17:10:14 · 145 阅读 · 0 评论 -
【转载】spring-security-oauth2(十六 ) 退出登录
退出登陆如何退出登录 security默认退出登录处理逻辑 自定义退出登录默认是/logout退出登录。security默认退出登录处理逻辑使当前session失效 清除与当前用户相关的remember-me记录 清空当前的SecurityContext 重定向到登录页自定义退出登录co...转载 2019-12-23 17:09:04 · 1997 阅读 · 1 评论 -
【转载】spring-security-oauth2(十五 ) 单机集群session管理
单机session管理目前为止我们已经主要实现了三种登录用户+密码登录(表单) 手机号+短信登录(表单) 社交账单登录(oauth授权)它们都有一个共同点,用户认证成功的信息都是放在session中,下面我们处理session要面对的几个问题。1.session超时处理 ...转载 2019-12-23 17:07:55 · 413 阅读 · 0 评论 -
【转载】spring-security-oauth2(十四 ) 社交账号绑定与解绑
要实现绑定与解绑,首先我们需要知道社交账号的绑定状态,绑定就是重新走一下OAuth2流程,关联当前登录用户(将系统用户和社交账户绑定),解绑就是删除UserConnection表数据。Spring Social默认在ConnectController类上已经帮我们实现了以上的需求。获取绑定状态只有数据没有...转载 2019-12-23 17:06:03 · 444 阅读 · 0 评论 -
【转载】spring-security-oauth2(十三 ) 微信登录
微信登陆和QQ登陆大致流程一致,只是有些api不一样,主要是QQ的getUserInfo微信多了一个参数openId。这是因为微信互联文档中在OAuth2.0的认证流程示意图第五步时,微信的openid 同access_token一起返回。而Spring Social获取access_token的类...转载 2019-12-23 17:04:27 · 739 阅读 · 0 评论 -
【转载】spring-security-oauth2(十二 ) 注册逻辑
为何跳转signup在上一章结尾中,扫码登录后就会调到就跳到signup注册页面,这是怎么回事呢?我们来跟下源码。org.springframework.social.security.SocialAuthenticationProvider#authenticate org.springf...转载 2019-12-23 17:03:08 · 232 阅读 · 0 评论 -
【转载】spring-security-oauth2(十一) QQ登陆下
QQ登陆下登陆本地调试在上篇文章结尾中我们登陆报回调地址错误 这是怎么回事呢?原来第三方应用引导用户到认证服务器和认证服务器带着授权码的返回到第三方应用的地址是一样的都为/auth/qq。但是由于回调域名只支持80端口,所以将我们的项目端口修改成80端口或者做端口映射,同时修改hosts文件来...转载 2019-12-23 17:00:37 · 164 阅读 · 0 评论 -
【转载】spring-security-oauth2(十) QQ登陆上
QQ登陆上依据上篇的社交登陆流程我们来进行开发右半边:服务提供商相关实现(1-6步)ServiceProvider(AbstractOAuth2ServiceProvider):服务提供商抽象(如微信 qq等) &nb...转载 2019-12-23 16:59:22 · 268 阅读 · 0 评论 -
【转载】spring-security-oauth2(九) OAuth 2.0协议及SpringSocial简介
从本篇起,我们将利用SpringSocial进行第三方登录开发,它其实利用的是OAuth 2.0协议,所以有必要先了解下。对OAuth 2.0协议还不太清楚的同学可以先看看下面这2篇文章,阮一峰大神的理解OAuth 2.0https://www.cnblogs.com/Wddpct/p/8976480....转载 2019-12-23 16:57:58 · 124 阅读 · 0 评论 -
【转载】spring-security-oauth2(八) 短信密码登录重构
短信密码登录重构抽取重复的代码 将一些变量用常量或枚举类管理起来 对一些流程进行抽象封装,方便扩展比如前面我们的短信和验证码过滤器流程很相似,还有系统置不够清晰糅杂在一起了等。关于用户名密码登录和短信登录表单提交的url地址,不需要真实存在, 因为这个是提供这两个特定过滤器框架特定的拦截...转载 2019-12-23 16:55:08 · 166 阅读 · 0 评论 -
【转载】spring-security-oauth2(七) 自定义短信登陆开发
短信登陆开发原理基本原理:SmsAuthenticationFilter接受请求生成SmsAuthenticationToken,然后交给系统的AuthenticationManager进行管理,然后找到SmsAuthenticationProvider,然后再调用UserDetailsService进...转载 2019-12-23 16:53:24 · 224 阅读 · 0 评论 -
[转载]spring-security-oauth2(六) 短信验证码接口开发
短信验证码接口开发短信验证码生成接口 短信验证码发送接口 短信生成策略模板模式重构1.短信验证码接口开发1.1短信验证码生成接口发送短信验证码controllerpackage com.rui.tiger.auth.core.captcha; import lombok.extern.slf4j...转载 2019-12-23 16:51:49 · 212 阅读 · 0 评论 -
【转载】spring-security-oauth2(五) 记住我
添加记住我功能记住我功能基本原理 实现记住我功能 记住我SpringSecurity源码分析1.记住我功能基本原理过滤器链 2.实现记住我功能 给登录界面添加记住我选项<html><head> <meta charset=...转载 2019-12-23 16:49:26 · 192 阅读 · 0 评论 -
【转载】spring-security-oauth2(四) 图片验证码
图片验证码图片验证码生成接口 认证流程加入图片验证码校验 图片验证码重构1.图片验证码生成接口调用com.google.code.kaptcha.Producer生成图片验证码 将随机数存到session缓存中 将生成的图片写到响应流中图片验证码封装类 ImageCaptchaVo...转载 2019-12-23 16:45:35 · 467 阅读 · 0 评论 -
[转载]spring-security-oauth2(三) 认证流程源码分析
认证流程源码分析之前的代码中,我们自定义了登陆路径,自定义成功和失败处理器以及自定义的用户登陆信息校验,下面我们通过简单的源码分析,来把这些串联起来认证流程处理说明 认证结果如何在多个请求之间共享 获取认证用户信息认证处理流程说明spring-security过滤器链关于web中过滤器 、拦截器...转载 2019-12-23 16:43:21 · 108 阅读 · 0 评论 -
[转载]spring-security-oauth2(二) 自定义个性化登录
自定义认证逻辑1.认证逻辑接口spring-security用户登录逻辑验证接口org.springframework.security.core.userdetails.UserDetailsService只有一个方法UserDetails loadUserByUsername(String user...转载 2019-12-23 16:41:12 · 1119 阅读 · 2 评论 -
【转载】spring-security-oauth2(一) 项目环境搭建
图片验证码图片验证码生成接口 认证流程加入图片验证码校验 图片验证码重构1.图片验证码生成接口调用com.google.code.kaptcha.Producer生成图片验证码 将随机数存到session缓存中 将生成的图片写到响应流中图片验证码封装类 ImageCaptchaVo...转载 2019-12-23 16:37:32 · 256 阅读 · 1 评论