我试图使用Spring Security java配置来保护Web应用程序。使用Spring Security Java配置时禁用基本身份验证
这是配置的样子: -
@Configuration
@EnableWebMvcSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
private String googleClientSecret;
@Autowired
private CustomUserService customUserService;
/*
* (non-Javadoc)
*
* @see org.springframework.security.config.annotation.web.configuration.
* WebSecurityConfigurerAdapter
* #configure(org.springframework.security.config
* .annotation.web.builders.HttpSecurity)
*/
@Override
protected void configure(HttpSecurity http) throws Exception {
// @formatter:off
http
.authorizeRequests()
.antMatchers(HttpMethod.GET, "/","/static/**", "/resources/**","/resources/public/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.httpBasic().disable()
.requiresChannel().anyRequest().requiresSecure();
// @formatter:on
super.configure(http);
}
@Override
protected void configure(AuthenticationManagerBuilder auth)
throws Exception {
// @formatter:off
auth
.eraseCredentials(true)
.userDetailsService(customUserService);
// @formatter:on
super.configure(auth);
}
}
请注意,我有明确禁用HTTP基本身份验证使用: -
.httpBasic().disable()
我仍然得到HTTP Authenticaton提示框,同时在访问安全网址。为什么?
请帮我解决这个问题。 我只想渲染捆绑的默认登录表单。
春天引导入门版本:1.1.5 Spring Security的版本:3.2.5
感谢
将'security.basic.enabled = false'添加到您的'application.properties'。你也不应该从覆盖的方法调用'super.configure'。 – 2014-09-03 17:31:18
@ M.Deinum修正了它。但是为什么当我在java配置中显式禁用时它没有被禁用? – 2014-09-03 17:33:36
您可以拥有多个'WebSecurityConfigurer',每个贡献配置的整体配置。这很可能是因为你的网站的其余部分受到基本身份验证和具有表单的普通网站的保护。你可以创建2个'WebSecurityConfigurer'用于休息,一个用于表单。你也可能想结账http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-security.html(Spring Boot reference,security section)。 – 2014-09-03 18:26:32