mirror of
https://github.com/ONLYOFFICE/server.git
synced 2026-04-07 14:04:35 +08:00
[bug] Fix downloadFile for wopi; For bug https://bugzilla.onlyoffice.com/show_bug.cgi?id=66818
This commit is contained in:
@ -1613,6 +1613,14 @@ exports.downloadFile = function(req, res) {
|
||||
isInJwtToken = true;
|
||||
} else if (wopiClient.isWopiJwtToken(decoded)) {
|
||||
({url, headers} = wopiClient.getWopiFileUrl(ctx, decoded.fileInfo, decoded.userAuth));
|
||||
let filterStatus = yield wopiClient.checkIpFilter(ctx, url);
|
||||
if (0 === filterStatus) {
|
||||
//todo false? (true because it passed checkIpFilter for wopi)
|
||||
//todo use directIfIn
|
||||
isInJwtToken = true;
|
||||
} else {
|
||||
errorDescription = 'access deny';
|
||||
}
|
||||
} else if (!tenTokenEnableBrowser) {
|
||||
//todo token required
|
||||
if (decoded.url) {
|
||||
|
||||
@ -748,7 +748,8 @@ function checkFileInfo(ctx, wopiSrc, access_token, opt_sc) {
|
||||
}
|
||||
fillStandardHeaders(ctx, headers, uri, access_token);
|
||||
ctx.logger.debug('wopi checkFileInfo request uri=%s headers=%j', uri, headers);
|
||||
//todo false?
|
||||
//todo false? (true because it passed checkIpFilter for wopi)
|
||||
//todo use directIfIn
|
||||
let isInJwtToken = true;
|
||||
let getRes = yield utils.downloadUrlPromise(ctx, uri, tenDownloadTimeout, undefined, undefined, isInJwtToken, headers);
|
||||
ctx.logger.debug(`wopi checkFileInfo headers=%j body=%s`, getRes.response.headers, getRes.body);
|
||||
@ -969,6 +970,7 @@ function dummyOk(req, res) {
|
||||
res.sendStatus(200);
|
||||
}
|
||||
|
||||
exports.checkIpFilter = checkIpFilter;
|
||||
exports.discovery = discovery;
|
||||
exports.collaboraCapabilities = collaboraCapabilities;
|
||||
exports.parseWopiCallback = parseWopiCallback;
|
||||
|
||||
Reference in New Issue
Block a user