Как аутентифицировать пользователя с помощью Spring Security в модульных тестах

Я использую подключаемый модуль Spring Security Core (1.2.7) с Grails 2.0

Допустим, у меня есть контроллер с методом, который использует аннотацию @Secured.

class ArticleController {
    def springSecurityService

    @Secured(['ROLE_PREMIUM_USER'])
    def listPremium() { 
        render 'premium content'
    }
}

В своем модульном тесте я хотел бы проверить, может ли пользователь с ролью 'ROLE_PREMIUM_USER' видеть содержимое метода listPremium. Как я могу это сделать?

Я знаю, что это должно начинаться следующим образом:

@TestFor(ArticleController)
@Mock([SpringSecurityService])
class ArticleControllerTests {
    void testListPremium() {
    defineBeans {
        springSecurityService(SpringSecurityService)
    }
         //but how to login the user here in order to see premium content?

        controller.listPremium()
        assert response.text() == 'premium content'
    }
}

Я не уверен, как я могу аутентифицировать пользователя или имитировать действие, которое проверяет ROLE_PREMIUM_USER. Любая помощь?

10
задан Bart 8 May 2012 в 23:15
поделиться