SpringCloud第三篇--集成SpringSecurity+Oauth2

一.背景

   现在网上充斥着各种SpringSecurity+Oauth2的教程和源码分析,但是并未找到合适我的项目的。项目中需求是这样的,首先需要对接App,提供手机号验证码登录,密码登录,一键登录,微信登录等等,还需要自动登录和可供前端调用的第三方验证码登录。真的是难煞我也!经过一个月的努力终于实现了初版,并且结合SpringCloud进行独立授权服务开发,将其他所有的服务保护起来。

二.材料准备

 1.需要先了解SpringSecurity是干嘛的

   SpringSecurity是基于责任链的认证授权框架,相比较认证授权框架Shiro来说,它比较重,不像Shiro使用配置起来那么简单。

   认证流程简图如下:

    SpringCloud第三篇--集成SpringSecurity+Oauth2_第1张图片

 2.Oauth2是什么

   Oauth2用于第三方认证授权的标准,用以第三方获取用户信息。

   网上讲的比较清楚的可以参考阮一峰的博客:http://www.ruanyifeng.com/blog/2019/04/oauth_design.html

三.实战

1.自定义核心配置类MyWebSecurityConfig

  该类中定义了以下几个方面的配置:

(1)认证流程中的过滤器

SpringCloud第三篇--集成SpringSecurity+Oauth2_第2张图片

(2)令牌存储方式使用redis

SpringCloud第三篇--集成SpringSecurity+Oauth2_第3张图片

(3)不需要拦截的URL和静态资源

SpringCloud第三篇--集成SpringSecurity+Oauth2_第4张图片

2.登录成处理LoginSuccessHandler

  我们业务中经常会有一些业务是需要登录成功后处理的,这里不仅详细配置了登录成功返回的json信息;还可以定义成功之后的一些业务处理。

SpringCloud第三篇--集成SpringSecurity+Oauth2_第5张图片

SpringCloud第三篇--集成SpringSecurity+Oauth2_第6张图片

3.授权服务器配置AuthServerConfig

SpringCloud第三篇--集成SpringSecurity+Oauth2_第7张图片

 最近刚刚换了工作,还未来得及详细整理,可参考项目代码 :

码云项目地址:https://gitee.com/lvxiucai/jianghu-micro-service

你可能感兴趣的:(微服务)