11import Primus from 'primus' ;
22import Emitter from 'primus-emitter' ;
33import { LoadedServerOpts } from '../common/types/options' ;
4- import { SocketHandler } from './types/socket' ;
4+ import { WebSocketServer , SocketHandler } from './types/socket' ;
55import { handleIoError } from './socketHandlers/errorHandler' ;
66import { handleSocketConnection } from './socketHandlers/connectionHandler' ;
77import { initConnectionHandler } from './socketHandlers/initHandlers' ;
@@ -47,17 +47,20 @@ const socket = ({ server, loadedServerOpts }): SocketHandler => {
4747 compression : Boolean ( loadedServerOpts . config . socketUseCompression ) || false ,
4848 } ;
4949
50- const websocket = new Primus ( server , ioConfig ) ;
50+ const websocket = new Primus ( server , ioConfig ) as WebSocketServer ;
5151 if ( loadedServerOpts . config . BROKER_SERVER_MANDATORY_AUTH_ENABLED ) {
5252 websocket . authorize ( async ( req , done ) => {
5353 const connectionIdentifier = req . uri . pathname
5454 . replaceAll ( / ^ \/ p r i m u s \/ ( [ ^ / ] + ) \/ / g, '$1' )
5555 . toLowerCase ( ) ;
5656 const maskedToken = maskToken ( connectionIdentifier ) ;
57- const authHeader =
58- req . headers [ 'Authorization' ] ?? req . headers [ 'authorization' ] ;
59- const brokerClientId = req . headers [ 'x-snyk-broker-client-id' ] ?? null ;
60- const role = req . headers [ 'x-snyk-broker-client-role' ] ?? null ;
57+ const authHeader = ( req . headers [ 'Authorization' ] ??
58+ req . headers [ 'authorization' ] ) as string | undefined ;
59+ const brokerClientId =
60+ ( req . headers [ 'x-snyk-broker-client-id' ] as string | undefined ) ?? null ;
61+ const role =
62+ ( req . headers [ 'x-snyk-broker-client-role' ] as string | undefined ) ??
63+ null ;
6164 if (
6265 ( ! authHeader ||
6366 ! authHeader . toLowerCase ( ) . startsWith ( 'bearer' ) ||
@@ -93,8 +96,8 @@ const socket = ({ server, loadedServerOpts }): SocketHandler => {
9396 ) ;
9497 // deepcode ignore Ssrf: request URL comes from the filter response, with the origin url being injected by the filtered version
9598 const credsCheckResponse = await validateBrokerClientCredentials (
96- authHeader ,
97- brokerClientId ,
99+ authHeader ! ,
100+ brokerClientId ! ,
98101 connectionIdentifier ,
99102 ) ;
100103 if ( ! credsCheckResponse ) {
@@ -121,9 +124,9 @@ const socket = ({ server, loadedServerOpts }): SocketHandler => {
121124 const currentClient : ClientSocket = {
122125 socketType : 'server' ,
123126 socketVersion : 1 ,
124- brokerClientId : brokerClientId ,
127+ brokerClientId : brokerClientId ! ,
125128 brokerAppClientId : brokerAppClientId ,
126- role : role ?? Role . primary ,
129+ role : ( role ?? Role . primary ) as Role ,
127130 credsValidationTime : nowDate ,
128131 } ;
129132 const connections = getSocketConnections ( ) ;
0 commit comments