作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚开始使用 Grails,并且正在尝试配置 spring-security-acl 插件。我一直在关注official plugin tutorial但是在尝试运行我的应用程序时无法通过引导阶段(使用 Position
域类而不是 Report
类。我的大多数问题都围绕着应用程序的 ACL 部分。
我无法解决的问题是 grantPermissions()
Bootstrap.groovy
的功能.根据教程的说明,按功能开始是这样的:
private void grantPermissions() {
def positions = []
100.times {
long id = it + 1
def position = new Position(title: "position$id").save()
positions << position
aclService.createAcl(
objectIdentityRetrievalStrategy.getObjectIdentity(position))
}
aclService.createAcl
上警告我行它“无法推断参数类型。此检查报告具有不兼容类型的分配。”事实上,如果我仍然尝试运行该应用程序,它会在该行崩溃并出现错误:
| Error 2013-03-09 09:35:24,207 [localhost-startStop-1] ERROR context.GrailsContextLoader - Error initializing the application: Cannot get property 'id' on null object
Message: Cannot get property 'id' on null object
Line | Method
->> 68 | doCall in BootStrap$_grantPermissions_closure4
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 63 | grantPermissions in BootStrap
| 29 | doCall . . . . . . . . . . . . . in BootStrap$_closure1
...
Position
域对象如下所示:
class Position {
String title
Boolean draft
static constraints = {
}
}
def acl = aclUtilService.readAcl(position)
// Remove all permissions associated with this particular
// recipient (string equality to KISS)
acl.entries.eachWithIndex { entry, i ->
if (entry.sid.equals(position) &&
entry.permission.equals(permission)) {
acl.deleteAce i
}
}
deleteAce
在通用
acl
目的;我可以通过指定类型
MutableAcl
来解决这个问题如在
MutableAcl acl = aclUtilService.readAcl(position)
最佳答案
所有属性都有一个隐含的 nullable:false
约束,但您只设置 title
属性(property)。 draft
未设置,因此验证失败,您的所有 Position
s 为空。
这应该有效:
def position = new Position(title: "position$id", draft: false).save()
关于grails - 如何在 Spring-Security-Acl 中创建 ACL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15312496/
我是一名优秀的程序员,十分优秀!