HttpSecurity,WebSecurity和AuthenticationManagerBuilder

任何人都可以解释什么时候重写configure(HttpSecurity)configure(WebSecurity)configure(AuthenticationManagerBuilder)

configure(AuthenticationManagerBuilder)用于通过允许轻松地添加AuthenticationProviders来build立authentication机制:例如下面定义了内置的“user”和“admin”login名的内存authentication。

 public void configure(AuthenticationManagerBuilder auth) { auth .inMemoryAuthentication() .withUser("user") .password("password") .roles("USER") .and() .withUser("admin") .password("password") .roles("ADMIN","USER"); } 

configure(HttpSecurity)允许在资源级别基于select匹配来configuration基于Web的安全性。例如,下面的示例将以/ admin /开头的URL限制为具有ADMINangular色的用户,并声明任何其他URL都需要成功authentication。

 protected void configure(HttpSecurity http) throws Exception { http .authorizeUrls() .antMatchers("/admin/**").hasRole("ADMIN") .anyRequest().authenticated() } 

configuration(WebSecurity)用于影响全局安全的configuration设置(忽略资源,设置debugging模式,通过实现自定义防火墙定义拒绝请求)。 例如,以下方法会导致以/ resources /开头的任何请求被忽略以进行身份​​validation。

 public void configure(WebSecurity web) throws Exception { web .ignoring() .antMatchers("/resources/**"); } 

您可以参考以下链接获取更多信息Spring Security Javaconfiguration预览:networking安全