Комментируемый плагин с Spring Security LDAP - PullRequest
1 голос
/ 21 апреля 2011

Я пытаюсь запустить комментируемый плагин с помощью плагина Spring Security Framework ldap от Burt Beckwith.

Я нашел похожую проблему здесь .

Похоже, единственное отличие состоит в том, что я использую LDAP, а в данных пользователя LDAP нет идентификатора или я его не вижу.

Я попытался установить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.)?

Ответы [ 3 ]

1 голос
/ 06 сентября 2011

Не используется комментарий, а подключаемый модуль spring-security-ldap.

Для меня это действительно простое решение для копирования и вставки:

Раствор на Граале Джира от Burt

0 голосов
/ 25 апреля 2011

Это дает мне следующую ошибку:

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Итак, вы предлагаете мне создать этот метод, чтобы получить значение идентификатора?И, соответственно, я предполагаю, что это означает, что мне нужно вставить пользователей ldap в базу данных для генерации идентификатора.

0 голосов
/ 22 апреля 2011

Используйте

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

или

{com.companyname.sec.User.findByUsername(org.springframework.security.core.context.SecurityContextHolder.context.authentication.principal.username)}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...