package com.yunhai.flowcenter.controller.open; import com.yunhai.flowcenter.entity.FlwInstance; import com.yunhai.flowcenter.model.FlowModels; import com.yunhai.flowcenter.repository.FlwDefRepository; import com.yunhai.flowcenter.repository.FlwInstanceRepository; import com.yunhai.flowcenter.service.DiagramImageService; import com.yunhai.flowcenter.service.DiagramTokenService; import com.yunhai.flowcenter.service.FlowDiagramService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; /** * 免签图片流端点(/open/flow/**,用户拍板 2026-09-16,"CAS 验证码式"嵌入)。 *
* 故意不落 /api/**(CAS 会话)也不落 /oapi/**(app-sign):<img src> 两者都带不了鉴权头;
* 免签资格由 10 分钟短时 token 承担(DiagramTokenService,token 由 app-sign 的
* GET /oapi/flow/diagram/url 签发)。token 分发点之外,本端点不接受任何业务参数直接定位——
* 免签面收窄到"只认 token",定位与可见性全在签发侧(OapiFlowService.diagramUrl)完成。
*/
@Slf4j
@RestController
@RequestMapping("/open/flow")
@RequiredArgsConstructor
public class OpenDiagramImageController {
private final DiagramTokenService tokenService;
private final DiagramImageService imageService;
private final FlwInstanceRepository instanceRepository;
private final FlwDefRepository defRepository;
private final FlowDiagramService diagramService;
@GetMapping("/diagram/img")
public ResponseEntity