1

我试图让可评论的插件与 Burt Beckwith 的 spring 安全框架 ldap 插件一起运行。

我在这里发现了类似的问题。

唯一的区别似乎是我使用的是 LDAP,而 LDAP 用户详细信息没有 ID,或者我没有看到它。

我尝试将 grails.commentable.poster.evaluator 设置为

{com.companyname.sec.User.get(org.springframework.security.core.context.SecurityContextHolder.context.authentication.principal.id)}

并且还要

{com.companyname.sec.User.get(principal.id)}

我在上面提到的另一个问题中提出了这两个问题。我得到的是以下错误:

groovy.lang.MissingPropertyException: No such property: id for class: org.springframework.security.ldap.userdetails.LdapUserDetailsImpl

可能的解决方案:dn

这似乎建议使用 dn 字段,但由于这是一个字符串,并且 id 是一个 Long,我认为这不是正确的选择。那么,有没有办法配置 grails.commentable.poster.evaluator 让这两个插件一起工作,或者我需要修改其中一个以获得兼容的类型(即将可评论插件更改为使用字符串,然后从 LDAP 用户详细信息中获取用户名。)?

4

3 回答 3

1

不使用可评论但 spring-security-ldap 插件。

对我来说,这个非常简单的复制和粘贴解决方案有效:

Burt 的 Grails Jira 解决方案

于 2011-09-06T16:07:41.450 回答
0

这给了我以下错误:

org.grails.comments.CommentException: No [grails.commentable.poster.evaluator] setting defined or the evaluator doesn't evaluate to an entity. Please define the evaluator correctly in grails-app/conf/Config.groovy or ensure commenting is secured via your security rules

我读到这意味着没有 findByUsername 方法。那么,您是否建议我创建该方法以获得 id 值?我相应地假设,这意味着我需要将 ldap 用户插入数据库以生成一个 id。

于 2011-04-25T13:39:38.200 回答
0

利用

{com.companyname.sec.User.findByUsername(principal.username)}

或者

{com.companyname.sec.User.findByUsername(org.springframework.security.core.context.SecurityContextHolder.context.authentication.principal.username)}
于 2011-04-21T21:35:13.847 回答