banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Tue 17 August 2010 17:21

InfoLI
Juste Inscrit !
Date d'inscription: 17 Aug 2010
Messages: 6

Openlayers Geosserver distant et Accès refusé (Proxy ?)

Bonjour,

situons le contexte :
- je développe une carto web sous OpenLayers sur un site situé sur un serveur A
- je récupère les couches map du service WMS de Géoserver, lui meme situé sur un serveur B

l'affichage des cartes se passe bien.

je souhaite maintenant afficher les données attributaires dans un popup.

l'affichage du popup se passe bien, mais l'accès aux données, grâce à la fonction WMSGetFeatureInfo,
affiche une erreur : "accès refusé".

en faisant le tour de la question, il semblerait qu'il faille installer un proxy  (?) coté serveur B,
et utiliser la ligne suivante depuis le serveur A pour pouvoir utiliser la fonction WMSGetFeatureInfo sans encombre :
>> OpenLayers.ProxyHost = "proxy.cgi?url=";

Question 1 :
Confirmez-vous que ce soit la bonne voie ?

Question 2 :
si oui, quelleS manipulationS dois-je faire ? (coté serveur B, et coté serveur A)

J'ai déjà vu pas mal de techniques, mais aucune ne fonctionne..
Je bloque..
Je vous remercie donc grandement d'avance pour vos lumières..

dans l'attente de votre réponse, à bientôt !

Hors ligne

 

#2 Wed 01 September 2010 11:21

InfoLI
Juste Inscrit !
Date d'inscription: 17 Aug 2010
Messages: 6

Re: Openlayers Geosserver distant et Accès refusé (Proxy ?)

Bonjour à tous,

je cloture cette question, j'ai fini par trouver.

Hors ligne

 

#3 Wed 01 September 2010 11:40

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9864
Site web

Re: Openlayers Geosserver distant et Accès refusé (Proxy ?)

Bonjour,

Un petit mail pour expliciter la solution serait la bienvenu wink

Merci,

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#4 Wed 01 September 2010 16:37

InfoLI
Juste Inscrit !
Date d'inscription: 17 Aug 2010
Messages: 6

Re: Openlayers Geosserver distant et Accès refusé (Proxy ?)

Autant pour moi, comme je n'avais pas eu de réponses, je pensais que ça n'intéressait personne wink

Alors, je reprends la question :
en faisant le tour de la question, il semblerait qu'il faille installer un proxy  (?) coté serveur B,
et utiliser la ligne suivante depuis le serveur A pour pouvoir utiliser la fonction WMSGetFeatureInfo sans encombre :
>> OpenLayers.ProxyHost = "proxy.cgi?url=";


c'était donc bien la voie à suivre, mais tout se fait coté serveur A, il n'y a rien à toucher coté serveur B.

Donc, il faut utiliser le fichier proxy.cgi fourni par openlayers, et le mettre dans un dossier sur le serveur A,
en ajoutant dedans le domaine du serveur B.

et voici le code pour accéder aux données :

Code:

        OpenLayers.ProxyHost="[le chemin complet]/cgi-bin/proxy.cgi?url=";

        layerPICTOS = new OpenLayers.Layer.WMS(
        "pictos_point - Tiled", "http://[le domaine]:8080/geoserver/wms",
        {
            height: '402',
            width: '512',
            layers: '[le nom de la couche geoserver]',
            styles: '',
            srs: 'EPSG:27562',
            format: 'image/png',
            tiled: 'true',
            tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom
        },
        {
            buffer: 1,
            attribution : true                    
        });

        map.addLayers([layerPICTOS]);
        map.addControl(new OpenLayers.Control.LayerSwitcher());
    
        map.events.register('click', map, function (e) {    
    var Lurl =  layerPICTOS.getFullRequestString({ 
                   REQUEST: "GetFeatureInfo", 
                   EXCEPTIONS: "application/vnd.ogc.se_xml", 
                   BBOX: layerPICTOS.map.getExtent().toBBOX(), 
                   X: e.xy.x, 
                   Y: e.xy.y, 
                   INFO_FORMAT: 'text/html', 
                   QUERY_LAYERS: '[nom de la couche geoserver]', 
                   layers:'[nom de la couche geoserver]', 
       WIDTH: map.size.w, 
                   HEIGHT: map.size.h,
       extractAttributes:'true'
            });
            OpenLayers.loadURL(Lurl, '', this, setHTML);
            OpenLayers.Event.stop(e);
       }

function setHTML(response){    
     var laPageResultat = response.responseText;    // récupère la globalité de la réponse du GET
      [...ici le code de traitement de vos infos, affichage en popup, ou autre...]    
}

Hors ligne

 

#5 Wed 01 September 2010 16:47

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9864
Site web

Re: Openlayers Geosserver distant et Accès refusé (Proxy ?)

Merci smile

La recherche sur Google ou le forum permet de tomber dessus et de trouver une solution !

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

Pied de page des forums

Powered by FluxBB