gpt4 book ai didi

grails - 如何在 Spring-Security-Acl 中创建 ACL

转载 作者:行者123 更新时间:2023-12-02 15:11:03 25 4
gpt4 key购买 nike

我刚刚开始使用 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))
}

IntelliJ 在 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 = {
}
}

我不认为这个问题是相关的,但它是与教程的 ACL 相关的偏差,所以为了后代......我(我认为)我已经解决的第一个问题是在 PositionService.groovy 中,我在代码块上的 IntelliJ 中遇到错误:
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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com