MicroStrategy ONE

Using a proxy for the ESRI server with either a cloud-based or on-premises environment

There may be circumstances where you want or need to use a proxy for the ESRI server. For example, you might have security tokens that you do not want to be visible on your local ESRI server. Or you may have requests that exceed the limit on the length of the uniform resource locators (URLs) imposed by the browser. Using a proxy for the ESRI server gets around the length limitation by performing a POST request rather than a GET request. POST requests are not limited by the 2048 character maximum because the information is transferred in the header instead of the URL.

The proxy consists of server-side code that runs on your web server. Your browser-based web application sends the request to the proxy (on your web server). The proxy then forwards the request to the ESRI server and relays the response returned by the ESRI server back to your application.

To use a proxy for the ESRI server, follow the steps in one of the methods below. You can use the first method to configure a proxy with either cloud-based or on-premises integration; the second method works only for on-premises integration.

To troubleshoot, see KB484310: Support Basic Authentication for ESRI Proxy.

Using a proxy for the ESRI server with either cloud-based or on-premises integration

J2EE environment

  1. Copy esriproxy.jsp, located under jsp in the MicroStrategy Web installation directory and paste it in an accessible location. The instructions below assume you saved it under the jsp folder in your plug-in.

  2. In the MicroStrategy Web installation directory, open WEB-INF/xml/proxy.xml. In the <serverUrls> node, add <serverUrl> nodes, listing all the URLs to the maps you want to use a proxy for and save your changes.

    Copy
      <serverUrls>
        <serverUrl url="services.arcgisonline.com" matchAll="true" />
        <serverUrl url="sampleserver1.arcgisonline.com" matchAll="true" />
        <serverUrl url="www.arcgis.com" matchAll="true" />
        ...
        <serverUrl url="myserver.mycompany.com" matchAll="true"
      </serverUrls>

  3. Open mapConfig.xml in your plug-in.

  4. In the <ec> node, add <proxyURLs> and <urlPrefixes> nodes. This tells the application to use a proxy for the map URLs you added in <urlPrefixes>.

    If the alwaysUse attribute is set to "true", a proxy is always used. If the alwaysUse attribute is set to "false" or is missing, ESRI decides whether or not to use a proxy.

    If you add a <urlPrefix> node, you must add an ID attribute. This ID attribute must be unique and cannot use integers from 1 to 13.

    Copy
    <mc>
      <ec>
        <proxyURLs>
          <proxyURL alwaysUse="true">../plugins/ConnectorForESRI/jsp/esriproxy.jsp</proxyURL>
        </proxyURLs>
        <urlPrefixes>
          <urlPrefix id="21">myserver.mycompany.com</urlPrefix>
          <urlPrefix id="22">services.arcgis.com</urlPrefix>
          <urlPrefix id="23">sampleserver1.arcgisonline.com</urlPrefix>
        </urlPrefixes>
        ...
      </ec>
    </mc>
  5. Save your changes and restart the MicroStrategy Web server.

.NET environment

  1. In the MicroStrategy Web installation directory, under the asp folder, copy esriproxy.ashx, proxy.config, and proxy.xsd. Paste them in an accessible location under the same folder. The instructions below assume you saved it under the asp folder in your plug-in.

  2. In your plug-in, open proxy.config. Add URLs to the maps you want to use a proxy for and save your changes. In the <serverUrls> node, add <serverUrl> nodes, list all the URLs to the maps you want to use a proxy for, and save your changes.

    Copy
      <serverUrls>
        <serverUrl url="services.arcgisonline.com" matchAll="true" />
        <serverUrl url="sampleserver1.arcgisonline.com" matchAll="true" />
        <serverUrl url="www.arcgis.com" matchAll="true" />
        ...
        <serverUrl url="myserver.mycompany.com" matchAll="true"
      </serverUrls>
  3. In your plug-in, open mapConfig.xml.

  4. In the <ec> node, add <proxyURLs> and <urlPrefixes> nodes. This tells the application to use a proxy for the map URLs you added in <urlPrefixes>.

    If the alwaysUse attribute is set to "true", a proxy is always used. If the alwaysUse attribute is set to "false" or is missing, ESRI decides whether or not to use a proxy.

    If you add a <urlPrefix> node, you must add an ID attribute. This ID attribute must be unique and cannot use integers from 1 to 13.

    Copy
    <mc>
      <ec>
        <proxyURLs>
          <proxyURL alwaysUse="true">../plugins/ConnectorForESRI/asp/esriproxy.ashx</proxyURL>
        </proxyURLs>
        <urlPrefixes>
          <urlPrefix id="21">myserver.mycompany.com</urlPrefix>
          <urlPrefix id="22">services.arcgis.com</urlPrefix>
          <urlPrefix id="23">sampleserver1.arcgisonline.com</urlPrefix>
        </urlPrefixes>
        ...
      </ec>
    </mc>
  5. Save your changes and restart the MicroStrategy Web server.

  6. Restart the MicroStrategy Web server.

