Spring Security-23-实现标准的OAuth服务提供商 发表于 2019-09-10 | 分类于 Spring Security 述本文开始将构建一个 OAuth 服务提供商, 主要就是两大块, 认证服务器和资源服务器, 之后的代码都写在 app 的项目里,所以先把demo项目中的 web 的依赖改成 app 的依赖12345<dependency> <groupId>com.security&l ... 阅读全文 »
Spring Security-22-Spring Security OAuth 简介 发表于 2019-09-10 | 分类于 Spring Security 述之前的 Spring Social 中,我们是去访问别人的 OAuth 服务,在我们自己的系统中,客户端访问服务还是基于 session 的,结构大致如下: 如果是前后端分离开发,再按上面这种方式开发就比较繁琐,而且安全性和客户体验差, 一旦 JSESSIONID 泄露,那可能就会被伪造身份 ... 阅读全文 »
Spring Security-21-退出登录 发表于 2019-09-10 | 分类于 Spring Security 述退出登录的功能,Spring Security 也提供了默认的实现, 接口是 /logout, 直接访问 http://www.pinzhi365.com/logout 接口效果如下: 这里会挑战到 /authentication/require?logout 这个请求里面,原因是默认的注销 ... 阅读全文 »
Spring Security-20-Session管理 发表于 2019-09-10 | 分类于 Spring Security 述在之前我们已经实现了三种方式的用户登录: 用户名密码登录 短信验证码登录 第三方社交网站登录 前面两种是使用表单提交的方式登录,后面一种是走 OAuth 流程登录, 但是不管是哪种类型的登陆,最后的用户认证信息都会放到 session 中去 对于session的一些配置,比如 ... 阅读全文 »
Spring Security-19-绑定和解绑处理 发表于 2019-09-10 | 分类于 Spring Security 述在使用第三方登录时,有一个常见的场景就是用户登录完成之后,再去绑定/解绑第三方社交账号 绑定也是需要走一下 OAuth 流程,用户授权完成之后,将第三方的用户信息与当前系统的用户信息做一个绑定, 这里和登录不同的地方是, 登录是不知道当前用户信息的,需要先拿到第三方用户信息然后去 userc ... 阅读全文 »
Spring Security-18-开发微信登录 发表于 2019-09-10 | 分类于 Spring Security 述上文中实现了整个QQ登录的流程,本文来实现以下微信的授权登录, 总体逻辑是和QQ一样的,部分地方有所区别 ServiceProvider构建构建 ServiceProvider 需要 API 和 OAuth2Operations 微信API新建接口 WeChat12345678publi ... 阅读全文 »
Spring Security-17-处理注册逻辑 发表于 2019-09-10 | 分类于 Spring Security 述上文中,最后QQ授权成功,获取到用户信息之后,是跳转到了一个 /sign/up 的请求上去, 下面首先看一下为什么会跳转到注册页面上去 首先,按照 security 的登录流程, 上文中获取到了 QQ 信息,然后组成一个未认证的 SocialAuthenticationToken 对象, 然 ... 阅读全文 »
Spring Security-16-开发QQ登录(下) 发表于 2019-09-10 | 分类于 Spring Security 述上文中,整个QQ登录的流程的代码已经写完了,可以启动项目试一下, 点QQ登录,效果如下: 可以看下QQ的文档, 就是回调地址不合法 这只是一个问题,在运行代码的过程中还会有几个问题,下面来看一下 回调地址上面的问题就是回调地址不对, 在QQ互联里面,需要在自己应用中去配置 ... 阅读全文 »
Spring Security-15-开发QQ登录(中) 发表于 2019-09-10 | 分类于 Spring Security 述上文中实现了 ServiceProvider 的部分, 然后剩下就是 ConnectionFactory 创建 Connection 的部分还有与数据量交互的部分 ConnectionFactory 构建适配器实现要构建 ConnectionFactory 就需要 ServiceProvid ... 阅读全文 »
Spring Security-14-开发QQ登录(上) 发表于 2019-09-10 | 分类于 Spring Security 述本文开始,实现一个第三方登录,以QQ为例,首先需要去QQ互联里面,申请开发者认证,然后创建应用,搞到AppId,和AppKey 实现流程按照上文中的实现流程,先是构建 ServiceProvider ,然后是 ConnectionFactory 然后 Connection 最后交互数据库 ... 阅读全文 »