#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