Как настроить Spring Boot WebTestClient в приложении сервлета для работы с входом в систему OAuth 2.0JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как настроить Spring Boot WebTestClient в приложении сервлета для работы с входом в систему OAuth 2.0

Сообщение Anonymous »

У меня есть несколько интеграционных тестов, которые используют WebTestClient в приложении Servlet Spring Boot.

Код: Выделить всё

@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@ActiveProfiles("test")
public class IntegrationTest {

@Autowired
protected WebTestClient webClient;

public void test() {
webClient
.get()
.uri("api/v1/tasks")
.exchange()
.expectStatus().isOk();

}
}
Я добавил безопасность, используя функцию входа в систему Spring Security OAuth 2:

Код: Выделить всё

@Configuration
@EnableWebSecurity
public class SecurityConfigurer {
@Bean
SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
// ...

http.authorizeHttpRequests(c -> c
.requestMatchers(GET, URL_V1_API_DOCS + "/**").permitAll()
.requestMatchers(URL_V1_BASE + "/**").authenticated()
.anyRequest().denyAll());

http
.oauth2Login(withDefaults());
// ...

return http.build();
}
}
Приложение работает нормально, и я могу войти в систему, используя сервер аутентификации Keycloak, настроенный в application.properties.
Однако мне не удается интегрировать безопасность в моих тестах. В документации Spring Security я вижу поддержку mockOidcLogin при использовании WebTestClient в реактивном приложении или MockMvc в приложении сервлета. Тем не менее, я не нашел никакой информации при использовании WebTestClient для приложения сервлета.
Я не возражаю, если он использует либо издевающегося пользователя, либо с помощью реальный вход в систему с использованием тестового контейнера Keycloak.

Подробнее здесь: https://stackoverflow.com/questions/787 ... to-work-wi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»