Grails Spring Security 核心插件

Posted

技术标签:

【中文标题】Grails Spring Security 核心插件【英文标题】:Grails Spring Security Core Plugin 【发布时间】:2012-05-24 15:34:55 【问题描述】:

我(终于)将我的 Acegi 插件升级到 Spring Security Core。同时,我正在从 Grails 1.3.7 升级到 2.0。我的网站以前功能齐全,但现在当我尝试访问我的默认页面(即IS_AUTHENTICATED_ANONYMOUSLY)时,我被重定向到我的LoginControllerauth 操作。这个方法从来没有被 Acegi 调用过,所以我不知道问题是什么。是我的配置设置错误还是我需要考虑其他问题?

grails.plugins.springsecurity.securityConfigType = SecurityConfigType.InterceptUrlMap

    grails.plugins.springsecurity.interceptUrlMap  = [
                '/blog/**':['IS_AUTHENTICATED_ANONYMOUSLY'],
                '/static/**':['IS_AUTHENTICATED_ANONYMOUSLY'],
                '/consensus/**':['IS_AUTHENTICATED_FULLY'],
                '/login/**':['IS_AUTHENTICATED_ANONYMOUSLY'],
                '/signup/**':['IS_AUTHENTICATED_ANONYMOUSLY'],
                '/home/**':['IS_AUTHENTICATED_FULLY'],
                '/test/**':['ROLE_ADMIN'],
                '/admin/**':['ROLE_ADMIN'],
                '/adminmanage/**':['ROLE_ADMIN'],
                '/quartz/**':['ROLE_ADMIN'],
                '/**/*.css':['IS_AUTHENTICATED_ANONYMOUSLY'],
                '/js/**':['IS_AUTHENTICATED_ANONYMOUSLY'],
                '/images/**':['IS_AUTHENTICATED_ANONYMOUSLY'],
                '/monitoring**':['ROLE_ADMIN'],
                '/**':['IS_AUTHENTICATED_FULLY']
            ]

我的 UrlMappings.groovy 是:

class UrlMappings 
    static mappings = 
        "/"(controller:"x", action:"y")
        "/z/?"(controller:"x", action:"y")
        "/$controller/$action?/$id?"
                
                    constraints 
                        // apply constraints here
                    
                
        "500"(view: '/error')
    

我一直在阅读文档,但遇到了一些问题,所以我不确定是否需要查看更多相关代码。如果有,请告诉我,我会添加它。谢谢。

【问题讨论】:

我很确定 '/**':['IS_AUTHENTICATED_FULLY'] 是导致它的原因,我非常记得在场规则如何适用于配置映射的处理方式(我使用控制器注释)。尝试删除该行以查看您是否可以访问您的主页。如果可以的话,你需要弄清楚如何不让它发生冲突。祝你好运! @Oliv 谢谢 - 删除最后一个帮助我调试。 【参考方案1】:

删除 openid 插件后,所有请求都将我重定向到登录页面!我不知道该怎么办...我已经删除了所有相关内容。

【讨论】:

【参考方案2】:

我的Config.groovy 中的其他选项不正确,这导致了问题。一旦我纠正了它们,一切都很好。

尽管在文档中提到了它,但我的安全字段没有以grails.plugins.springsecurity 开头,这导致引擎无法识别它们,由于某种原因导致调用auth

【讨论】:

您能否编辑详细说明问题所在?如果文档中有不清楚的地方或者可能有用的东西放在那里,很高兴知道。 (或者,如果其他人遇到这个问题并最终通过谷歌来到这里,却发现你解决了这个问题而没有别的;)) @Oliver - 这个问题对我来说似乎真的很具体,否则我会这样做。不过我还是会做的——谢谢你的帮助。

以上是关于Grails Spring Security 核心插件的主要内容,如果未能解决你的问题,请参考以下文章

访问被拒绝并获取 抱歉,在 grails 中将插件 Spring Security 核心升级到 2.0 版本后,您无权查看此页面

带有 Spring Security 核心和 CORS 插件的 grails REST API 不适用于 OPTIONS http 方法请求

ClassNotFoundException: SimpleGrantedAuthority - Grails 2.4.2 和 Spring Security

使用 grails spring security core 插件保护 URL 映射

Grails Spring Security - 会话超时后重新登录时重新加载会话变量

Grails - 卸载 Spring Security Core