Имитация пользователя Grails Spring Security, вошедшего в систему

Ищете способ издеваться над весенней безопасностью в некоторых модульных/интеграционных тестах.

  • Граали :V2.1.0
  • Ядро безопасности Spring :V1.2.7.3

Контроллер имеет следующее:

// some action
def index(){
   def user = getLoggedInUser()
   render....
}
...

private getLoggedInUser(){
    return User.get(springSecurityService.principal.id)
}

Я пробовал следующие и другие способы, но не вижу, как заставить его работать:

void testSomething(){
    def dc = new SomeController()
    dc.springSecurityService = [
            encodePassword: 'password',
            reauthenticate: { String u -> true},
            loggedIn: true,
            principal: [username:"Bob"]]
    dc.index() 
   ... assertion....

Кажется, что пользователь не создается и не может получить principal.id. Любые предложения или лучшие альтернативы?

5
задан Tung 10 April 2019 в 10:35
поделиться