Проверка подлинности SAPUI5 WebSocket - PullRequest
0 голосов
/ 12 октября 2018

Я создал службу в бэкэнде SAP, которая служит для соединений через веб-сокеты.Я хочу подключиться к этому сервису из приложения SAPUI5.Я подключаюсь к сервису так:

sap.ui.require("sap/ui/core/ws/WebSocket");
        var socket = new WebSocket(
                'ws://<host>:<port>/sap/bc/apc/sap/z_reg_test_push_ch');

Когда вызывается этот фрагмент кода, я получаю:

WebSocket connection to 'ws://<host>:<port>/sap/bc/apc/sap/z_reg_test_push_ch' failed: HTTP Authentication failed; no valid credentials available

Когда я тестирую сервис из бэкэнда, он открывает URL сервиса вхром и просит у меня учетные данные.Затем, когда я обновляю приложение UI5, устанавливается соединение с веб-сервисом, поскольку пользователь уже вошел в тот же сеанс в chrome при тестировании службы из бэкэнда.

В приложении SAPUI5 я могу получить доступ к токену безопасности, который был возвращен приподключение к услуге oData.Я могу получить доступ, как это:

var oModel = sap.ui.getCore().getModel();
oModel.getSecurityToken();

токен выглядит так: cKYPxpo7-BELSah1D1WRgg==

Я нашел поток , что я должен создать соединение websocket какэто:

new WebSocket('ws://<host>:<port>/sap/bc/apc/sap/z_reg_test_push_ch',["access_token", oModel.getSecurityToken()]);

Но я получаю это сообщение:

Uncaught DOMException: Failed to construct 'WebSocket': The subprotocol 'cKYPxpo7-BELSah1D1WRgg==' is invalid.

Подводя итог.Я авторизован службой oData через базовую аутентификацию и хочу передать сокету информацию аутентификации.

1 Ответ

0 голосов
/ 17 октября 2018

Я обнаружил, что для передачи учетных данных пользователя в службу ICF необходимо создать веб-сокет следующим образом:

new WebSocket('ws://<username>:<password>@<host>:<port>/<path_to_service>')

Однако возникает проблема безопасности, так как соединение не защищено,так что каждый может прочитать учетные данные пользователя.

Но я не нашел другого решения для аутентификации пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...