带有Spring Security LDAP的可注释插件

时间:2011-04-21 19:56:45

标签: grails-plugin spring-ldap

我正在尝试使用Burt Beckwith的spring security framework ldap插件运行可评估的插件。

我发现了类似的问题here

唯一的区别似乎是我使用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让这两个插件一起工作,或者我是否需要修改其中一个以获得兼容类型(即将可注释的插件更改为使用String,然后从LDAP用户详细信息中获取用户名。)?

3 个答案:

答案 0 :(得分:1)

不使用commentable但是使用spring-security-ldap插件。

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

Solution on Grails Jira by Burt

答案 1 :(得分:0)

使用

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

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

答案 2 :(得分: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。