Я пытаюсь создать сокет-соединение между угловым клиентом и сервером весенней загрузки.
const ws = new SockJS(this.addressStorage.apiAddress + '/socket', null, {
sessionId: function (): string {
return that.authManager.playerId + ':' + lobbyName + ':' + uuid();
}
});
После создания экземпляра SockJS клиент отправляет запрос на мой сервер.
Поскольку я включил WebSecurity на сервере, мне нужно авторизовать каждый запрос, включая рукопожатие sockjs.Таким образом, при создании SockJS появляется это окно:
Я не хочу, чтобы пользователь снова вводил свой логин и пароль, когда клиент создает соединение через сокет ссервер.К сожалению, невозможно добавить заголовок авторизации с помощью SockJS, поэтому я решил использовать перехватчик.
Этот перехватчик не перехватывает рукопожатие SockJS:
export class SocketInterceptorService implements HttpInterceptor {
constructor(private authManager: AuthManagerService) {
}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
console.log(req.url);
console.log(req);
// req = req.clone({
// setHeaders: {
// Authorization: this.authManager.basicToken
// }
// });
return next.handle(req);
}
}
Так как я могу перехватить рукопожатие SockJS, чтобыавтоматически авторизовать соединение SockJS?