-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathCORS.js
21 lines (19 loc) · 940 Bytes
/
CORS.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// jshint strict:true, node:true, camelcase:true, curly:true, maxcomplexity:15, newcap:true
"use strict";
var pillars = require('../index');
var crier = require('crier').addGroup('pillars').addGroup('middleware').addGroup('CORS');
var Middleware = require('../lib/Middleware');
var middleware = module.exports = new Middleware({
id: 'CORS'
}, function (gw, done) {
if (gw.origin) {
var cors = gw.routing.check('cors', pillars.config.cors);
if (cors === true || (Array.isArray(cors) && cors.indexOf(gw.origin) >= 0)) {
gw.cors.origin = gw.origin;
gw.cors.credentials = true;
gw.cors.headers = gw.req.headers['access-control-request-headers']?gw.req.headers['access-control-request-headers'].split(','):false;
gw.cors.methods = Array.isArray(gw.routing.inheritance.method)?gw.routing.inheritance.method.concat(['OPTIONS', 'HEAD']):['GET','PUT','POST','DELETE','OPTIONS', 'HEAD'];
}
}
done();
});