Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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é ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 02 October 2012 08:17

Geo
Participant occasionnel
Lieu: Liège (Belgique)
Date d'inscription: 18 Sep 2007
Messages: 27

[Geoserver-GeoExt] - sécuriser une application GeoExt

Bonjour,

Ce post pour vous faire part de mes questions et de mes recherches concernant la sécurisation d'une application GeoExt

Mon problème : Je diffuse des données en WMS via une application développée à l'aide de GeoExt. J'aimerais mettre en place une stratégie de sécurité (page d'authentification avant d'accéder à l'application) pour qu'en fonction de leur profil, des utilisateurs ne puissent visualiser que certaines données ou accéder à des fonctions spécifiques (notamment l'édition)

Mon infrastructure : GeoServer 2.1.1/GeoExt/OL2.12

Actuellement, voici où j'en suis arrivé :

- j'ai défini des rôles différents pour les utilisateurs dans GeoServer
- j'ai créé une page de login basique. J'exécute un script test sur base des conseils trouvés ici et ici, je fais une requête sur le j_spring_security_check. J'ai placé des alertes signalant que le script s'est bien exécuté ou non

Code:

<script>    

    function make_base_auth(user, pass) {
       var tok = user + ':' + pass;
       var hash = Base64.encode(tok);
       return "Basic " + hash;
     }

var auth = make_base_auth('admin','geoserver'); //pass par défaut
var url = 'http://localhost:8090/geoserver/j_spring_security_check';
    
var xml = new XMLHttpRequest();
xml.open('GET',url);
xml.setRequestHeader('Authorization', auth);

// ExtJS
Ext.Ajax.request({
    url : url,
    method : 'GET',
    headers : { Authorization : auth },
            success: function(response){
    
        alert("login successful");
        },
        failure: function(response) {
    
        alert("login incorrect");
        }
});
</script>

Ici, premier problème car sous FF ou Chrome, l'alerte me renvoie systématiquement un login incorrecte alors que sous IE, c'est l'inverse. Pourtant Firebug indique que l'URL est bien trouvée et un JSessionID est renvoyé.

J'ai testé le code html brut pour me connecter à Geoserver, puis un deuxième bouton lance l'application. Dans ce cas, ça marche mais avec ouverture de la page geoserver, ce qui n'est pas désiré.

Code:

      <form method="get" action ="http://localhost:8090/geoserver/j_spring_security_check" target=_BLANK >
            <label for="username">Username</label>
            <input id="username" type="text" name="username" value="">
            <label for="password">Password</label>
            <input  id="password" type="password" name="password">
            <input type="submit" value="Login to geoserver">
        </form>
        
        <form method="post" action ="test.html" target=_BLANK >
            <input type="submit" value="Lancer l'application GeoExt">    
        </form>

Voilà donc le début de mes recherches, ce n'est pas concluant même si les pistes envisagées me semblent bonnes.

Peut-être quelqu'un a t-il déjà réalisé ce genre de chose ou qu'une personne a un retour d'expériences par rapport à la sécurisation d'une application GeoExt avec des données servies par GeoServer

J'ai également vu GeoPrisma qui présente une fonctionnalité de filtre répondant à ce que je veux mettre en place. J'ai lu la documentation mais ne sais toujours pas si GeoPrisma est interfaçable avec mon infrastructure. Peut-être que la aussi quelqu'un a déjà réalisé des tests.

Je vous remercie pour vos conseils

Geoffroy

Hors ligne

 

Pied de page des forums

Powered by FluxBB