Я пишу тесты для приложения, используя Spring Boot 3.1.2. В приложении включено CSRF, но авторизация в тестах не удается при включении CSRF, поэтому я хочу отключить его только для тестов. < /p>
@Bean
protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(auth -> auth
.requestMatchers(openUrls).permitAll()
.anyRequest().hasAuthority(applicationRoleKey))
.oauth2ResourceServer(oauth -> oauth
.jwt(jwt -> jwt.jwtAuthenticationConverter(jwtAuthenticationConverter())));
return http.build();
}
< /code>
Образец испытаний, который снят сбой (получить 406 вместо 400): < /p>
@Test
@WithMockUser(authorities = "user=admin")
void asAdmin_canGetPhoto() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/photo")).andExpect(status().isOk());
}
< /code>
Какой рекомендуемый способ отключить CSRF только для тестов? Я могу найти только решения, используя устаревшие версии Spring Security. < /P>
Спасибо за любое руководство! )
Я пишу тесты для приложения, используя Spring Boot 3.1.2. В приложении включено CSRF, но авторизация в тестах не удается при включении CSRF, поэтому я хочу отключить его только для тестов. < /p> [code]@Bean protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests(auth -> auth .requestMatchers(openUrls).permitAll() .anyRequest().hasAuthority(applicationRoleKey)) .oauth2ResourceServer(oauth -> oauth .jwt(jwt -> jwt.jwtAuthenticationConverter(jwtAuthenticationConverter()))); return http.build(); } < /code> Образец испытаний, который снят сбой (получить 406 вместо 400): < /p> @Test @WithMockUser(authorities = "user=admin") void asAdmin_canGetPhoto() throws Exception { mockMvc.perform(MockMvcRequestBuilders.get("/photo")).andExpect(status().isOk()); } < /code> Какой рекомендуемый способ отключить CSRF только для тестов? Я могу найти только решения, используя устаревшие версии Spring Security. < /P> Спасибо за любое руководство! ) [/code] к тестам.