【发布时间】:2022-11-13 17:11:28
【问题描述】:
我有一个带有 cors 过滤器的应用程序,它只允许某些来源。
@Configuration
public class WebConfiguration {
@Value("${allowed.origins}")
private String[] allowedOrigins;
private String[] allowedMethods = {"GET","HEAD","OPTIONS","POST","PUT","DELETE"};
@Bean
public FilterRegistrationBean corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedHeader("*");
config.setAllowedMethods(Arrays.asList(allowedMethods));
config.setAllowedOrigins(Arrays.asList(allowedOrigins));
source.registerCorsConfiguration("/**", config);
FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
bean.setOrder(0);
return bean;
}
}
我还有一个控制器需要从无源调用(从框架没有任何来源)。
@PostMapping("/start-payment")
@CrossOrigin
public ResponseEntity<?> startPayment(@RequestParam Double amount) {
String jwt = cybersourcePaymentService.initiatePayment(amount);
return ResponseEntity.ok(jwt);
}
有没有办法只允许从 WebConfiguration 中未提及的源调用此方法?
【问题讨论】:
标签: java spring spring-boot iframe cors