使用grails更改Spring安全插件中的登录页面
我使用以下方式安装Spring安全插件:使用grails更改Spring安全插件中的登录页面,grails,spring-security,grails-plugin,Grails,Spring Security,Grails Plugin,我使用以下方式安装Spring安全插件: compile ":spring-security-core:2.0-RC4" 在Config.groovy grails.plugins.springsecurity.auth.loginFormUrl = '/' grails.plugins.springsecurity.failureHandler.defaultFailureUrl = '/' 但是我不能用这个重定向到主页 那么在哪一点上我错了呢 谢谢 grails.plugins.spri
compile ":spring-security-core:2.0-RC4"
在Config.groovy
grails.plugins.springsecurity.auth.loginFormUrl = '/'
grails.plugins.springsecurity.failureHandler.defaultFailureUrl = '/'
但是我不能用这个重定向到主页
那么在哪一点上我错了呢
谢谢
grails.plugins.springsecurity.auth.loginFormUrl = '/'
grails.plugins.springsecurity.failureHandler.defaultFailureUrl = '/'
在这方面。您可以为登录设置主页的url。现在您必须将登录数据发送到url:“/”
只需删除此字段或使用其他字段。Spring Security使用“/”作为默认成功Uri,使用“/login/ajaxSuccess”进行ajax身份验证。auth.loginFormUrl提供的登录页面url默认值为“login/auth”。安全插件使用LoginController.groovy类来管理登录身份验证
您已经为“/”定义了控制器“dashboard”,在您的情况下,它对于loginFormUrl和登录成功Url(默认情况下)都是相同的。因此,您需要实现逻辑以重定向到dashboard controller中的不同位置。或者,您可以为loginURL和successUrl使用不同的URL
根据角色定义控制器类并实现逻辑
def springSecurityService
def index() {
User user = springSecurityService.currentUser
if (user) {
if (user.authoritiesInString.contains(Authorities.ROLE_ADMIN)) {
render "admin login "
} else if (user.authoritiesInString.contains(Authorities.ROLE_USER)) {
render "user login"
}
} else {
redirect(uri: '/login')
}
}
在URLmapping.groovy中定义“/”的映射,这是默认的成功处理程序
static mappings = {
"/$controller/$action?/$id?(.$format)?"{
constraints {
// apply constraints here
}
}
"/login" controller: 'login', action: 'auth'
"/" controller: 'main', action: 'index'
}
Spring安全插件提供了覆盖许多url的功能,这些url可以在我的UrlMappings.groovy文件I set/(controller://dashboard)中找到。但页面没有重定向。因为您将spring安全性映射到此url。只需删除或编辑问题的最后两行,然后重试