Skip to content

Commit 7c97516

Browse files
committed
Fix schema issue with cors
1 parent 4572b20 commit 7c97516

File tree

2 files changed

+10
-34
lines changed

2 files changed

+10
-34
lines changed

backend/lib/access.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ module.exports = function (token_string) {
268268
let permissionSchema = {
269269
$async: true,
270270
$id: 'permissions',
271+
type: 'object',
271272
additionalProperties: false,
272273
properties: {}
273274
};
@@ -277,7 +278,6 @@ module.exports = function (token_string) {
277278
const ajv = new Ajv({
278279
verbose: true,
279280
allErrors: true,
280-
missingRefs: 'fail',
281281
breakOnError: true,
282282
coerceTypes: true,
283283
schemas: [

backend/lib/express/cors.js

Lines changed: 9 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,16 @@
1-
const validator = require('../validator');
2-
31
module.exports = function (req, res, next) {
4-
52
if (req.headers.origin) {
6-
7-
const originSchema = {
8-
oneOf: [
9-
{
10-
type: 'string',
11-
pattern: '^[a-z\\-]+:\\/\\/(?:[\\w\\-\\.]+(:[0-9]+)?/?)?$'
12-
},
13-
{
14-
type: 'string',
15-
pattern: '^[a-z\\-]+:\\/\\/(?:\\[([a-z0-9]{0,4}\\:?)+\\])?/?(:[0-9]+)?$'
16-
}
17-
]
18-
};
19-
20-
// very relaxed validation....
21-
validator(originSchema, req.headers.origin)
22-
.then(function () {
23-
res.set({
24-
'Access-Control-Allow-Origin': req.headers.origin,
25-
'Access-Control-Allow-Credentials': true,
26-
'Access-Control-Allow-Methods': 'OPTIONS, GET, POST',
27-
'Access-Control-Allow-Headers': 'Content-Type, Cache-Control, Pragma, Expires, Authorization, X-Dataset-Total, X-Dataset-Offset, X-Dataset-Limit',
28-
'Access-Control-Max-Age': 5 * 60,
29-
'Access-Control-Expose-Headers': 'X-Dataset-Total, X-Dataset-Offset, X-Dataset-Limit'
30-
});
31-
next();
32-
})
33-
.catch(next);
34-
3+
res.set({
4+
'Access-Control-Allow-Origin': req.headers.origin,
5+
'Access-Control-Allow-Credentials': true,
6+
'Access-Control-Allow-Methods': 'OPTIONS, GET, POST',
7+
'Access-Control-Allow-Headers': 'Content-Type, Cache-Control, Pragma, Expires, Authorization, X-Dataset-Total, X-Dataset-Offset, X-Dataset-Limit',
8+
'Access-Control-Max-Age': 5 * 60,
9+
'Access-Control-Expose-Headers': 'X-Dataset-Total, X-Dataset-Offset, X-Dataset-Limit'
10+
});
11+
next();
3512
} else {
3613
// No origin
3714
next();
3815
}
39-
4016
};

0 commit comments

Comments
 (0)