Merge remote-tracking branch 'ztcloud/test' into dev
This commit is contained in:
@@ -270,18 +270,32 @@ public class FileController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String buildPublicBaseUrl(HttpServletRequest request) {
|
private String buildPublicBaseUrl(HttpServletRequest request) {
|
||||||
if (previewBaseUrl != null && !previewBaseUrl.isBlank()) {
|
// 1. 优先使用配置(必须是合法 http(s))
|
||||||
return previewBaseUrl.endsWith("/")
|
if (previewBaseUrl != null) {
|
||||||
? previewBaseUrl.substring(0, previewBaseUrl.length() - 1)
|
String v = previewBaseUrl.trim();
|
||||||
: previewBaseUrl;
|
if (!v.isEmpty() && (v.startsWith("http://") || v.startsWith("https://"))) {
|
||||||
|
return v.endsWith("/") ? v.substring(0, v.length() - 1) : v;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 兜底:从请求推断
|
|
||||||
String scheme = request.getHeader("X-Forwarded-Proto");
|
|
||||||
if (scheme == null) scheme = request.getScheme();
|
|
||||||
|
|
||||||
|
// 2. 从请求头推断 scheme(注意:多级代理会是 "http,http")
|
||||||
|
String scheme = request.getHeader("X-Forwarded-Proto");
|
||||||
|
if (scheme == null || scheme.isBlank()) {
|
||||||
|
scheme = request.getScheme();
|
||||||
|
} else {
|
||||||
|
scheme = scheme.split(",")[0].trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. 从请求头推断 host(同样可能是多值)
|
||||||
String host = request.getHeader("X-Forwarded-Host");
|
String host = request.getHeader("X-Forwarded-Host");
|
||||||
if (host == null) host = request.getHeader("Host");
|
if (host == null || host.isBlank()) {
|
||||||
if (host == null) host = request.getServerName() + ":" + request.getServerPort();
|
host = request.getHeader("Host");
|
||||||
|
}
|
||||||
|
if (host == null || host.isBlank()) {
|
||||||
|
host = request.getServerName() + ":" + request.getServerPort();
|
||||||
|
} else {
|
||||||
|
host = host.split(",")[0].trim();
|
||||||
|
}
|
||||||
|
|
||||||
return scheme + "://" + host;
|
return scheme + "://" + host;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -140,6 +140,11 @@ public class IWorkIntegrationServiceImpl implements IWorkIntegrationService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IWorkOperationRespVO createWorkflow(IWorkWorkflowCreateReqVO reqVO) {
|
public IWorkOperationRespVO createWorkflow(IWorkWorkflowCreateReqVO reqVO) {
|
||||||
|
// 检查是否传输了operatorId
|
||||||
|
String reqVOOperatorUserId = reqVO.getOperatorUserId();
|
||||||
|
if (!StringUtils.hasText(reqVOOperatorUserId)) {
|
||||||
|
throw ServiceExceptionUtil.exception(IWORK_SEAL_REQUIRED_FIELD_MISSING, "operatorUserId");
|
||||||
|
}
|
||||||
assertConfigured();
|
assertConfigured();
|
||||||
String appId = resolveAppId();
|
String appId = resolveAppId();
|
||||||
ClientKeyPair clientKeyPair = resolveClientKeyPair(appId, Boolean.TRUE.equals(reqVO.getForceRefreshToken()));
|
ClientKeyPair clientKeyPair = resolveClientKeyPair(appId, Boolean.TRUE.equals(reqVO.getForceRefreshToken()));
|
||||||
@@ -163,10 +168,16 @@ public class IWorkIntegrationServiceImpl implements IWorkIntegrationService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IWorkOperationRespVO createGenericWorkflow(IWorkGenericWorkflowCreateReqVO reqVO) {
|
public IWorkOperationRespVO createGenericWorkflow(IWorkGenericWorkflowCreateReqVO reqVO) {
|
||||||
|
// 检查是否传输了operatorId
|
||||||
|
String reqVOOperatorUserId = reqVO.getOperatorUserId();
|
||||||
|
if (!StringUtils.hasText(reqVOOperatorUserId)) {
|
||||||
|
throw ServiceExceptionUtil.exception(IWORK_SEAL_REQUIRED_FIELD_MISSING, "operatorUserId");
|
||||||
|
}
|
||||||
|
|
||||||
assertConfigured();
|
assertConfigured();
|
||||||
String appId = resolveAppId();
|
String appId = resolveAppId();
|
||||||
ClientKeyPair clientKeyPair = resolveClientKeyPair(appId, Boolean.TRUE.equals(reqVO.getForceRefreshToken()));
|
ClientKeyPair clientKeyPair = resolveClientKeyPair(appId, Boolean.TRUE.equals(reqVO.getForceRefreshToken()));
|
||||||
String operatorUserId = resolveOperatorUserId(reqVO.getOperatorUserId());
|
String operatorUserId = resolveOperatorUserId(reqVOOperatorUserId);
|
||||||
IWorkSession session = createSession(appId, clientKeyPair, operatorUserId, Boolean.TRUE.equals(reqVO.getForceRefreshToken()));
|
IWorkSession session = createSession(appId, clientKeyPair, operatorUserId, Boolean.TRUE.equals(reqVO.getForceRefreshToken()));
|
||||||
|
|
||||||
// 构建透传参数,将 workflowId 加入 payload
|
// 构建透传参数,将 workflowId 加入 payload
|
||||||
|
|||||||
Reference in New Issue
Block a user