在Grails 3中自定义Spring Security 3.1.1登录表单

时间:2016-08-02 09:39:41

标签: grails spring-security grails-3.1

我已将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编写的。知道正确的行动是什么吗?

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中的新功能”部分。