0
我正在嘗試配置Spring MVC Web應用程序以使用自定義登錄表單進行使用註釋進行身份驗證。我的問題是,自定義登錄表單從來沒有打開過,但是我總是得到標準的spring安全登錄表單。未調用Spring安全自定義登錄表單
我已經定義了以下SecurityConfiguration
類:
package com.test.spring.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
@EnableWebSecurity
public class SecurityConfiguration {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/login").permitAll()
.antMatchers("/resources/**").permitAll()
.antMatchers("/admin/**").hasRole("ADMIN")
.and()
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/home")
.usernameParameter("user_login")
.passwordParameter("user_password")
.and()
.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/login")
.permitAll()
.and()
.csrf()
.and()
.sessionManagement()
.invalidSessionUrl("/login?time=1")
.maximumSessions(10);
}
}
而且SecurityWebApplicationInitializer
類:
package com.test.spring.config;
import org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer;
public class SecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer {
}
此外,我創建的自定義登錄表單login.html
所以我假定配置將載入我login.html
文件,而不是標準的春季安全登錄表單。
無論我做什麼,我總是得到標準的登錄表單:
我也配置了我的控制器:
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login() {
return "login";
}
看來,我的安全配置是不加載所有。
問題在哪裏?
只是爲了測試你有什麼,當你訪問/spring/login.html –
沿着這有可能是你控制器的missied配置使用URL http://docs.spring.io/spring-security/site/docs/3.2.x/guides/form.html –
/spring/login.html通過標準登錄表單重定向回/ spring/login – user1563721