feat: 提交流程中心后端代码
build / build-push (push) Successful in 28s

Spring Boot 流程引擎服务:流程定义/实例/任务、审批人解析、
回调分发、oapi 接口及单元测试。
保留远程 .gitea/workflows/build.yml 与 docker/Dockerfile,
新增 .gitignore 排除 target/ 构建产物。
This commit is contained in:
chenxing
2026-09-15 10:42:56 +08:00
parent 0296b2b5dd
commit c1103aeb29
65 changed files with 7119 additions and 0 deletions
@@ -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;
}
}