Стандартный способ сопоставить строку URL-адреса с адресом RFC в ABAP?

В SAP (AS ABAP 7.4) я настроил набор RFC-адресов (транзакция SM59), включая конфигурацию SSL с использованием сертификата клиента для аутентификации в службе.

Скажем, один из этих RFC-адресов идет на: myserver: 443, а myserver требует аутентификации SSL-сертификата клиента.

В моем классе ABAP мне дается произвольный URL-адрес, например https://myserver:443/my/ressouce.xml

Я использую CL_HTTP_CLIENT для получения ресурса, но, насколько я вижу, нет способа инициализировать HTTP-клиент таким образом, чтобы он использовал правильный сертификат клиента SSL, за исключением передачи соответствующего RFC Пункт назначения с использованием CL_HTTP_CLIENT.CREATE_BY_DESTINATION

Для этого можно вручную прочитать / проанализировать таблицу SAP RFCDST и сопоставить данный URL-адрес с правильным адресатом RFC.

Мой вопрос: есть ли в SAP лучший способ (например, стандартная функция SAP), чем этот ручной подход?


person pmenze    schedule 08.02.2018    source источник
comment
Поскольку речь идет о безопасности, я думаю, вам следует лучше контролировать список разрешенных RFC-адресов, определив где-нибудь белый список, особенно в случае, если в будущем будет добавлен один RFC-адресат, что не должно быть разрешено в вашем контексте.   -  person Sandra Rossi    schedule 09.02.2018
comment
Почему вы в первую очередь начинаете с URL-адреса - почему бы вместо этого не использовать RFC-адрес в качестве отправной точки?   -  person vwegert    schedule 11.02.2018
comment
@SandraRossi Это хороший момент, я должен добавить такой белый список в свою функцию отображения.   -  person pmenze    schedule 12.02.2018
comment
@vwegert Проблема, которую необходимо решить: я получаю список документов PDF или JPG с другого сервера на моем сайте. Этот список представляет собой XML-документ, содержащий некоторые метаданные (автор, дата и т. Д.) Для каждого документа, а также URL-адрес, указывающий на фактический двоичный файл PDF или JPG. Как для запроса списка метаданных, так и для запроса двоичного URL-адреса требуется сертификат клиента SSL, настроенный в пункте назначения RFC. Я хочу читать двоичный файл без необходимости жестко указывать адрес назначения RFC в моем коде ABAP.   -  person pmenze    schedule 12.02.2018


Ответы (1)


Кажется, единственный жизнеспособный способ:

  • "Вручную" выберите имена пунктов назначения из RFCDES с помощью RFCTYPE = IF_DEST_ROOT~CO_TYPE_HTTP_EXT
  • Анализируйте настройки каждого пункта назначения с помощью RFC_READ_HTTP_DESTINATION
  • Сравните значения с заданным URL-адресом - вам придется отделить какую-то часть с любой стороны, так что в любом случае это должен быть собственный код.
person vwegert    schedule 12.02.2018