Java配置 - HttpSecurity

优质
小牛编辑
124浏览
2023-12-01

到目前为止我们的 SecurityConfig 只包含了关于如何验证我们的用户的信息。Spring Security怎么知道我们想对所有的用户进行验证?Spring Security怎么知道我们需要支持基于表单的验证?原因是WebSecurityConfigurerAdapterconfigure(HttpSecurity http) 方法提供了一个默认的配置,看起来和下面类似:

  1. protected void configure(HttpSecurity http) throws Exception {
  2. http
  3. .authorizeRequests()
  4. .anyRequest().authenticated()
  5. .and()
  6. .formLogin()
  7. .and()
  8. .httpBasic();
  9. }

上面的默认配置:

  • 确保我们应用中的所有请求都需要用户被认证
  • 允许用户进行基于表单的认证
  • 允许用户使用HTTP基本验证进行认证

你可以看到这个配置和下面的XML命名配置相似:

  1. <http>
  2. <intercept-url pattern="/**" access="authenticated"/>
  3. <form-login />
  4. <http-basic />
  5. </http>

Java配置使用and()方法相当于XML标签的关闭,这样允许我们继续配置父类节点。如果你阅读代码他很合理,我想配置请求验证,并使用表单和HTTP基本身份验证进行登录。

然而,Java配置有不同的默认URL和参数,当你自定义用户登录页时需要牢记这一点。让我们的URL更加RESTful ,另外不要那么明显的观察出我们在使用Spring Security这样帮助我们避免信息泄露。比如: