Не удалось получить адресаты субсчета подписчика Платформа SAP Cloud -CF - PullRequest
0 голосов
/ 18 апреля 2019

Ошибка при подключении к абоненту Назначение дополнительной учетной записи, подключенной к локальной сети.система в облачном литейном из мультитенантного приложения из учетной записи провайдера через сервис подключения и API S4 SDK.Та же схема работает нормально, когда целевое соединение указывает на другую локальную систему, подключенную к субсчету провайдера.

Ссылается на справку SAP, которая показывает, что у службы связи есть встроенная возможность из коробки: https://help.sap.com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/en-US/9c0bdd0efc8640739c9d2fa5cfe56cbd.html

получение следующей ошибки при доступе к назначению субсчета подписчика из приложения SAAS провайдера, запущенного в субаккаунте провайдера через API S4 SDK:

Полная трассировка стека:

"2019-04-09T11: 25: 03.714 + 0000 [APP / PROC / WEB / 0] OUT {"writ_at ":" 2019-04-09T11: 25: 03.708Z ", "writ_ts": 2225588987993569, "component_type": "application", "component_id":" 212c1a7d-c897-4834-8f7c-6e2a3d6bfed3" , "space_name": "Песочница", "имя_компонента": "подключение", "component_instance": "0", "organization_id": "-", "correlation_id":"-", "organization_name": "-", "space_id": "f057513a-85e3-4229-B42F-f0fe7a058fa6", "container_id": "10.0.75.11", "тип": "журнал", "регистратор":«org.apache.catalina.core.ContainerBase. [Tomcat]. [локальный]. [/]. [dispatcherServlet] "," thread ":" http-nio-8080-exec-6 "," level ":" ERROR "," Categories ": []," msg ":" Servlet.service () для сервлета [dispatcherServlet] в контексте с путем [] выдало исключение [Ошибка обработки запроса;вложенное исключение: com.sap.cloud.sdk.cloudplatform.connectivity.exception.DestinationAccessException: com.sap.cloud.sdk.cloudplatform.connectivity.exception.DestinationAccessException: не удалось получить назначения для экземпляра службы подписчика: не удалось получить маркер доступа дляслужба назначения.Если ваше приложение работает в Cloud Foundry, убедитесь, что оно имеет привязку как к службе назначения, так и к службе авторизации и доверительного управления (xsuaa), И что вы либо правильно защитили свое приложение, либо установили для переменной среды «ALLOW_MOCKED_AUTH_HEADER» значение true,Обратите внимание, что типы аутентификации с распространением пользователя, например, основным распространением или потоком носителя SAML OAuth2, требуют защиты вашего приложения и не будут работать при использовании переменной среды «ALLOW_MOCKED_AUTH_HEADER».Если ваше приложение не работает на Cloud Foundry, например, при развертывании в локальном контейнере, рассмотрите возможность объявления переменной среды «destination» для настройки адресатов.] С первопричиной »,« stacktrace »: [« com.sap.cloud.sdk.cloudplatform.security.exception.TokenRequestDeniedException: невозможно получить маркер доступа: службе XSUAA отказано в запросе с состоянием HTTP 401 (неавторизовано).Убедитесь, что вы правильно связали свое приложение с экземпляром службы XSUAA.Обратите внимание, что эта ошибка также может возникнуть, если вы используете план обслуживания, который не подходит для вашего сценария.Если вы создаете приложение SaaS на Cloud Foundry, выберите план приложения "application" при создании экземпляра XSUAA.Если вы создаете службу повторного использования, которая должна использоваться другими приложениями, выберите тарифный план "broker". "," Tat com.sap.cloud.sdk.cloudplatform.connectivity.TokenRequest.executeTokenRequest (TokenRequest.java:128) ","tat com.sap.cloud.sdk.cloudplatform.connectivity.TokenRequest.requestTokenWithClientCredentialsGrant (TokenRequest.java:385)", "tat com.sap.cloud.sdk.cloudplatform.connectivity.XsuaaService.reenest.aservice.jer ()"," tat com.sap.cloud.sdk.cloudplatform.connectivity.XsuaaService.getServiceToken (XsuaaService.java:216) "," tat com.sap.cloud.sdk.cloudplatform.connectivity.DestinationServiceCommand.getAccessTokerCommand: Destination111) "," tat com.sap.cloud.sdk.cloudplatform.connectivity.DestinationServiceCommand.run (DestinationServiceCommand.java:124) "," tat com.sap.cloud.sdk.cloudplatform.connectivity.DestinationServiceCommand.run (DestinationServiceCom.Java: 28) "" татcom.netflix.hystrix.HystrixCommand $ 2.call (HystrixCommand.java:302) "" тат com.netflix.hystrix.HystrixCommand $ 2.call (HystrixCommand.java:298) "" тат rx.internal.operators.OnSubscribeDefer.call (OnSubscribeDefer.java:46) "" тат rx.internal.operators.OnSubscribeDefer.call (OnSubscribeDefer.java:35) "" тат rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48) "" тат rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30) "" тат rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48) "" тат rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30) "" тат rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48) "" тат rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30) "" тат rx.Observable.unsafeSubscribe (Observable.java:10327) "" тат rx.internal.operators.OnSubscribeDefer.call (OnSubscribeDefer.java:51) "" тат rx.internal.operators.OnSubscribeDefer.call (OnSubscribeDefer.java:35) "" тат rx.Observable.unsafeSubscribe (Observable.java:10327) "" тат rx.internal.operators.OnSubscribeDoOnEach.call (OnSubscribeDoOnEach.java:41) "" тат rx.internal.operators.OnSubscribeDoOnEach.call (OnSubscribeDoOnEach.java:30) "" тат rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:48) "" тат rx.internal.operators.OnSubscribeLift.call (OnSubscribeLift.java:30) "" тат rx.Observable.unsafeSubscribe (Observable.java:10327) "" тат rx.internal.operators.OperatorSubscribeOn $ SubscribeOnSubscriber.call (OperatorSubscribeOn.java:100) "" тат com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction $ 1.call (HystrixContexSchedulerAction.java:56) "" тат com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction $ 1.call (HystrixContexSchedulerAction.java:47) "" тат com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction.call (HystrixContexSchedulerAction.java:69) "" тат rx.internal.schedulers.ScheduledAction.run (ScheduledAction.java:55) "" тат java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511) "" тат java.util.concurrent.FutureTask.run (FutureTask.java:266) "" тат java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) "" тат java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) "" тат java.lang.Thread.run (Thread.java:836) "]} 2019-04-09T11: 25: 03.754 + 0000 [RTR / 5] OUT connectivity-test.cfapps.eu10.hana.ondemand.com - [2019-04-09T11: 25: 01.668 + 0000] "GET / odata / UserDetails HTTP / 1.1" 500 0 1257 "https: //.authentication.eu10.hana.ondemand.com/login" "Mozilla / 5.0 (Windows NT 6.1; Win64; x64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 73.0.3683.86 Safari / 537.36 "" - "" 10.0.75.11:61046 " x_forwarded_for: "-" x_forwarded_proto: "https" vcap_request_id: "eab68130-BFFF-4cf2-733c-da051adfb1db" response_time: 2,085981657 app_id: "212c1a7d-c897-4834-8f7c-6e2a3d6bfed3" app_index: "0" x_correlationid: "8e2d22b0-b4c7-4d20-5461-600aea37b2d2" x_b3_traceid: "7c4752638ec93577" x_b3_spanid: "7c4752638ec93577" x_b3_parentspanid: "-" b3: "7c4752638ec93577-7c4752638ec93577"

Пожалуйста, помогите.

Спасибо, Сиддхарт

    if (TenantAccessor.getCurrentTenant().getTenantId().equals("<Subscriber tenet id>"))
            {
                final ErpConfigContext configContext = new ErpConfigContext("TEST_dest");

    else

    {
     < call provider destination using the above code with the destination belonging to Provider account >
    }

1 Ответ

2 голосов
/ 26 апреля 2019

Реализованы ли в вашем приложении услуги обратного вызова для абонентов, как описано здесь?https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/ff540477f5404e3da2a8ce23dcee602a.html

Более важным является обратный вызов getDependencies (шаг процедуры 2).Я знаю, что это говорит необязательно, но при использовании таких услуг, как пункт назначения, это необходимо.Это необходимо для того, чтобы во время подписки служба SaaS Provisioning знала, как настроить службу назначения для авторизации учетной записи подписчика.

Кроме того, если это не было реализовано ранее: после внедрения и повторного развертывания приложения выполняется процесс подписки.необходимо выполнить заново, чтобы настройки вступили в силу.

...