From fb01c8a45d26f0ea63faad92a70c3472f4bfca6c Mon Sep 17 00:00:00 2001 From: Mauro Bartolomeoli Date: Wed, 30 Oct 2013 13:27:34 +0100 Subject: [PATCH] fixed #246: added authentication support to WMSGetFeatureInfo --- .../gxp/src/script/plugins/WMSGetFeatureInfo.js | 1 + .../lib/OpenLayers/Control/WMSGetFeatureInfo.js | 14 +++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/mapcomposer/app/static/externals/gxp/src/script/plugins/WMSGetFeatureInfo.js b/mapcomposer/app/static/externals/gxp/src/script/plugins/WMSGetFeatureInfo.js index d6c66c3d2..6c9fea027 100644 --- a/mapcomposer/app/static/externals/gxp/src/script/plugins/WMSGetFeatureInfo.js +++ b/mapcomposer/app/static/externals/gxp/src/script/plugins/WMSGetFeatureInfo.js @@ -141,6 +141,7 @@ gxp.plugins.WMSGetFeatureInfo = Ext.extend(gxp.plugins.Tool, { queryVisible: true, layers: [x.getLayer()], vendorParams: vendorParams, + authentication: this.authentication, eventListeners: { beforegetfeatureinfo: function(evt) { //first getFeatureInfo in chain diff --git a/mapcomposer/app/static/externals/openlayers/lib/OpenLayers/Control/WMSGetFeatureInfo.js b/mapcomposer/app/static/externals/openlayers/lib/OpenLayers/Control/WMSGetFeatureInfo.js index c9242f65f..6d3a051e9 100644 --- a/mapcomposer/app/static/externals/openlayers/lib/OpenLayers/Control/WMSGetFeatureInfo.js +++ b/mapcomposer/app/static/externals/openlayers/lib/OpenLayers/Control/WMSGetFeatureInfo.js @@ -371,8 +371,15 @@ OpenLayers.Control.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, { }, params); } OpenLayers.Util.applyDefaults(params, this.vendorParams); + var headers; + if(this.authentication) { + headers = { + "Authorization": "Basic " + Base64.encode(this.authentication.user + ":" + this.authentication.password) + }; + } return { url: url, + headers: headers, params: OpenLayers.Util.upperCaseObject(params), callback: function(request) { this.handleResponse(clickPosition, request, url); @@ -460,9 +467,10 @@ OpenLayers.Control.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, { var layers; for (var url in services) { layers = services[url]; - var wmsOptions = this.buildWMSOptions(url, layers, - clickPosition, layers[0].params.FORMAT); - OpenLayers.Request.GET(wmsOptions); + var wmsOptions = this.buildWMSOptions(url, layers, + clickPosition, layers[0].params.FORMAT); + OpenLayers.Request.GET(wmsOptions); + } } },