????????ArcGIS Server 代理可以支持訪問(wèn)跨域資源龙致、超過(guò)2058個(gè)字符的請(qǐng)求绩脆、使用基于令牌的身份驗(yàn)證訪問(wèn)安全的資源、Oauth 2.0 app logins等暇藏,有.net蜜笤、java、php版本盐碱,我的需求是ArcGIS Server 添加登錄驗(yàn)證把兔,當(dāng)前以java 版本為例沪伙,主要分為四步:
第一步:arcgis server manager 中新增角色和用戶,具體步驟為:
登錄 arcgis server manager網(wǎng)站---》安全性---》用戶/角色县好,如下圖:
第二步:為地圖服務(wù)配置訪問(wèn)權(quán)限围橡,可以配置某一個(gè)地圖服務(wù)的,也可以配置某個(gè)目錄下的所有地圖服務(wù)的缕贡,也可以配置根目錄下所有地圖服務(wù)的翁授,具體如下圖:
第三步:修改代理配置如下:
在 serverUrl 節(jié)點(diǎn)中設(shè)置需要進(jìn)行登錄驗(yàn)證的url,以及對(duì)應(yīng)的用戶名和密碼
第四步:前端Arcgis API for JavaScript(我用的是3.x系列)工程中設(shè)置代理晾咪,具體可以參考APIesri/config中的io對(duì)象收擦,代碼如下:
esriConfig.defaults.io.proxyUrl= "http://localhost:8088/proxy/proxy.jsp"
esriConfig.defaults.io.alwaysUseProxy= true;
如果不通過(guò)arcgis api 訪問(wèn)地圖服務(wù),直接通過(guò)ajax訪問(wèn)地圖服務(wù)的的話禀酱,可以直接訪問(wèn)代理地址炬守,將地圖服務(wù)地址作為參數(shù),具體如下:
var url = "http://domain:port/proxy/proxy.jsp?http://domain:port/arcgis/rest/services/xxx/mapServer/legend?f=pjson"
?$.ajax({ url: url, success:function(e){
? ? ? ? ?console.log(e)
? }});
以上就是實(shí)現(xiàn) arcgis server安全登錄驗(yàn)證的步驟剂跟,如果需要使用自己的用戶名密碼减途,可以先進(jìn)行業(yè)務(wù)系統(tǒng)的登錄驗(yàn)證,驗(yàn)證通過(guò)再做arcgis
server 的登錄驗(yàn)證(需要修改jsp 源碼)