我已将application.yml中的Spring Security声明为依赖项,并且在运行我的应用程序时,默认登录表单按预期工作。我想为表单设置样式,以便我的应用程序无缝。
在views / auth中我有auth.gsp,其中包含以下代码:
<form method="POST" action="${resource(file: 'j_spring_security_check')}">
<table>
<tr>
<td>Username:</td><td><g:textField name="j_username"/></td>
</tr>
<tr>
<td>Password:</td><td><input name="j_password" type="password"/></td>
</tr>
<tr>
<td colspan="2"><g:submitButton name="login" value="Login"/></td>
</tr>
</table>
</form>
此表单按预期显示,但在提交表单时没有任何反应。我假设它是因为{resource(file: 'j_spring_security_check')}
不是它应该采取的行动。我从here得到了这段代码,我相信这是用Grails 2编写的。知道正确的行动是什么吗?
答案 0 :(得分:3)
以下是工作的自定义登录表单:
<form method="POST" action="${resource(file: '/login/authenticate')}" class="form-signin">
<h2 class="form-signin-heading text-center">Login</h2>
<input type="text" class="form-control" name="username" placeholder="Username"/>
<input type="password" class="form-control" name="password" placeholder="Password"/>
<label class="checkbox text-center">
<input type="checkbox" value="remember-me" id="rememberMe" name="remember-me"> Remember me
</label>
<button class="btn btn-lg btn-default btn-block" type="submit">Login</button>
</form>
需要注意的关键事项是:
j_spring_security_check
现在是/login/authenticate
j_username
现在是username
j_password
现在是password
用于Grails 3的Spring security 3的文档是here
答案 1 :(得分:1)
我很震惊地发现六年前的一篇博文并非100%正确。也许你会更好地阅读the documentation,特别是“版本3.0中的新功能”部分。