如何使苹果 iap 服务器通知端点安全

how to make apple iap server notification endpoint security

现在我在 spring 引导项目中定义一个端点来接收苹果服务器通知:

@Api
@RequestMapping("/post/notification")
@FeignClient(name = "dolphin-post-service")
@Validated
public interface IAppleServerNotificationController {

    /**
     * Receive Apple Server Notification
     * @param
     * @return
     */
    @PostMapping("/v1/appleSeverNotification")
    Response<Integer> handleNotification(@RequestBody ServerNotificationRequest request);
}

请求:

@Data
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class ServerNotificationRequest implements Serializable {

    @ApiModelProperty(value = "responseBody")
    private String responseBody;

}

但是我服务器端的 api 有调用权限,现在我面临的问题是:如果我有 api 的权限,苹果服务器无法调用,因为苹果服务器没有实施 auth 2.0 从我的服务器获取 accessToken。如果我删除端点的身份验证,这意味着任何人只要知道地址就可以调用端点。

那么我应该怎么做才能使端点安全并允许苹果调用?我应该保持端点不是 public 吗?但有些工具会嗅探 url 我认为。我该怎么办?

现在我在服务器端验证共享密钥是这样的:

    @Override
    @NoCheck
    public Response handleNotification(ServerNotificationRequest request) {
        if (!SHARED_SECRET.equals(request.getSharedSecret())) {
            log.error("illegal invoke:" + JSON.toJSONString(request));
            return new Response();
        }
        saveNotification(request);
        return new Response<>();
    }