Grails 是否正在覆盖URL映射?

Grails 是否正在覆盖URL映射?,grails,spring-security,Grails,Spring Security,我正在开发一个使用Grails的大型web应用程序,我们正在尝试实现角色安全性的使用。当系统建立时,grails基本上授予CAS认证用户完全角色访问权,但当我为每个控制器方法创建特定角色时,它完全忽略了角色,继续允许认证用户完全访问 下面是我在Config.groovy中所做的: grails.plugins.springsecurity.securityConfigType = SecurityConfigType.InterceptUrlMap grails.plugins.springse

我正在开发一个使用Grails的大型web应用程序,我们正在尝试实现角色安全性的使用。当系统建立时,grails基本上授予CAS认证用户完全角色访问权,但当我为每个控制器方法创建特定角色时,它完全忽略了角色,继续允许认证用户完全访问

下面是我在Config.groovy中所做的:

grails.plugins.springsecurity.securityConfigType = SecurityConfigType.InterceptUrlMap
grails.plugins.springsecurity.interceptUrlMap = [
    "/controllerName/create":                       [ "hasRole( 'ROLE_CREATE' )" ],
    "/controllerName/remove":                       [ "hasRole( 'ROLE_DELETE' )" ],
    "/controllerName/listEntries":                  [ "hasRole( 'ROLE_VIEW' )" ],
    "/controllerName/listAllEntries":               [ "hasRole( 'ROLE_VIEW' )" ],
    "/controllerName/getDefaultCategories":         [ "hasRole( 'ROLE_VIEW' )" ]
]
UrlConfig.google没有controllerName的条目


当应用程序调用controllerName中的create、remove或其他服务时,用户是否具有指定的角色并不重要。这就像没有映射一样

是否可能有其他设置正在覆盖interceptUrlMap?如果是,我应该从哪里开始寻找

我应该提到,我们必须使用Grails1.3.8


更新:我尝试了下面提到的小写的东西,但还是失败了。但是,如果我只是做了一个顶级(“/controllername/**”)控制器条目(与在控制器中指定操作相反,它限制了访问。不幸的是,我们想做“/controllername/create”类型的安全性。有什么想法吗?

URL必须是小写的,启动时应该会有一个警告。将“controllername”更改为“controllername”、“ListalEntries”到“ListalEntries”等等。

必须是这样的,下面是我的示例:
请注意,*表示控制器内的所有操作

grails.plugins.springsecurity.interceptUrlMap = [
   '/secure/create':    ['ROLE_ADMIN'],
   '/finance/***':   ['ROLE_FINANCE', 'IS_AUTHENTICATED_FULLY'],
   '/js/**':        ['IS_AUTHENTICATED_ANONYMOUSLY'],
   '/css/**':       ['IS_AUTHENTICATED_ANONYMOUSLY'],
   '/images/**':    ['IS_AUTHENTICATED_ANONYMOUSLY'],
   '/*':            ['IS_AUTHENTICATED_ANONYMOUSLY'],
   '/login/**':     ['IS_AUTHENTICATED_ANONYMOUSLY'],
   '/logout/**':    ['IS_AUTHENTICATED_ANONYMOUSLY']
]

Burt,这在Grails 2.0和Spring Security Core 1.2.7.3中是真的吗?我的interceptUrlMap中有一个驼峰大小写,我似乎没有任何问题。根据这一页,这仍然是Config.groovy的一个有效要求。我现在就试试……更新:我尝试了小写,但仍然失败了。但是,如果我只是做了一个顶级(“/controllername/**)控制器条目(与在控制器内指定操作相反,它限制了访问。不幸的是,我们希望执行“/controllername/create”类型的安全性。有什么想法吗?Burt,我们可以允许通配符访问interceptUrlMap吗?我的问题如下:用户是否具有指定的角色并不重要。它只是表现为没有映射”-很抱歉,但到底发生了什么?您得到了404,或者您无法通过403错误访问页面?该方法功能正常。没有错误。当您说“请注意,[星号]表示所有操作”时,您的意思是键入三(3)吗星号?(如您在/finance/***示例中所示)?