Spring Security Grails 3.0 YML映射

Spring Security Grails 3.0 YML映射,grails,spring-security,Grails,Spring Security,我正在看grails spring安全核心v3的文档。我的目标是在yml文件中配置url映射,而不是分散在代码中。他们的文件说,要做到这一点,我们必须做两件事。首先,设置 securityConfigType: 'InterceptUrlMap' 然后用以下格式概述我们的模式: grails.plugin.springsecurity.interceptUrlMap = [ [pattern: '/', access: ['permitAll']] ] 我已

我正在看grails spring安全核心v3的文档。我的目标是在yml文件中配置url映射,而不是分散在代码中。他们的文件说,要做到这一点,我们必须做两件事。首先,设置

securityConfigType: 'InterceptUrlMap'
然后用以下格式概述我们的模式:

grails.plugin.springsecurity.interceptUrlMap = [
   [pattern: '/',               access: ['permitAll']]
]
我已经在下面的代码中完成了:(注意,这是从他们的文档中复制和粘贴的)

但是,当尝试使用新构建的war文件访问我的网页时,我收到一个错误,说明如下:

groovy.lang.MissingMethodException: No signature of method: grails.plugin.springsecurity.ReflectionUtils$_splitMap_closure5.doCall() is applicable for argument types: (java.util.ArrayList) values: [[[pattern:/], [access:[permitAll]]]]
Possible solutions: doCall(java.util.Map), findAll(), findAll(), isCase(java.lang.Object), isCase(java.lang.Object)
我不确定这里的问题是什么。如果我让Grails3.0使用s2快速启动生成的groovy脚本,一切都会按预期进行。然而,考虑到我的其他配置100%都在YML文件中,我当然不想这样做


我是否缺少一些需要设置的明显属性?

查看该错误后,我所做的是尝试使用映射列表创建映射。 所以你的代码会变成这样:

interceptUrlMap: [
    {pattern: '/',               access: ['permitAll']},
    {pattern: '/error',          access: ['permitAll']},
    {pattern: '/index',          access: ['permitAll']},
    {pattern: '/index.gsp',      access: ['permitAll']},
    {pattern: '/shutdown',       access: ['permitAll']},
    {pattern: '/assets/**',      access: ['permitAll']},
    {pattern: '/**/js/**',       access: ['permitAll']},
    {pattern: '/**/css/**',      access: ['permitAll']},
    {pattern: '/**/images/**',   access: ['permitAll']},
    {pattern: '/**/favicon.ico', access: ['permitAll']},
    {pattern: '/login/**',       access: ['permitAll']},
    {pattern: '/logout/**',      access: ['permitAll']}
]

我在本地的Grails 3.0应用程序中使用了这个,它似乎工作得很好。

在查看了这个错误之后,我所做的是尝试使用一个映射列表创建映射。 所以你的代码会变成这样:

interceptUrlMap: [
    {pattern: '/',               access: ['permitAll']},
    {pattern: '/error',          access: ['permitAll']},
    {pattern: '/index',          access: ['permitAll']},
    {pattern: '/index.gsp',      access: ['permitAll']},
    {pattern: '/shutdown',       access: ['permitAll']},
    {pattern: '/assets/**',      access: ['permitAll']},
    {pattern: '/**/js/**',       access: ['permitAll']},
    {pattern: '/**/css/**',      access: ['permitAll']},
    {pattern: '/**/images/**',   access: ['permitAll']},
    {pattern: '/**/favicon.ico', access: ['permitAll']},
    {pattern: '/login/**',       access: ['permitAll']},
    {pattern: '/logout/**',      access: ['permitAll']}
]

我已经在本地的Grails3.0应用程序中使用了它,它似乎工作得很好。

在3.2.4中,由于某种原因,它对我不起作用。以下是我们所做的:

interceptUrlMap:
    - {pattern: '/password/change**', access: ['IS_AUTHENTICATED_REMEMBERED']}
    - {pattern: '/user/create', access: ['IS_AUTHENTICATED_ANONYMOUSLY']}
    - {pattern: '/user/save', access: ['IS_AUTHENTICATED_ANONYMOUSLY']}
    - {pattern: '/user/**', access: ['IS_AUTHENTICATED_REMEMBERED']}
    - {pattern: '/my/**', access: ['IS_AUTHENTICATED_REMEMBERED']}
    - {pattern: '/j_spring_security_exit_user', access: ['IS_AUTHENTICATED_REMEMBERED']}
    - {pattern: '/j_spring_security_switch_user', access: ['ROLE_ADMIN', 'ROLE_SWITCH_USER']}
    - {pattern: '/admin/**', access: ['ROLE_ADMIN']}

