[英]spring boot security custom login form
我正在尝试使用Spring Boot安全性创建自己的自定义登录表单:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>1.1.9.RELEASE</version>
</dependency>
在前端,我创建了此登录表单:
<br/>
<form action="j_spring_security_check" method="post" name="login" id="login">
<div class="input-group input-group-lg">
<span class="input-group-addon">@</span>
<input type="text" class="form-control" placeholder="Usuario" name="username">
</div>
<br/>
<div class="input-group input-group-lg">
<span class="input-group-addon">PWD</span>
<input type="password" class="form-control" placeholder="Clave" name="password">
</div>
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
<br/>
<div>
<input type="submit" value="Acceder">
</div>
</form>
在后端:
@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
final static Logger logger = LoggerFactory.getLogger(WebSecurityConfig.class);
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests().antMatchers("/", "/index.html", "/bootstrap/**", "/jquery/**").permitAll()
.anyRequest().authenticated().and().formLogin()
.loginPage("/login.html").passwordParameter("password").usernameParameter("username")
.permitAll()
.and().logout()
.permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
}
我从这篇文章中得到了一些建议: http : //www.mkyong.com/spring-security/spring-security-form-login-example
我的问题是,当我登录时,它永远不会将我重定向到先前请求的页面,并连续显示在登录表单中。
预先感谢您的支持。
我知道晚了 但对其他一些人可能有用
变化action="j_spring_security_check"
到login.html
如已定义loginPage("/login.html")
重写j_spring_security_check
)的配置方法。 它应该工作
默认的登录处理URL是/ login(不是/ j_spring_security_ *)。 可能您只是将表单提交到错误的位置?
use front end like
<div class="login-page">
<div class="form">
<form:form method="POST" action="${contextPath}/login"
class="login-form" modelAttribute="user">
<input type="hidden" name="${_csrf.parameterName}"
value="${_csrf.token}" />
<form:input path="username" type="text" id="inputUserName"
placeholder="User Name" />
<span><form:errors cssClass="error" path="username" /></span>
<form:input path="password" type="password" id="inputPassword"
placeholder="Password" />
<button type="submit" class="btn btn-group btn-default btn-animated">Log
In</button>
<p class="message">
Not registered? <a href="register">Create an account</a>
</p>
</form:form>
</div>
</div>
然后作为
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/resources/**", "/register").permitAll()
.anyRequest().authenticated()
.and()
.formLogin().defaultSuccessUrl("/welcome", true)
.loginPage("/login")
.permitAll()
.and()
.logout().logoutSuccessUrl("/login")
.permitAll();
}
整个代码在Github Spring引导安全中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.