springSecurityService в файле resources.groovy grails? - PullRequest
0 голосов
/ 27 марта 2012

У меня проблемы с доступом к springSecurityService из файла resources.groovy, я пытаюсь загрузить настройку языкового стандарта пользователя и создать LocaleResolver

import User

beans = {
    localeResolver(org.springframework.web.servlet.i18n.SessionLocaleResolver) {
        def user = User.get(springSecurityService.principal.id)
        if (user?.settings?.locale) {
            defaultLocale = new Locale(user?.settings?.locale)
            java.util.Locale.setDefault(defaultLocale)
        }
    }
}

Спасибо, Мика

1 Ответ

2 голосов
/ 27 марта 2012

Ваш код выше не имеет большого смысла.В resources.groovy вы должны определить класс реализации бинов Spring и установить их зависимости.Похоже, вы пытаетесь написать класс реализации в resources.groovy.

Вместо этого вы должны написать свой собственный LocaleResolver класс

package org.example

class MyLocaleResolver extends AbstractLocaleResolver {

  def springSecurityService

  // implementation of methods omitted, because I haven't clue how you want to resolve Locales
}

Затем в resources.groovy определитеbean-компонент этого типа, который заменяет localeResolver bean

beans = {
    localeResolver(org.example.MyLocaleResolver) { 
        springSecurityService = ref('springSecurityService') 
    } 
}
по умолчанию
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...