Grails: Оценщик пользователя для подключаемого модуля Spring Security - PullRequest
3 голосов
/ 22 августа 2010

Я пытаюсь использовать комментируемый плагин с Spring Security.

Я не могу написать правильно

grails.commentable.poster.evaluator

Я пытался {User.get (springSecurityService.principal.id)}, но из CommentController пользователь и SpringSecurity кажутся недоступными.

Что мне делать?

Ответы [ 2 ]

4 голосов
/ 22 августа 2010

Для springSecurityService.principal.id, поскольку для springSecurityService нет поля ввода зависимости, оно не может работать, поэтому вам нужно вызвать то, что springSecurityService.principal.id вызывает - org.springframework.security.core.context.SecurityContextHolder.context.authentication.principal.id

Чтобы исправить проблему с пользователем, вам понадобится полное имя класса с пакетом. В совокупности это должно быть

{com.yourcompany.yourapp.User.get(org.springframework.security.core.context.SecurityContextHolder.context.authentication.principal.id)}
3 голосов
/ 19 января 2012

Я адаптировал Ответ Берта так, чтобы он не выдавал исключение, если никто не вошел в систему

grails.commentable.poster.evaluator = {

    def principal = org.springframework.security.core.context.SecurityContextHolder.context.authentication?.principal

    if (principal?.hasProperty('id')) {

        def currentUserId = principal.id
        if (currentUserId) {
            com.yourcompany.yourapp.User.get(currentUserId)
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...