**
推荐入门系列之spring-security
**
要了解 spring security oauth2 必须先弄懂 spring security ,spring security oauth2 是基于spring security做的更上一层的封装,而spring security oauth2 ,更像是一种第三方授权的协议规范,学习spring security可以阅读源码,这里推荐一个源码系列 https://blog.csdn.net/fengyilin_henu/article/details/84915627
学习完 spring security 的源码系列之后,可以接着学习 spring security oauth2
这里推荐看两篇入门的文章
- 第一篇 阮一峰 的 理解OAuth 2.0 必看知识
https://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html - 第二篇是 OAuth2 现实案例介绍 帮助你更加贴近现实
https://www.cnblogs.com/flashsun/p/7424071.html - 还有一篇入门 学习OAuth 2.0 源码文章系列
https://blog.csdn.net/qq_30905661/article/details/81112305
这里还推荐几个实际的案例
-
第一个是 基于 OAuth 2.0 使用code 授权码方式,授权和资源服务端结合在一起的案例, 源码地址
https://github.com/lexburner/oauth2-demo.git -
第二个是基于OAuth 2.0 使用code 授权码方式,授权和资源服务端分开在一起的案例,采用
数据库储存client端信息,jwt储存token信息,其中还有spring security相关的知识
https://github.com/huzhicheng/spring-cloud-study.git -
第三个是文章,基于OAuth 2.0使用password 授权码方式 ,采用数据库储存信息,包括token等
https://blog.csdn.net/apbbbbb/article/details/85064273
学完上述内容,总结了如下几点
- AuthorizationServerSecurityConfiguration的配置,order为0,则无论后面的WebSecurityConfigurerAdapter怎么配置,只要优先级不比它高,他们针对/oauth/**相关的配置都不生效,都会优先被ClientCredentialsTokenEndpointFilter拦截处理。
- 比如ResourceServerConfigurerAdapter中配置拦截了/api/,但是没有配置优先级,最后的WebSecurityConfigurerAdapter如果也有相同的/api/认证配置的话,则会覆盖前者。
- 使用多个WebSecurityConfigurerAdapter的话,一般是每个配置分别拦截各自的url,互补重复。如果有配置order的话,则order值小的配置会优先使用,会覆盖后者。
- 还有 ResourceServerConfigurerAdapter 和 WebSecurityConfigurerAdapter
两者配置的httpSecurity的路径拦截信息是不用,WebSecurityConfigurerAdapter配置的url拦截,其范围只是经过登录就可以访问接口,而 WebSecurityConfigurerAdapter 要经过 AuthorizationServerSecurityConfiguration中认证,即要带上acess_token信息才可以访问,这里贴上返回不同的返回页面 未登录的情况
这里只是返回未登录的页面
未经过认证的情况
这里返回未认证的页面