spring-security 以及 spring security oauth2 结合jwt 做 token验证 新手入门到深入

**

推荐入门系列之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
这里推荐看两篇入门的文章

  1. 第一篇 阮一峰 的 理解OAuth 2.0 必看知识
    https://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
  2. 第二篇是 OAuth2 现实案例介绍 帮助你更加贴近现实
    https://www.cnblogs.com/flashsun/p/7424071.html
  3. 还有一篇入门 学习OAuth 2.0 源码文章系列
    https://blog.csdn.net/qq_30905661/article/details/81112305

这里还推荐几个实际的案例

  1. 第一个是 基于 OAuth 2.0 使用code 授权码方式,授权和资源服务端结合在一起的案例, 源码地址
    https://github.com/lexburner/oauth2-demo.git

  2. 第二个是基于OAuth 2.0 使用code 授权码方式,授权和资源服务端分开在一起的案例,采用
    数据库储存client端信息,jwt储存token信息,其中还有spring security相关的知识
    https://github.com/huzhicheng/spring-cloud-study.git

  3. 第三个是文章,基于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信息才可以访问,这里贴上返回不同的返回页面 未登录的情况
    spring-security 以及 spring security oauth2 结合jwt 做 token验证 新手入门到深入_第1张图片
    这里只是返回未登录的页面

未经过认证的情况
spring-security 以及 spring security oauth2 结合jwt 做 token验证 新手入门到深入_第2张图片
这里返回未认证的页面

你可能感兴趣的:(spring,security,oauth2)