wekan/server/cors.js

43 lines
1.3 KiB
JavaScript
Raw Normal View History

Meteor.startup(() => {
// Set Permissions-Policy header to suppress browser warnings about experimental features
WebApp.rawConnectHandlers.use(function(req, res, next) {
// Disable experimental advertising and privacy features that cause browser warnings
res.setHeader('Permissions-Policy',
'browsing-topics=(), ' +
'run-ad-auction=(), ' +
'join-ad-interest-group=(), ' +
'private-state-token-redemption=(), ' +
'private-state-token-issuance=(), ' +
'private-aggregation=(), ' +
'attribution-reporting=()'
);
return next();
});
2019-06-28 12:52:09 -05:00
if (process.env.CORS) {
// Listen to incoming HTTP requests, can only be used on the server
WebApp.rawConnectHandlers.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', process.env.CORS);
return next();
});
}
2019-06-28 12:52:09 -05:00
if (process.env.CORS_ALLOW_HEADERS) {
2019-05-24 12:39:54 -04:00
WebApp.rawConnectHandlers.use(function(req, res, next) {
2019-06-28 12:52:09 -05:00
res.setHeader(
'Access-Control-Allow-Headers',
process.env.CORS_ALLOW_HEADERS,
);
2019-05-24 12:39:54 -04:00
return next();
});
}
2019-06-28 12:52:09 -05:00
if (process.env.CORS_EXPOSE_HEADERS) {
2019-05-24 12:39:54 -04:00
WebApp.rawConnectHandlers.use(function(req, res, next) {
2019-06-28 12:52:09 -05:00
res.setHeader(
'Access-Control-Expose-Headers',
process.env.CORS_EXPOSE_HEADERS,
);
2019-05-24 12:39:54 -04:00
return next();
});
}
});