<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Token appended to URL twice in legend in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/token-appended-to-url-twice-in-legend/m-p/532680#M49655</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have an application that is loading all my layers, including secure layers, perfectly.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However, as soon as i&amp;nbsp; turn on a secure layer so that the legend is updated, i get an second login page&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is due to the request for the legend item&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A class="jive-link-external-small" href="https://www.mymanatee.org/arcgis03/rest/services/utilitiesinfrastructure/watercounty/MapServer/legend?token=SCmXM3M2QKDFQznqgZmMR5HybBLGz5djBAqzBbPyyj0.?token=SCmXM3M2QKDFQznqgZmMR5HybBLGz5djBAqzBbPyyj0.&amp;amp;f=json" rel="nofollow" target="_blank"&gt;https://www.mymanatee.org/arcgis03/rest/services/utilitiesinfrastructure/watercounty/MapServer/legend?token=SCmXM3M2QKDFQznqgZmMR5HybBLGz5djBAqzBbPyyj0.?token=SCmXM3M2QKDFQznqgZmMR5HybBLGz5djBAqzBbPyyj0.&amp;amp;f=json&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As you can see, the '?token=&amp;lt;token&amp;gt;' part is appended twice, so it thinks its one long token&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I dont think my code is doing it, is there any chance since my items have the token on them already the legend is just adding another one? Anyway to stop it?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 24 Mar 2014 16:53:03 GMT</pubDate>
    <dc:creator>JeffPace</dc:creator>
    <dc:date>2014-03-24T16:53:03Z</dc:date>
    <item>
      <title>Token appended to URL twice in legend</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/token-appended-to-url-twice-in-legend/m-p/532680#M49655</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have an application that is loading all my layers, including secure layers, perfectly.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However, as soon as i&amp;nbsp; turn on a secure layer so that the legend is updated, i get an second login page&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is due to the request for the legend item&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A class="jive-link-external-small" href="https://www.mymanatee.org/arcgis03/rest/services/utilitiesinfrastructure/watercounty/MapServer/legend?token=SCmXM3M2QKDFQznqgZmMR5HybBLGz5djBAqzBbPyyj0.?token=SCmXM3M2QKDFQznqgZmMR5HybBLGz5djBAqzBbPyyj0.&amp;amp;f=json" rel="nofollow" target="_blank"&gt;https://www.mymanatee.org/arcgis03/rest/services/utilitiesinfrastructure/watercounty/MapServer/legend?token=SCmXM3M2QKDFQznqgZmMR5HybBLGz5djBAqzBbPyyj0.?token=SCmXM3M2QKDFQznqgZmMR5HybBLGz5djBAqzBbPyyj0.&amp;amp;f=json&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As you can see, the '?token=&amp;lt;token&amp;gt;' part is appended twice, so it thinks its one long token&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I dont think my code is doing it, is there any chance since my items have the token on them already the legend is just adding another one? Anyway to stop it?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Mar 2014 16:53:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/token-appended-to-url-twice-in-legend/m-p/532680#M49655</guid>
      <dc:creator>JeffPace</dc:creator>
      <dc:date>2014-03-24T16:53:03Z</dc:date>
    </item>
    <item>
      <title>Re: Token appended to URL twice in legend</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/token-appended-to-url-twice-in-legend/m-p/532681#M49656</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Jeff,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You and I have discussed this &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://forums.arcgis.com/threads/65481-Legend-problems-with-secured-services-when-migrating-to-3.0-3.1" rel="nofollow" target="_blank"&gt;before&lt;/A&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Esri widgets don't like token appended urls. When the api makes requests it checks the layer._getToken() to see if the service is secured. At 3.0 the api stopped checking to see if the layer url was in fact token appended (in favor of Identity Manager and the detriment of the developer).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The work around is to reset layer.url w/o the token after creating but before adding the layer to the map. I use an json to load layers and in so use "secured" and "token" params to append the url when creating the layer and then reset it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;// layer json (layerInfo below) { &amp;nbsp;&amp;nbsp;&amp;nbsp; type: 'dynamic', &amp;nbsp;&amp;nbsp;&amp;nbsp; id: 'vertcontrol', &amp;nbsp;&amp;nbsp;&amp;nbsp; url: 'https://some_server/arcgis/rest/services/Control/Vertical_Control/MapServer', &amp;nbsp;&amp;nbsp;&amp;nbsp; name: 'Vertical Control', &amp;nbsp;&amp;nbsp;&amp;nbsp; secured: true, &amp;nbsp;&amp;nbsp;&amp;nbsp; token: 'some_token' }&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;// in layer loading class // create layer var li = lang.mixin({ &amp;nbsp;&amp;nbsp;&amp;nbsp; secured: false, &amp;nbsp;&amp;nbsp;&amp;nbsp; token: null, &amp;nbsp;&amp;nbsp;&amp;nbsp; visible: false, &amp;nbsp;&amp;nbsp;&amp;nbsp; opacity: 1, &amp;nbsp;&amp;nbsp;&amp;nbsp; imageFormat: 'png32', &amp;nbsp;&amp;nbsp;&amp;nbsp; dpi: 96, &amp;nbsp;&amp;nbsp;&amp;nbsp; sublayers: true, &amp;nbsp;&amp;nbsp;&amp;nbsp; identify: true, &amp;nbsp;&amp;nbsp;&amp;nbsp; query: true }, layerInfo); this.layerInfo = li; var ip = new ImageParams(); ip.format = li.imageFormat; ip.dpi = li.dpi; this.layer = new Dynamic((li.secured) ? li.url + '?token=' + li.token : li.url, { &amp;nbsp;&amp;nbsp;&amp;nbsp; id: li.id, &amp;nbsp;&amp;nbsp;&amp;nbsp; imageParameters: ip, &amp;nbsp;&amp;nbsp;&amp;nbsp; visible: li.visible, &amp;nbsp;&amp;nbsp;&amp;nbsp; opacity: li.opacity }); this.layer.mapx = li; // reset url if (li.secured) { &amp;nbsp;&amp;nbsp;&amp;nbsp; this.layer.url = li.url; }&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You can also use layer._getToken() for your own requests thereafter:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;_getLegend: function (deferred, layer) { &amp;nbsp;&amp;nbsp;&amp;nbsp; var url = layer.url; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (!isNaN(parseInt(url.charAt(url.length - 1), 10))) { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url = url.replace('FeatureServer', 'MapServer'); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url = url.substring(0, url.length - 2); &amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;nbsp;&amp;nbsp;&amp;nbsp; esriRequest({ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url: url + '/legend', &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; callbackParamName: 'callback', &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; content: { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f: 'json', &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; token: (typeof layer._getToken === 'function') ? layer._getToken() : null &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;nbsp;&amp;nbsp;&amp;nbsp; }, { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; usePost: this.usePost &amp;nbsp;&amp;nbsp;&amp;nbsp; }).then(function (r) { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deferred.resolve(r); &amp;nbsp;&amp;nbsp;&amp;nbsp; }, function (e) { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log(e); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deferred.reject('getLegend::an error occurred retrieving legend'); &amp;nbsp;&amp;nbsp;&amp;nbsp; }); },&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Mar 2014 17:56:00 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/token-appended-to-url-twice-in-legend/m-p/532681#M49656</guid>
      <dc:creator>BenFousek</dc:creator>
      <dc:date>2014-03-24T17:56:00Z</dc:date>
    </item>
    <item>
      <title>Re: Token appended to URL twice in legend</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/token-appended-to-url-twice-in-legend/m-p/532682#M49657</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;i figured it out.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Basically, when i was just using identitymanagerbase and explicitly calling signin, it was prompting.&amp;nbsp; Once I upgraded to 10.2 I had to start using identitymanager&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And the old code didnt play well.&amp;nbsp; Once I undid all the workarounds of manually adding the token and just let the identitymanager handle it, it is working great!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Mar 2014 20:22:36 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/token-appended-to-url-twice-in-legend/m-p/532682#M49657</guid>
      <dc:creator>JeffPace</dc:creator>
      <dc:date>2014-03-24T20:22:36Z</dc:date>
    </item>
  </channel>
</rss>

