WebSecurityConfigurerAdapter和ResourceServerConfigurerAdapter区别

SpringCloud 专栏收录该内容
5 篇文章 0 订阅

默认继承了WebSecurityConfigurerAdapter之后,再加上几行代码,我们就能实现以下的功能:

  • 1、要求用户在进入你的应用的任何URL之前都进行验证
  • 2、创建一个用户名是“user”,密码是“password”,角色是“ROLE_USER”的用户
  • 3、启用HTTP Basic和基于表单的验证
  • 4、Spring Security将会自动生成一个登陆页面和登出成功页面

这样他就提供基于web的security, 安全服务配置URL强制拦截保护服务,可以配置哪些路径不需要保护,哪些需要保护,它与ResourceServerConfigurerAdapter区别在于:

  • WebSecurityConfigurerAdapter是默认情况下spring security的http配置,
    ResourceServerConfigurerAdapter是默认情况下spring security oauth2的http配置

  • ResourceServerConfigurerAdapter被配置为不同的端点(参见antMatchers),而WebSecurityConfigurerAdapter不是。

  • RealServServer配置适配器使用一个特殊的过滤器来检查请求中的承载令牌,以便通过OAuth2对请求进行认证。而WebSecurityConfigurerAdapter适配器用于通过会话对用户进行身份验证(如表单登录)

WebSecurityConfigurerAdapter部分源码如下:

    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
       ...
    }
    public void configure(WebSecurity web) throws Exception {
    }
    protected void configure(HttpSecurity http) throws Exception {
        ...
    }
    ...
}

ResourceServerConfigurerAdapter部分源码如下:

public class ResourceServerConfigurerAdapter implements ResourceServerConfigurer {
    @Override
    public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
    }
    @Override
    public void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().anyRequest().authenticated();
    }
}

在ResourceServerProperties中,定义了它的order默认值为SecurityProperties.ACCESS_OVERRIDE_ORDER - 1;,是大于100的,即WebSecurityConfigurerAdapter的配置的拦截要优先于ResourceServerConfigurerAdapter,优先级高的http配置是可以覆盖优先级低的配置的。
某些情况下如果需要ResourceServerConfigurerAdapter的拦截优先于WebSecurityConfigurerAdapter需要在配置文件中添加

security.oauth2.resource.filter-order=99

或者重写WebSecurityConfigurerAdapter的Order配置,如下:

@Configuration
@EnableWebSecurity
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
    ...
}

学习交流

欢迎入群交流学习,Android、Java开发技术交流群

  • QQ群:810970432
  • email:geduo_83@163.com
    image
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:马嘣嘣 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值