Grails spring安全性defaultTargetUrl走错路径

Grails spring安全性defaultTargetUrl走错路径,spring,grails,Spring,Grails,Grails 2.4和Spring security 2 3RC 我的Config.groovy上有这个 grails.plugin.springsecurity.controllerAnnotations.staticRules = [ '/': ['permitAll'], '/index': ['permitAll'], '/index.gsp':

Grails 2.4和Spring security 2 3RC

我的Config.groovy上有这个

grails.plugin.springsecurity.controllerAnnotations.staticRules = [
    '/':                              ['permitAll'],
    '/index':                         ['permitAll'],
    '/index.gsp':                     ['permitAll'],
    '/**/js/**':                      ['permitAll'],
    '/**/css/**':                     ['permitAll'],
    '/**/images/**':                  ['permitAll'],
    '/**/favicon.ico':                ['permitAll']
]
grails.plugin.springsecurity.successHandler.defaultTargetUrl = "/home/index"
但这让我不得不转向

assets/favicon.ico
我的家庭控制器就是这样

@Secured(['ROLE_ADMIN', 'ROLE_USER'])
def index() {
    if (SpringSecurityUtils.ifAllGranted('ROLE_ADMIN')) {
        redirect controller: 'admin', action: 'index'
        return
    }
}
我在UrlMapping中对此进行了修改:

"/"(controller: 'home', action:'index')
为什么我总是走错方向


更新:使用另一台计算机,它会将我重定向到/asset/grails_logo.png

听起来您遇到的问题与我将grails 1.x应用程序升级到2.4.2时遇到的问题类似。当您尝试访问受Spring安全授权规则保护的URL/页面而未登录时,它会将您重定向到登录页面。成功登录后,它会将您重定向到您请求的URL。在本例中,我猜您的favicon.ico和grails_logo.png受到授权规则的保护,因此它会将您重定向到登录页面。成功登录后,它会将您重定向到favicon.ico或grails_logo.png URL,因为这是授权失败时请求的受保护URL。相应地更改您的授权规则(如果您在两个位置都有资产,则可能希望同时执行这两项操作):

如果您正在使用资产管道插件,请使用:

'/assets/**':     ['permitAll']
'/css/**':     ['permitAll'],
'/js/**':      ['permitAll'],
'/images/**':  ['permitAll']
如果您正在使用类似于资源的插件,请使用:

'/assets/**':     ['permitAll']
'/css/**':     ['permitAll'],
'/js/**':      ['permitAll'],
'/images/**':  ['permitAll']

请尝试在您的项目中搜索关键字“favicon”(可能包括插件),并查找所有操作。也许其他的行动会改变你的方向。你也可以尝试禁用安全性插件,它可以帮助你找到问题所在。如果我禁用插件安全性,它将走上正确的道路,这是一个干净的项目,紧跟着是grails教程。所以没有行动。你能帮我分享这个项目吗?我不知道grails版本和spring安全性是否有问题,我使用的是grails 2.4和spring安全性2.0-RC或3.0-RC(必须检查)。和下午你的电子邮件,以便我可以发送给你找不到如何发送下午在这里。请通过google.com/+dmitrialeshkowsky与我联系,我不小心将资源示例中的路径复制到了资产管道示例中。资产管道中的所有资产都直接从/assets URL提供服务,因此
/assets/app.js
/assets/app.css