После выпуска Spring Security 4 и улучшенной поддержки тестирования я хотел обновить текущие тесты ресурсов oauth2 для защиты Spring.
В настоящее время у меня есть вспомогательный класс, который устанавливает OAuth2RestTemplate
с помощью ResourceOwnerPasswordResourceDetails
с тестом ClientId
, подключающимся к фактическому AccessTokenUri
, чтобы запросить действительный токен для моих тестов. Этот resttemplate затем используется для запросов в моем @WebIntegrationTest
s.
Я хотел бы отказаться от зависимости от фактического AuthorizationServer и использовать действительные (если ограниченные) учетные данные пользователя в своих тестах, воспользовавшись новой поддержкой тестирования в Spring Security 4.
До сих пор все мои попытки использовать @WithMockUser
, @WithSecurityContext
, SecurityMockMvcConfigurers.springSecurity()
и SecurityMockMvcRequestPostProcessors.*
не смогли выполнить аутентифицированные вызовы через MockMvc
, и я не могу найти таких рабочих примеров в Spring примеры проектов.
Может ли кто-нибудь помочь мне протестировать мой сервер ресурсов oauth2 с каким-то издеваемыми учетными данными, все еще проверяя введенные ограничения безопасности?
** РЕДАКТИРОВАТЬ ** Пример кода можно найти здесь: https://github.com/timtebeek/resource-server-testing Для каждого из тестовых классов я понимаю, почему это не сработает, но я ищу способы, которые позволили бы мне легко проверить настройку безопасности.
Теперь я думаю о создании очень разрешительного OAuthServer под src/test/java
, что может немного помочь. Есть ли у кого-нибудь другие предложения?