【问题标题】:What is httpBasic method in spring security?Spring Security 中的 httpBasic 方法是什么?
【发布时间】:2022-01-13 06:38:01
【问题描述】:

我像这样覆盖 SampleSecurityConfig 类中的 configure(HttpSecurity http) 方法

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
        .antMatchers("/delete/**").hasRole("ADMIN")
        .anyRequest().authenticated()
        .and()
        .formLogin().and().httpBasic();
}

如果我不使用httpBasic方法,似乎没有问题发生。

httpBasic 方法究竟做了什么?

【问题讨论】:

    标签: spring-security


    【解决方案1】:

    HttpSecurity 上调用此方法将为您的应用程序启用Http Basic Authentication,并具有一些“合理”的默认值。

    它将返回一个HttpBasicConfigurer 以供进一步自定义。

    您可以通过 curl 并传递像 Authorization: Basic bzFbdGfmZrptWY30YQ== 这样的标头进行测试,但 base64 编码有效的用户名/密码组合。

    httpBasic 的文档

    【讨论】:

      【解决方案2】:

      调用 httpBasic() 的意思是什么?

      • 当调用httpBasic() 时,我们告诉Spring 使用Authorization 请求标头传递的值来验证请求。如果请求未通过身份验证,您将获得返回状态 401 和错误消息 Unauthorized

      调用 httpBasic() 时实际发生了什么?

      • 通过调用httpBasic()BasicAuthenticationFilter 的一个实例被添加到过滤器链中。然后 BasicAuthenticationFilter 将继续尝试以典型的 Spring Security 方式对请求进行身份验证。如果身份验证成功,生成的身份验证对象将被放置到 SecurityContextHolder 中,然后可以将其用于将来的身份验证目的。

      【讨论】:

        猜你喜欢
        • 2017-02-09
        • 2014-01-03
        • 2021-01-18
        • 2016-09-26
        • 2016-01-29
        • 1970-01-01
        • 2019-09-16
        • 2014-11-25
        • 2019-01-01
        相关资源
        最近更新 更多