2011-04-21 79 views
1

我试图从Burt Beckwith中获得与spring安全框架ldap插件一起运行的可评论插件。Spring Security 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是一个长期的,我不认为这是正确的选择。那么,是否有办法配置grails.commentable.poster.evaluator来让这两个插件一起工作,还是需要修改其中的一个来获得兼容的类型(即将可评论的插件更改为使用字符串,然后从LDAP用户详细信息中获取用户名。)?

回答

0

使用

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

{com.companyname.sec.User.findByUsername(org.springframework.security.core.context.SecurityContextHolder.context.authentication.principal.username)} 
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。

+0

挖些后,我结束了修改Commentable插件。似乎唯一的解决方案是要么坚持我的LDAP用户数据库生成一个ID,或修改注释插件使用用户名而不是ID的工作。我选择了后一种选择,只是因为这是一个相对微不足道的变化。 – Tony 2011-05-03 13:07:50

相关问题