我已经在我的一个项目中实现了Grails acl。现在尝试在另一个项目中重用它。为此,我已经完成了要实施的ACL的所有必要配置。之后,我创建了一个名为“stock”的 Controller ,并尝试调用它的“index”操作来查看股票的索引页面。

因此,我通过以下两种方式在所需页面中创建了一个链接

<a href="${createLink(uri: '/Stock')}">stock</a>
<g:link controller="Stock" action="index">stock</g:link>

但是问题是,尽管在“stock” Controller 中未使用grails acl批注,但始终单击链接时总是转到/ login / auth而不是stock / index操作。因此库存 Controller 独立于身份验证。

可能是什么问题?

最佳答案

可能您正在使用带有Config.groovy中定义的URL访问ACL的spring-security插件:

grails.plugin.springsecurity.controllerAnnotations.staticRules = [
'/':                              ['permitAll'],
'/index':                         ['permitAll'],
'/index.gsp':                     ['permitAll'],
'/**/js/**':                      ['permitAll'],
'/**/css/**':                     ['permitAll'],
'/**/images/**':                  ['permitAll'],
'/**/favicon.ico':                ['permitAll']]

如果此处未定义url,则需要身份验证。新增中
'/stock/**':['permitAll']在该图中是解决方案。

08-28 23:34