刘光辉
5 小时以前 06f314545ac3514d7ce28939920866ae8188d31c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package jnpf.bizcommon.onlyoffice.controller;
 
import cn.dev33.satoken.same.SaSameUtil;
import jnpf.base.ActionResult;
import jnpf.bizcommon.onlyoffice.service.impl.OnlyOfficePageWatermarkRenderer;
import jnpf.onlyoffice.PageWatermarkApi;
import jnpf.onlyoffice.PageWatermarkRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
@RequiredArgsConstructor
public class OnlyOfficePageWatermarkController implements PageWatermarkApi {
    private final OnlyOfficePageWatermarkRenderer renderer;
 
    @Override
    @PostMapping("/Internal/onlyoffice/page-watermark/render")
    public ActionResult<byte[]> render(@RequestBody PageWatermarkRequest request) {
        SaSameUtil.checkCurrentRequestToken();
        return ActionResult.success(renderer.render(request));
    }
 
    /** Fixed code without a ticket; job data requires its own short-lived, scope-checked ticket. */
    @GetMapping(value = "/onlyoffice/watermark/script.js", produces = "application/javascript")
    public String script(@RequestParam(required = false) String jobTicket, jakarta.servlet.http.HttpServletResponse response) {
        response.setHeader("Cache-Control", "no-store");
        return renderer.script(jobTicket);
    }
}