在3.2.4中,由于某种原因,这对我不起作用。以下是我们所做的:

interceptUrlMap:
    - {pattern: '/password/change**', access: ['IS_AUTHENTICATED_REMEMBERED']}
    - {pattern: '/user/create', access: ['IS_AUTHENTICATED_ANONYMOUSLY']}
    - {pattern: '/user/save', access: ['IS_AUTHENTICATED_ANONYMOUSLY']}
    - {pattern: '/user/**', access: ['IS_AUTHENTICATED_REMEMBERED']}
    - {pattern: '/my/**', access: ['IS_AUTHENTICATED_REMEMBERED']}
    - {pattern: '/j_spring_security_exit_user', access: ['IS_AUTHENTICATED_REMEMBERED']}
    - {pattern: '/j_spring_security_switch_user', access: ['ROLE_ADMIN', 'ROLE_SWITCH_USER']}
    - {pattern: '/admin/**', access: ['ROLE_ADMIN']}
更改此项:

interceptUrlMap:
    - {pattern: '/password/change**', access: ['IS_AUTHENTICATED_REMEMBERED']}
    - {pattern: '/user/create', access: ['IS_AUTHENTICATED_ANONYMOUSLY']}
    - {pattern: '/user/save', access: ['IS_AUTHENTICATED_ANONYMOUSLY']}
    - {pattern: '/user/**', access: ['IS_AUTHENTICATED_REMEMBERED']}
    - {pattern: '/my/**', access: ['IS_AUTHENTICATED_REMEMBERED']}
    - {pattern: '/j_spring_security_exit_user', access: ['IS_AUTHENTICATED_REMEMBERED']}
    - {pattern: '/j_spring_security_switch_user', access: ['ROLE_ADMIN', 'ROLE_SWITCH_USER']}
    - {pattern: '/admin/**', access: ['ROLE_ADMIN']}
为此:

interceptUrlMap: [
            {pattern: '/',               access: ['permitAll']},
            {pattern: '/error',          access: ['permitAll']},
            {pattern: '/index',          access: ['permitAll']},
            {pattern: '/index.gsp',      access: ['permitAll']},
            {pattern: '/shutdown',       access: ['permitAll']},
            {pattern: '/assets/**',      access: ['permitAll']},
            {pattern: '/**/js/**',       access: ['permitAll']},
            {pattern: '/**/css/**',      access: ['permitAll']},
            {pattern: '/**/images/**',   access: ['permitAll']},
            {pattern: '/**/favicon.ico', access: ['permitAll']},
            {pattern: '/login/**',       access: ['permitAll']},
            {pattern: '/logout/**',      access: ['permitAll']}
        ]
更改此项:

interceptUrlMap:
    - {pattern: '/password/change**', access: ['IS_AUTHENTICATED_REMEMBERED']}
    - {pattern: '/user/create', access: ['IS_AUTHENTICATED_ANONYMOUSLY']}
    - {pattern: '/user/save', access: ['IS_AUTHENTICATED_ANONYMOUSLY']}
    - {pattern: '/user/**', access: ['IS_AUTHENTICATED_REMEMBERED']}
    - {pattern: '/my/**', access: ['IS_AUTHENTICATED_REMEMBERED']}
    - {pattern: '/j_spring_security_exit_user', access: ['IS_AUTHENTICATED_REMEMBERED']}
    - {pattern: '/j_spring_security_switch_user', access: ['ROLE_ADMIN', 'ROLE_SWITCH_USER']}
    - {pattern: '/admin/**', access: ['ROLE_ADMIN']}
为此:

interceptUrlMap: [
            {pattern: '/',               access: ['permitAll']},
            {pattern: '/error',          access: ['permitAll']},
            {pattern: '/index',          access: ['permitAll']},
            {pattern: '/index.gsp',      access: ['permitAll']},
            {pattern: '/shutdown',       access: ['permitAll']},
            {pattern: '/assets/**',      access: ['permitAll']},
            {pattern: '/**/js/**',       access: ['permitAll']},
            {pattern: '/**/css/**',      access: ['permitAll']},
            {pattern: '/**/images/**',   access: ['permitAll']},
            {pattern: '/**/favicon.ico', access: ['permitAll']},
            {pattern: '/login/**',       access: ['permitAll']},
            {pattern: '/logout/**',      access: ['permitAll']}
        ]

适用于3.1.2版本!非常感谢。适用于3.1.2版本!非常感谢。