2017-07-28 40 views
0

Iam在我的grails 3.2.7应用程序中使用spring-security-core 3.1.1。我只是想访问我projectconfiguration.gsp,为了这个,我添加了以下映射urlMapping中在grails中的URL访问被拒绝spring-security

"/confproject"(view: '/project/projectconfiguration') 

但它显示为您无权访问此页面

我知道这事因为我没有为这个URL指定任何访问规则。所以我在application.groovy中添加了以下行:

grails.plugin.springsecurity.controllerAnnotations.staticRules = [ [pattern: '/confproject', access: ['ROLE_ADMIN']] ] 

但是仍然面临未经授权的访问消息。

为什么上面的访问规则是注释工作?

我知道如果我通过控制器访问GSP,并给该控制器添加@Secured注释将可以正常工作。

但这是唯一的方法吗?

注意:我不想使用interceptUrlMap方法。

+0

首先,你必须在静态映射语法错误 - 你缺少等号 - 使用它像grails.plugin.springsecurity。 controllerAnnotations.staticRules = [] - 并确保您使用的用户具有ADMIN角色。还要确保在/ confproject之前没有另外的安全规则/ **它也会覆盖/ confproject –

+0

抱歉失踪=符号是一个错字,我更新了这个问题。我正在使用具有ADMIN角色的用户,并且在我的规则之上没有//confproject之类的规则,例如/ **。 –

+0

尝试'/ confproject/**',作为你的模式 –

回答

0

这是为我工作。

UrlMappings.groovy

"/newsletter"(view: "/pages/newsletter") 

application.groovy

grails.plugin.springsecurity.controllerAnnotations.staticRules = [ 
    ... 
    [pattern: '/pages/**', access: ['permitAll']], 
    ... 
]