【问题标题】:Deadbolt issue in Play view播放视图中的死锁问题
【发布时间】:2012-04-04 13:12:16
【问题描述】:

我尝试限制(使用deadbolt)我认为(play! framework)中的某些东西,我必须传递一个参数,例如:

#{deadbolt.restrictedResource resourceKeys:['projectEdit'], resourceParameters:['projectId':'3'}

您注意到 3 是经过硬编码的(例如,它有效)。但我需要它是动态的,比如:

#{deadbolt.restrictedResource resourceKeys:['projectEdit'], resourceParameters:['projectId':${project.alias}]}

好吧,现在代码不再有效,但它会引发异常:

 Exception raised was MissingMethodException : No signature of method: Template_1012.$() is applicable for argument types: (Template_1012$_run_closure1_closure2) values: [Template_1012$_run_closure1_closure2@370c488c] Possible solutions: _(java.lang.String), is(java.lang.Object), run(), run(), any(), get(java.lang.String).

你知道为什么会这样吗?

【问题讨论】:

    标签: playframework deadbolt


    【解决方案1】:

    在我的脑海中,尝试引用它:

    #{deadbolt.restrictedResource resourceKeys:['projectEdit'], resourceParameters:['projectId':'${project.alias}']}
    

    让我知道这是否有效,如果需要,我们可以从那里获取。

    【讨论】:

    • 谢谢,但它不起作用,它作为字符串出现在代码中:${project.alias}...我找到的解决方法是从当前 url 获取我的项目别名...跨度>
    • 您已经在评估范围内,因此不需要 ${} - 因此请尝试以下操作之一:#{deadbolt.restrictedResource resourceKeys:['projectEdit'], resourceParameters: ['projectId':project.alias]} 或 #{deadbolt.restrictedResource resourceKeys:['projectEdit'], resourceParameters:['projectId':'' + project.alias]}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多