我已将":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/