У вас есть импорт для SecurityContextHolder в Spring Security, но вы используете стандартный держатель запросов Grails. Если вы используете плагин Acegi, то есть фильтр, который устанавливает запрос в ThreadLocal под управлением org.codehaus.groovy.grails.plugins.springsecurity.SecurityRequestHolder, так что это будет работать:
import org.codehaus.groovy.grails.plugins.springsecurity.SecurityRequestHolder as SRH
class MyCommand {
def someMethod() {
def session = SRH.request.session
}
}
Обратите внимание, что это должно быть в методе, так как класс команд будет создан один или несколько раз при запуске для инициализации, поэтому вам необходимо получить доступ к сеансу и запросу только во время выполнения HTTP-запроса