grails - Spring Security UI-无法打开注册/忘记密码页面

标签 grails spring-security grails-2.0

我已将":spring-security-ui:1.0-RC1"放入我的BuildConfig中并进行了编译,然后使用spring ui命令创建了auth, register and securityInfo View 和 Controller 。我还将一个用户放在我的数据库中进行测试。

但是,当我对其进行测试时,我只是进入登录页面,登录后我回到了grails页面。但是按钮Register New User and Forgotten Passoword不起作用,我只能重定向到login页面!即使文件已正确呈现为*.html

这是 View 结构的样子:

我的ÙRLMappings看起来像这样:

class UrlMappings {

    static mappings = {
        "/$controller/$action?/$id?(.${format})?"{
            constraints {
                // apply constraints here
            }
        }

        "/"(view:"/index")
        "500"(view:'/error')
    }
}

感谢您对我的问题的回答!

更新
这是我的auth.gsp:
<html>

<head>
<title><g:message code='spring.security.ui.login.title'/></title>
<meta name='layout' content='register'/>
</head>

<body>

<p/>

<div class="login s2ui_center ui-corner-all" style='text-align:center;'>
    <div class="login-inner">
    <form action='${postUrl}' method='POST' id="loginForm" name="loginForm" autocomplete='off'>
    <div class="sign-in">

    <h1><g:message code='spring.security.ui.login.signin'/></h1>

    <table>
        <tr>
            <td><label for="username"><g:message code='spring.security.ui.login.username'/></label></td>
            <td><input name="j_username" id="username" size="20" /></td>
        </tr>
        <tr>
            <td><label for="password"><g:message code='spring.security.ui.login.password'/></label></td>
            <td><input type="password" name="j_password" id="password" size="20" /></td>
        </tr>
        <tr>
            <td colspan='2'>
                <input type="checkbox" class="checkbox" name="${rememberMeParameter}" id="remember_me" checked="checked" />
                <label for='remember_me'><g:message code='spring.security.ui.login.rememberme'/></label> |
                <span class="forgot-link">
                    <g:link controller='register' action='forgotPassword'><g:message code='spring.security.ui.login.forgotPassword'/></g:link>
                </span>
            </td>
        </tr>
        <tr>
            <td colspan='2'>
                <s2ui:linkButton elementId='register' controller='register' messageCode='spring.security.ui.login.register'/>
                <s2ui:submitButton elementId='loginButton' form='loginForm' messageCode='spring.security.ui.login.login'/>
            </td>
        </tr>
    </table>

    </div>
    </form>
    </div>
</div>

<script>
$(document).ready(function() {
    $('#username').focus();
});

<s2ui:initCheckboxes/>

</script>

</body>
</html>

最佳答案

您可能需要在grails.plugin.springsecurity.controllerAnnotations.staticRules中添加以下两个规则。它在Config.groovy文件中。

'/register/index':                ['permitAll'],
'/register/forgotPassword':       ['permitAll'],

否则,spring security将使您的请求返回到登录/身份验证屏幕。

关于grails - Spring Security UI-无法打开注册/忘记密码页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20712385/

相关文章:

由于重定向循环,Grails Spring Security 无法显示登录页面

grails - 缺少 r :layoutResources tag 的异常

java - 条件 Spring 安全

java - 当 grails 中的日期发生变化时,计时器任务执行了很多次

grails - 为什么在第一次访问hasMany关系时grails抛出空指针异常?

grails - Grails独特的约束-它会同时起作用吗?

grails - Grails:找不到创建 Controller ?

templates - 在grails模板中无法识别域类属性的原因是什么?

java - 模拟@AuthenticationPrincipal 参数

java - Spring WebClient 和 client_credentials 授予