Spring Boot 流程引擎服务:流程定义/实例/任务、审批人解析、 回调分发、oapi 接口及单元测试。 保留远程 .gitea/workflows/build.yml 与 docker/Dockerfile, 新增 .gitignore 排除 target/ 构建产物。
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
package com.yunhai.flowcenter.config;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.web.cors.CorsConfiguration;
|
||||
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
|
||||
import org.springframework.web.filter.CorsFilter;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
||||
/**
|
||||
* 本地开发跨端口 CORS(V2.0 拍板项#2):办事大厅 front(8087)/本应用 front(8088) 直调
|
||||
* /api/flow/* 属跨端口请求,需带凭据的 CORS 头(CAS cookie 不隔离端口,免二次登录成立的前提)。
|
||||
* 同主域生产无跨端口问题,配置 allowed-origins 置空即整体关闭。
|
||||
*/
|
||||
@Configuration
|
||||
public class FlowCorsConfiguration {
|
||||
|
||||
public FlowCorsConfiguration(
|
||||
@Value("${flow-center.cors.allowed-origins:}") String allowedOrigins) {
|
||||
this.allowedOrigins = allowedOrigins;
|
||||
}
|
||||
|
||||
private final String allowedOrigins;
|
||||
|
||||
@Bean
|
||||
public FilterRegistrationBean<CorsFilter> flowCorsFilter() {
|
||||
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
|
||||
CorsConfiguration config = new CorsConfiguration();
|
||||
if (allowedOrigins != null && !allowedOrigins.trim().isEmpty()) {
|
||||
config.setAllowedOrigins(Arrays.asList(allowedOrigins.split("\\s*,\\s*")));
|
||||
config.setAllowedMethods(Collections.singletonList("*"));
|
||||
config.setAllowedHeaders(Collections.singletonList("*"));
|
||||
config.setAllowCredentials(true);
|
||||
// 只对用户面生效;/oapi/* 是应用签名调用,不经浏览器
|
||||
source.registerCorsConfiguration("/api/**", config);
|
||||
}
|
||||
FilterRegistrationBean<CorsFilter> bean = new FilterRegistrationBean<>(new CorsFilter(source));
|
||||
bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
|
||||
return bean;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user