Spring Security中的httpBasic方法是什么?

saj*_*ari 14 spring-security

configure(HttpSecurity http)像这样重写 SampleSecurityConfig 类中的方法

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

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

方法到底是做什么的httpBasic

Man*_*dis 13

调用此方法HttpSecurity将为您的应用程序启用Http 基本身份验证,并具有一些“合理”的默认值。

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

您可以通过curl 并传递一个类似Authorization: Basic bzFbdGfmZrptWY30YQ==但base64 编码的有效用户名/密码组合的标头来测试这一点。

httpBasic的文档


小智 7

我们通过调用 httpBasic() 来表达什么?

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

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

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