刘光辉
4 小时以前 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
package jnpf.dmsEntity.compare;
 
import jnpf.dmsEntity.preview.vo.DmsFilePreviewTicketVO;
import jnpf.util.JsonUtil;
import lombok.Data;
import java.util.UUID;
 
/** Server-side pair binding; never accept two unrelated preview tickets from the browser. */
@Data
public class DmsCompareTicket {
    public static final String SCOPE = "dms:onlyoffice:compare";
    private String scope = SCOPE;
    private String tenantId;
    private String userId;
    private UUID documentId;
    private DmsFilePreviewTicketVO historical;
    private DmsFilePreviewTicketVO current;
    private String historicalLabel;
    private String currentLabel;
    private long expiresAt;
 
    public static DmsCompareTicket fromRaw(Object raw) {
        if (!(raw instanceof String)) throw new IllegalArgumentException("比较票据无效");
        DmsCompareTicket ticket = JsonUtil.getJsonToBean((String) raw, DmsCompareTicket.class);
        if (ticket == null || !SCOPE.equals(ticket.scope) || ticket.expiresAt <= System.currentTimeMillis()
                || ticket.documentId == null || ticket.tenantId == null || ticket.userId == null
                || ticket.current == null || ticket.historical == null) {
            throw new IllegalArgumentException("比较票据无效或已过期");
        }
        return ticket;
    }
}