我試圖使用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