wsDuplex.setClient() must be called after the proxy headers and proxied is set so its set during constructor call or the proxy headers will not be applied
This commit is contained in:
@@ -71,6 +71,25 @@ class WebSocketClient extends TelnetClient {
|
|||||||
})(ws);
|
})(ws);
|
||||||
|
|
||||||
super(wsDuplex);
|
super(wsDuplex);
|
||||||
|
|
||||||
|
Log.trace({ headers: req.headers }, 'WebSocket connection headers');
|
||||||
|
|
||||||
|
//
|
||||||
|
// If the config allows it, look for 'x-forwarded-proto' as "https"
|
||||||
|
// to override |isSecure|
|
||||||
|
//
|
||||||
|
if (
|
||||||
|
true === _.get(Config(), 'loginServers.webSocket.proxied') &&
|
||||||
|
'https' === req.headers['x-forwarded-proto']
|
||||||
|
) {
|
||||||
|
Log.debug(
|
||||||
|
`Assuming secure connection due to X-Forwarded-Proto of "${req.headers['x-forwarded-proto']}"`
|
||||||
|
);
|
||||||
|
this.proxied = true;
|
||||||
|
} else {
|
||||||
|
this.proxied = false;
|
||||||
|
}
|
||||||
|
|
||||||
wsDuplex.setClient(this, req);
|
wsDuplex.setClient(this, req);
|
||||||
|
|
||||||
// fudge remoteAddress on socket, which is now TelnetSocket
|
// fudge remoteAddress on socket, which is now TelnetSocket
|
||||||
@@ -91,24 +110,6 @@ class WebSocketClient extends TelnetClient {
|
|||||||
ws.isConnectionAlive = true;
|
ws.isConnectionAlive = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
Log.trace({ headers: req.headers }, 'WebSocket connection headers');
|
|
||||||
|
|
||||||
//
|
|
||||||
// If the config allows it, look for 'x-forwarded-proto' as "https"
|
|
||||||
// to override |isSecure|
|
|
||||||
//
|
|
||||||
if (
|
|
||||||
true === _.get(Config(), 'loginServers.webSocket.proxied') &&
|
|
||||||
'https' === req.headers['x-forwarded-proto']
|
|
||||||
) {
|
|
||||||
Log.debug(
|
|
||||||
`Assuming secure connection due to X-Forwarded-Proto of "${req.headers['x-forwarded-proto']}"`
|
|
||||||
);
|
|
||||||
this.proxied = true;
|
|
||||||
} else {
|
|
||||||
this.proxied = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// start handshake process
|
// start handshake process
|
||||||
this.banner();
|
this.banner();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user