Using a proxy for the ESRI server with on-premises integration

You can either the method above or the one below for on-premises integration.

J2EE environment

  1. In the MicroStrategy Web installation directory, under the jsp folder, copy esriproxy.jsp and paste it in an accessible location. The instructions below assume you saved the file under the jsp folder in your plug-in.

  2. In the MicroStrategy Web installation directory, open WEB-INF/xml/proxy.xml. In the <serverUrls> node, add <serverUrl> nodes, listing all the URLs to the maps you want to use a proxy for, and save your changes.

    Copy
      <serverUrls>
        <serverUrl url="services.arcgisonline.com" matchAll="true" />
        <serverUrl url="sampleserver1.arcgisonline.com" matchAll="true" />
        <serverUrl url="www.arcgis.com" matchAll="true" />
        ...
        <serverUrl url="myserver.mycompany.com" matchAll="true"
      </serverUrls>

  3. Open mapConfig.xml in your plug-in.

  4. In the ESRI configuration file, in the <bm> node, add a proxyURL attribute. This tells the application to use a proxy for this base map. In the <ec> node, add a <urlPrefixes> node to list all the URLs to the maps you want to use a proxy for.

    Copy
    <mc>
      <ec>
        <bm key="default" proxyURL="../plugins/ConnectorForESRI/jsp/esriproxy.jsp">
          http://myserver.mycompany.com/ArcGIS/rest/services
        </bm>
        <urlPrefixes>
          <urlPrefix id="21">myserver.mycompany.com</urlPrefix>
          <urlPrefix id="22">the URLs to the maps you want to use a proxy for</urlPrefix>
          <urlPrefix id="23">services.arcgis.com</urlPrefix>
        </urlPrefixes>
        ...
      </ec>
    </mc>
  5. Save your changes and restart the MicroStrategy Web server.

.NET environment

  1. In the MicroStrategy Web installation directory, under the asp folder, copy esriproxy.ashx, proxy.config, and proxy.xsd. Paste them in an accessible location under the same folder. The instructions below assume you saved it under the asp folder in your plug-in.

  2. In your plug-in, open proxy.config. Add URLs to the maps you want to use a proxy for and save your changes. In the <serverUrls> node, add <serverUrl> nodes, list all the URLs to the maps you want to use a proxy for, and save your changes.

    Copy
      <serverUrls>
        <serverUrl url="services.arcgisonline.com" matchAll="true" />
        <serverUrl url="sampleserver1.arcgisonline.com" matchAll="true" />
        <serverUrl url="www.arcgis.com" matchAll="true" />
        ...
        <serverUrl url="myserver.mycompany.com" matchAll="true"
      </serverUrls>
  3. In your plug-in, open mapConfig.xml.

  4. In the ESRI configuration file, in the <bm> node, add a proxyURL attribute. This tells the application to use a proxy for this base map. In the <ec> node, add a <urlPrefixes> node to list all the URLs to the maps you want to use a proxy for.

    Copy
    <mc>
      <ec>
        <bm key="default" proxyURL="../plugins/ConnectorForESRI/asp/esriproxy.ashx">
          http://myserver.mycompany.com/ArcGIS/rest/services
        </bm>
        <urlPrefixes>
          <urlPrefix id="21">myserver.mycompany.com</urlPrefix>
          <urlPrefix id="22">the URLs to the maps you want to use a proxy for</urlPrefix>
          <urlPrefix id="23">services.arcgis.com</urlPrefix>
        </urlPrefixes>
        ...
      </ec>
    </mc>
  5. Save your changes and restart the MicroStrategy Web server.