Ниже приведен мой класс конфигурации безопасности Spring:
Код: Выделить всё
@Configuration
@EnableWebSecurity
public class SecurityConfiguration {
@Bean
public SecurityFilterChain apiFilterChain(HttpSecurity http) throws Exception {
http.csrf(AbstractHttpConfigurer::disable)
.authorizeHttpRequests(authorize -> authorize.anyRequest().permitAll()) // Allow all requests
.httpBasic(Customizer.withDefaults())
.cors(httpSecurityCorsConfigurer -> httpSecurityCorsConfigurer.configurationSource(corsConfigurationSource()))
.sessionManagement(sessionManagement -> sessionManagement.sessionCreationPolicy(SessionCreationPolicy.STATELESS));
return http.build();
}
@Bean
CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(List.of("http://mywebsite.com","https://mywebsite.com"));
configuration.setAllowedHeaders(Arrays.asList("Access-Control-Allow-Origin", "Origin"));
configuration.setAllowedMethods(Arrays.asList("GET","POST","DELETE","PUT"));
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
}
Код: Выделить всё
@RestController
@RequestMapping("/cars")
public class CarController {
private final CarService carService;
public CarController(CarService carService) {
this.carService = carService;
}
@PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public Mono saveCar(@RequestBody Car car) {
return carService.saveCar(car);
}
@DeleteMapping("/{carId}")
public Mono deleteCar(@PathVariable String carId) {
return carService.deleteCar(carId);
}
@GetMapping
public Flux findAllCars() {
return carService.findALlCars();
}
@GetMapping("/city/{city}")
public Flux findCarsByCity(@PathVariable String city) {
return carService.findCarsByCity(city);
}
}
Код: Выделить всё
runtime: java17
instance_class: F1
Дополнительные журналы:
- Заголовки запросов:
[img]https:/ /i.stack.imgur.com/s453V.png[/img] - Заголовки ответов:

Подробнее здесь: https://stackoverflow.com/questions/782 ... app-engine