IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IGN API Géoportail Discussion :

Erreur 403 WMSC


Sujet :

IGN API Géoportail

  1. #1
    Futur Membre du Club
    Femme Profil pro
    géomaticienne
    Inscrit en
    Février 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : géomaticienne

    Informations forums :
    Inscription : Février 2012
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Erreur 403 WMSC
    Bonjour,

    j'utilise l'API Géoportail minimum dans une application MapFish/GeoExt et lors du chargement de ma carte, j'ai une erreur 403 Forbidden dans la console javascript suite à l'appel suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://wxs.ign.fr/geoportail/wmsc?LAYERS=GEOGRAPHICALGRIDSYSTEMS.MAPS&EXCEPTIONS=text/xml&FORMAT=image/jpeg&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=IGNF:GEOPORTALFXX&BBOX=786432,4849664,917504,4980736&WIDTH=256&HEIGHT=256&TILED=true
    Erreur qui parait logique vu que la requête ne contient pas la clé gpgKey. Mais je ne comprend pas pourquoi la clé n'est pas envoyée.

    Je précise que ma carte s'affiche correctement, les autres tuiles sont chargées normalement avec le paramètre correspondant à la clé.
    Cette erreur se produit seulement au démarrage, il y a une quinzaine de requêtes qui échouent. Ensuite si je zoome, dézooome, revient au même extent, voire plus éloigné, aucune erreur.

    Voici les morceaux de code correspondants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    
    //initialisation de la carte
        return {
            // for debug, we make this property public:
            vector: null,
     
            loadAPI: function() {
                // wait for all classes to be loaded
                // on attend que les classes soient chargées
                if (checkApiLoading(this.loadAPI,['OpenLayers','GeoExt','Geoportal','Geoportal.Layer','Geoportal.Layer.WMSC'])===false) {
                    return;
                }
    
    
                // load API keys configuration, then load the interface  
                // on charge la configuration de la clef API, puis on charge l'application
                Geoportal.GeoRMHandler.getConfig([myApiKey], null,null, {
                    onContractsComplete: initMap
                });
            }
        };
    
    //projection + extent
    var ignfxx= new OpenLayers.Projection("IGNF:GEOPORTALFXX");
        var monExtentMax = new OpenLayers.Bounds(-500000, 3783000,800000, 8200000);
    
    // map
    map = new OpenLayers.Map('viewerDiv',
                    OpenLayers.Util.extend({
                        maxResolution: 1024
                        ,numZoomLevels: 12
                        ,projection: ignfxx
                        ,units: ignfxx.getUnits()
                        ,maxExtent: monExtentMax
                        ,controls:[
                            new Geoportal.Control.TermsOfService()
                            ,new Geoportal.Control.PermanentLogo()
                            ,new OpenLayers.Control.MousePosition({
                                prefix: "Lambert 93 : x = "
                                ,suffix: " m"
                                ,separator: " m, y = "
                                ,displayProjection: ignfxx
                                ,numDigits: 0
                                ,emptyString: ''
                            })
                            ,new OpenLayers.Control.KeyboardDefaults()
                            ,new OpenLayers.Control.Attribution()
                            ,new OpenLayers.Control.Navigation()
                            ]
                    }
                    ,gGEOPORTALRIGHTSMANAGEMENT));
    
    //choix des layers
            var cat = new Geoportal.Catalogue(map,gGEOPORTALRIGHTSMANAGEMENT);
            var zon = cat.getTerritory('EUE');
            // get Geoportail layer's parameters :
            var scanOpts= cat.getLayerParameters(zon, 'GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC');
            var orthoOpts= cat.getLayerParameters(zon, 'ORTHOIMAGERY.ORTHOPHOTOS:WMSC');
            //create layers
            var scan = createIgnLayer(scanOpts,0.6,true,monExtentMax);
            var ortho = createIgnLayer(orthoOpts,0.6,false,monExtentMax);
    
    //creation de la layer :
        var createIgnLayer = function(couche,opacite,LayerBase,extentMax){
            couche.options.opacity = opacite;
            couche.options.isBaseLayer = LayerBase;
            couche.options.maxExtent = extentMax;
            couche.options["GeoRM"] = Geoportal.GeoRMHandler.addKey(
                    gGEOPORTALRIGHTSMANAGEMENT.apiKey,
                    gGEOPORTALRIGHTSMANAGEMENT[gGEOPORTALRIGHTSMANAGEMENT.apiKey[0]].tokenServer.url,
                    gGEOPORTALRIGHTSMANAGEMENT[gGEOPORTALRIGHTSMANAGEMENT.apiKey[0]].tokenServer.ttl,
                    map);
            couche.options.transitionEffect= 'resize';
            couche.options.displayInLayerSwither = true;
            couche.options.visibility = false;
            couche.options.group = "ign";
            var ignLayer = new couche.classLayer(
                OpenLayers.i18n(couche.options.name),
                couche.url,
                couche.params,
                couche.options);
            map.addLayer(ignLayer);
        };
    J'ai fait plusieurs recherches sur ce forum et autres mais je n'ai rien vu qui correspondait... Si qqun a un idée ?...
    Merci!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 442
    Points : 502
    Points
    502
    Par défaut
    Il me semble que le WMS-C va disparaitre fin août. Mieux vaut passer au WMTS.

    Je crois que les URL sont de la forme wxs.ign.fr/Ma_CLE/geoportail/wmts

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 128
    Points : 1 764
    Points
    1 764
    Par défaut
    Une petite url pour voir ...

    Sinon, il me semble que lors de la demande de clé les urls fournies sont correctes.
    Elles sont de la forme:
    http://gpp3-wxs.ign.fr/CLEF/wmts?SER...etCapabilities

  4. #4
    Futur Membre du Club
    Femme Profil pro
    géomaticienne
    Inscrit en
    Février 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : géomaticienne

    Informations forums :
    Inscription : Février 2012
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Il me semble que le WMS-C va disparaitre fin août. Mieux vaut passer au WMTS.
    fin août déjà ? J'ai vu que la nouvelle version de l'API était en béta donc je préférais attendre avant de migrer mais effectivement si c'est pour dans un mois...

    Une petite url pour voir ...
    je suis en local et la version dev est une appli securisée donc je ne peux pas vous envoyer d'URL mais ci-joint 2 copies d'écran, l'une pour illustrer l'erreur 403 et l'autre pour le bon fonctionnement du chargement de la carte et des tuiles la composant.

    Merci pour vos réponses!
    Images attachées Images attachées   

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 128
    Points : 1 764
    Points
    1 764
    Par défaut
    Pour arriver à mettre au point la page, il est préférable d'en faire une version simplifiée et rendre cette dernière accessible sur une hébergeur gratuit (type https://www.alwaysdata.com/).

  6. #6
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    De toute évidence, le code montré est en API 1.3. Donc, un 403 ne peut signifier qu'une chose (localhost étant autorisé) que la clef ne donne pas le droit d'accès ... Cependant les 403 sont sur une couche qui, dans tes captures, est aussi en 200 ...

    Je ne vois qu'un cas : dépassement du quotas de requêtes ...
    On pourrait avoir l'en-tête complet de la requête et réponse en 403 ?

  7. #7
    Futur Membre du Club
    Femme Profil pro
    géomaticienne
    Inscrit en
    Février 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : géomaticienne

    Informations forums :
    Inscription : Février 2012
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Voici le détail d'une des requêtes qui échoue

    request headers :
    Accept:*/*
    Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
    Accept-Encoding:gzip,deflate,sdch
    Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
    Connection:keep-alive
    Host:wxs.ign.fr
    Referer:http://ror.local/ror_dev.php/carto?_sf_ignore_cache=1
    User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/11.10 Chromium/18.0.1025.168 Chrome/18.0.1025.168 Safari/535.19

    Query String Parameters :
    LAYERS:GEOGRAPHICALGRIDSYSTEMS.MAPS
    EXCEPTIONS:text/xml
    FORMAT:image/jpeg
    SERVICE:WMS
    VERSION:1.1.1
    REQUEST:GetMap
    STYLES:
    SRS:IGNF:GEOPORTALFXX
    BBOX:131072,4980736,262144,5111808
    WIDTH:256
    HEIGHT:256
    TILED:true

    Response Headers :
    Connection:Keep-Alive
    Content-Type:application/vnd.ogc.se_xml;charset=UTF-8
    Date:Tue, 24 Jul 2012 13:29:44 GMT
    Keep-Alive:timeout=15, max=96
    Server:Apache
    Set-Cookie:JSESSIONID=27D0F60CC664080EAC6D7FDADAEA5CC9.7AA065CB60BD389E7D; Path=/
    Transfer-Encoding:chunked

    A priori à part ce paramètre gppkey qui n'est pas présent dans les 1ères requêtes envoyées qui échouent en 403, il n'y a pas de différences avec les requêtes suivantes qui marchent.

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 128
    Points : 1 764
    Points
    1 764
    Par défaut
    et l'url est toujours de la forme
    En 1.3, je pense qu'un referer en ror.local n'est pas autorisé, il faudrait faire l'essai en localhost

  9. #9
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Bien d'accord avec mga_geo :

    1/ si ta clef n'est pas associée à ror.local : 403

    2/ visiblement des requêtes partent AVANT que le jeton ne soit obtenu ; j'oserai même écrire AVANT que l'URL correct (avec gppkey) n'est été formé : un miracle du coup : 403

  10. #10
    Futur Membre du Club
    Femme Profil pro
    géomaticienne
    Inscrit en
    Février 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : géomaticienne

    Informations forums :
    Inscription : Février 2012
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Je vais faire l'essai avec localhost mais j'ai bien généré une clef pour "ror.local".

    De toutes façons je crois que le mieux à faire au vu de vos remarques, c'est que je passe au WMTS vu que la gestion des jetons est différente ça résoudra sûrement le problème!

    Merci pour votre aide en tout cas.

Discussions similaires

  1. Erreur 403 sur Apache
    Par Mamoudou Ly dans le forum Apache
    Réponses: 1
    Dernier message: 14/08/2006, 14h21
  2. erreur 403 serveur
    Par ghita269 dans le forum Langage
    Réponses: 7
    Dernier message: 12/07/2006, 15h07
  3. htaccess - erreur 403 - protéger un dossier image
    Par lepierre dans le forum Apache
    Réponses: 2
    Dernier message: 30/06/2006, 13h59
  4. Réponses: 5
    Dernier message: 23/06/2006, 14h22
  5. Erreur 403 Forbidden
    Par cybernetique dans le forum Apache
    Réponses: 7
    Dernier message: 13/04/2005, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo