Skip to content

Commit efc5e5f

Browse files
committed
修复propfind depth问题
1 parent 9a2c4bb commit efc5e5f

3 files changed

Lines changed: 21 additions & 8 deletions

File tree

dist/webdav-cli.server.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,16 @@ class WebdavCli {
110110
console.log({ method, url }, headers);
111111
next();
112112
});
113+
server.beforeRequest((arg, next) => {
114+
const { headers, method } = arg.request;
115+
const { depth } = headers;
116+
if (method === 'PROPFIND' && depth !== '0' && depth !== '1') {
117+
arg.setCode(403);
118+
arg.exit();
119+
} else {
120+
next();
121+
}
122+
});
113123
server.afterRequest((arg, next) => {
114124
const log = `>> ${arg.request.method} ${arg.requested.uri} > ${arg.response.statusCode} ${arg.response.statusMessage}`;
115125
console.log(log);

package.json

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"registry": "https://registry.npmjs.com"
55
},
66
"name": "@masx200/webdav-cli",
7-
"version": "2.0.0",
7+
"version": "2.0.1",
88
"description": "A simple zero-configuration command-line webdav server",
99
"license": "MIT",
1010
"keywords": [
@@ -13,12 +13,6 @@
1313
"webdav",
1414
"server"
1515
],
16-
"files": [
17-
"dist",
18-
"certs",
19-
"index.js",
20-
"index.d.ts"
21-
],
2216
"bin": {
2317
"webdav-cli": "dist/webdav-cli.cli.js"
2418
},

src/webdav-cli.server.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,16 @@ export class WebdavCli {
139139
console.log({ method, url }, headers);
140140
next();
141141
});
142-
142+
server.beforeRequest((arg, next) => {
143+
const { headers, method } = arg.request;
144+
const { depth } = headers;
145+
if (method === 'PROPFIND' && depth !== '0' && depth !== '1') {
146+
arg.setCode(403);
147+
arg.exit();
148+
} else {
149+
next();
150+
}
151+
});
143152
server.afterRequest((arg, next) => {
144153
const log = `>> ${arg.request.method} ${arg.requested.uri} > ${arg.response.statusCode} ${arg.response.statusMessage}`;
145154
// server.emit('log', null, null, '/', log);

0 commit comments

Comments
 (0)