A client obtaining WSDL from APIM Gateway through ?WSDL interface is presented with unprotected/internal links to WSDL and Schema files
search cancel

A client obtaining WSDL from APIM Gateway through ?WSDL interface is presented with unprotected/internal links to WSDL and Schema files

book

Article ID: 42876

calendar_today

Updated On:

Products

STARTER PACK-7 CA Rapid App Security CA API Gateway

Issue/Introduction

Issue:

A Client when obtaining A WSDL source from API Gateway using ?WSDL interface will be presented with unprotected or internal links to WSDL and Schema files.

Cause:

This is a known issue in the product.

Resolution:

The Gateway provides the capability to dynamically modify the URL links in the WSDL so that the Gateway Host will offer up these files. This approach will help mask the back-end server host name and eliminate possible connection issues that may arise due to firewalls and/or routing tables. The change will involve modifying a cluster-wide property "service.wsdlDependenciesEnabled" through the Policy Manager.

Steps to modify the Cluster-Wide Property
1) Open the Policy Manager as an administrator
2) Click on Tasks -> Manage Cluster-Wide Properties
3) Click Add from the right side of the window
4) Find the property "service.wsdlDependenciesEnabled" and change the value to true from false
5) Click OK to save
6) Change will take effect within 20-30 seconds and will not require a restart of the Gateway.

Original WSDL

<wsdl:definitions targetNamespace="http://warehouse.acme.com/ws" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:tns="http://warehouse.acme.com/ws" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    <wsdl:types>
        <s:import namespace="http://warehouse.acme.com/ws" schemaLocation="http://internal.example.com/schema/warehouse_schema.xsd"></s:import>
    </wsdl:types>
   ........
        <wsdl:port binding="tns:WarehouseSoap" name="WarehouseSoap">
            <soap:address location="http://internal.example.com/ACMEWarehouseWS/Service1.asmx"/>
        </wsdl:port>
        <wsdl:port binding="tns:WarehouseSoap12" name="WarehouseSoap12">
            <soap12:address location="http://internal.example.com/ACMEWarehouseWS/Service1.asmx"/>
        </wsdl:port>


Dynamic WSDL with Gateway Hostname and URL changes

<wsdl:definitions targetNamespace="http://warehouse.acme.com/ws" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:tns="http://warehouse.acme.com/ws" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    <wsdl:types>
        <s:import namespace="http://warehouse.acme.com/ws" schemaLocation="http://GatewayHostName.exanple.com:8080/ssg/wsdl/warehouse_schema.xsd?serviceoid=78151682&servdocoid=78807041"></s:import>
    </wsdl:types>
  ......
        <wsdl:port binding="tns:WarehouseSoap" name="WarehouseSoap">
            <soap:address location="http://GatewayHostName.example.com/ACMEWarehouseWS/Service1.asmx"/>
        </wsdl:port>
        <wsdl:port binding="tns:WarehouseSoap12" name="WarehouseSoap12">
            <soap12:address location="http://GatewayHostName.example.com/ACMEWarehouseWS/Service1.asmx"/>
        </wsdl:port>
 

Environment

Release: L7SMG299000-7.1-Mobile API Gateway-HARDWARE APPLIANCE DUAL CPU
Component: