In TOCMapLayerItem.as modify the getLegendData function as below (marked with bold letters), to add token to service url-
private function getLegendData(m_layer:*):void
{
if (_legendDataLoaded)
{
return;
}
_legendDataLoaded = true;
if (m_layer.hasOwnProperty("url"))
{
const url:String = m_layer["url"];
if (url === null)
{
return;
}
}
else
{
return;
}
var httpServ:HTTPService = new HTTPService();
httpServ.requestTimeout = lTimeout;
var lname:String;
var lInfos:Array;
if (m_layer is ArcGISTiledMapServiceLayer)
{
if(m_layer.version >= 10.01)
{
httpServ.url = ArcGISTiledMapServiceLayer(m_layer).url + "/legend?f=json";
// Source Edit by JMB - add support for token-secured services
if (ArcGISTiledMapServiceLayer(m_layer).token && ArcGISTiledMapServiceLayer(m_layer).token != "")
{
httpServ.url += "&token=" + ArcGISTiledMapServiceLayer(m_layer).token;
}
httpServ.resultFormat = "text";
lname = ArcGISTiledMapServiceLayer(m_layer).id;
lInfos = ArcGISTiledMapServiceLayer(m_layer).layerInfos;
httpServ.addEventListener(ResultEvent.RESULT,function(event:ResultEvent):void{processLegend(event,lname,Number.NaN,lInfos,httpServ.url)});
httpServ.send();
}else{
lname = ArcGISTiledMapServiceLayer(m_layer).id;
ArcGISTiledMapServiceLayer(m_layer).addEventListener(DetailsEvent.GET_ALL_DETAILS_COMPLETE,function(event:DetailsEvent):void{getAllDetailsResult(event,lname)});
ArcGISTiledMapServiceLayer(m_layer).addEventListener(FaultEvent.FAULT, function(event:Event):void{FlexGlobals.topLevelApplication.dispatchEvent(new Event("legendDataLoaded$"))});
ArcGISTiledMapServiceLayer(m_layer).getAllDetails();
}
}
else if (m_layer is ArcGISDynamicMapServiceLayer)
{
if(m_layer.version >= 10.01)
{
httpServ.url = ArcGISDynamicMapServiceLayer(layer).url.replace("?token=", "/legend?f=json&token="); httpServ.resultFormat = "text";
lname = ArcGISDynamicMapServiceLayer(m_layer).id;
lInfos = ArcGISDynamicMapServiceLayer(m_layer).layerInfos
httpServ.addEventListener(ResultEvent.RESULT,function(event:ResultEvent):void{processLegend1(event,lname,Number.NaN,lInfos,httpServ.url)});
httpServ.send();
}else{
lname = ArcGISDynamicMapServiceLayer(m_layer).id;
ArcGISDynamicMapServiceLayer(m_layer).addEventListener(DetailsEvent.GET_ALL_DETAILS_COMPLETE,function(event:DetailsEvent):void{getAllDetailsResult(event,lname)});
ArcGISDynamicMapServiceLayer(m_layer).addEventListener(FaultEvent.FAULT, function(event:Event):void{FlexGlobals.topLevelApplication.dispatchEvent(new Event("legendDataLoaded$"))});
ArcGISDynamicMapServiceLayer(m_layer).getAllDetails();
}
}
else if (m_layer is FeatureLayer)
{
var FeatServId:Number = Number.NaN;
var msName:String = FeatureLayer(m_layer).url.replace("FeatureServer","MapServer");
if(msName.substring(msName.length - 9) != "MapServer")
{
httpServ.url = msName.substring(0,msName.lastIndexOf("/")) + "/legend?f=json";
FeatServId = parseInt(msName.substring(msName.lastIndexOf("/")+ 1));
}else{
httpServ.url = msName + "/legend?f=json";
}
// Source Edit by JMB - add support for token-secured services
if (FeatureLayer(m_layer).token && FeatureLayer(m_layer).token != "")
{
httpServ.url += "&token=" + FeatureLayer(m_layer).token;
}
if(m_layer.layerDetails.version >= 10.01)
{
httpServ.resultFormat = "text";
lname = FeatureLayer(m_layer).id;
httpServ.addEventListener(ResultEvent.RESULT,function(event:ResultEvent):void{processLegend(event,lname,FeatServId)});
httpServ.send();
} else {
lname = FeatureLayer(m_layer).id;
getFeatureResult(FeatureLayer(m_layer).layerDetails,lname);
}
}
}