Skip to content
This repository was archived by the owner on Oct 23, 2024. It is now read-only.

Commit e31e2ee

Browse files
authored
Merge branch 'master' into revert-794-install-quic
2 parents e12b85e + 12d3099 commit e31e2ee

File tree

3 files changed

+22
-5
lines changed

3 files changed

+22
-5
lines changed

source/portal/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,13 @@ config.portal.ssl = config.portal.ssl || false;
2626
config.portal.force_tls_v12 = config.portal.force_tls_v12 || false;
2727
config.portal.reconnection_ticket_lifetime = config.portal.reconnection_ticket_lifetime || 600;
2828
config.portal.reconnection_timeout = Number.isInteger(config.portal.reconnection_timeout) ? config.portal.reconnection_timeout : 60;
29+
config.portal.cors = config.portal.cors || [];
2930

3031
config.cluster = config.cluster || {};
3132
config.cluster.name = config.cluster.name || 'owt-cluster';
3233
config.cluster.join_retry = config.cluster.join_retry || 60;
3334
config.cluster.report_load_interval = config.cluster.report_load_interval || 1000;
34-
config.cluster.max_load = config.cluster.max_laod || 0.85;
35+
config.cluster.max_load = config.cluster.max_load || 0.85;
3536
config.cluster.network_max_scale = config.cluster.network_max_scale || 1000;
3637

3738
config.capacity = config.capacity || {};
@@ -193,6 +194,7 @@ var startServers = function(id, tokenKey) {
193194
selfRpcId: id},
194195
rpcReq);
195196
socketio_server = require('./socketIOServer')({port: config.portal.port,
197+
cors: config.portal.cors,
196198
ssl: config.portal.ssl,
197199
forceTlsv12: config.portal.force_tls_v12,
198200
keystorePath: config.portal.keystorePath,

source/portal/portal.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ force_tls_v12 = false #default: false, tls1 and tls1.1 will not be allowed if se
1616
reconnection_ticket_lifetime = 600 #default: 600
1717
# Client will leave conference if it cannot reconnect to Socket.IO server after |reconnection_timeout| seconds.
1818
reconnection_timeout = 60 #default: 60
19+
#default: *, allow cross origin request share list. Add http(s)://web-app-server-ip-or-hostname:port to cors list in product deployment, example: ["http://web-app-server-ip-or-hostname:3001", "https://web-app-server-ip-or-hostname:3004"].
20+
cors = ["*"]
1921

2022

2123
[cluster]

source/portal/socketIOServer.js

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -352,14 +352,21 @@ var SocketIOServer = function(spec, portal, observer) {
352352
sioOptions.pingTimeout = spec.pingTimeout * 1000;
353353
}
354354

355-
var startInsecure = function(port) {
355+
var startInsecure = function(port, cors) {
356356
var server = require('http').createServer().listen(port);
357357
io = require('socket.io').listen(server, sioOptions);
358+
io.origins((origin, callback) => {
359+
if (cors.indexOf(origin) < 0 && cors.indexOf('*') < 0) {
360+
return callback('origin not allowed', false);
361+
}
362+
363+
callback(null, true);
364+
});
358365
run();
359366
return Promise.resolve('ok');
360367
};
361368

362-
var startSecured = function(port, keystorePath, forceTlsv12) {
369+
var startSecured = function(port, cors, keystorePath, forceTlsv12) {
363370
return new Promise(function(resolve, reject) {
364371
var cipher = require('./cipher');
365372
var keystore = path.resolve(path.dirname(keystorePath), cipher.kstore);
@@ -372,6 +379,12 @@ var SocketIOServer = function(spec, portal, observer) {
372379
}
373380
var server = require('https').createServer(option).listen(port);
374381
io = require('socket.io').listen(server, sioOptions);
382+
io.origins((origin, callback) => {
383+
if (cors.indexOf(origin) < 0 && cors.indexOf('*') < 0) {
384+
return callback('origin not allowed', false);
385+
}
386+
callback(null, true);
387+
});
375388
run();
376389
resolve('ok');
377390
} else {
@@ -417,9 +430,9 @@ var SocketIOServer = function(spec, portal, observer) {
417430

418431
that.start = function() {
419432
if (!spec.ssl) {
420-
return startInsecure(spec.port);
433+
return startInsecure(spec.port, spec.cors);
421434
} else {
422-
return startSecured(spec.port, spec.keystorePath, spec.forceTlsv12);
435+
return startSecured(spec.port, spec.cors, spec.keystorePath, spec.forceTlsv12);
423436
}
424437
};
425438

0 commit comments

Comments
 (0)