mardi 16 juillet 2013

GeoServer Manager Library : mise à jour pour injecter des cookies

Cette librairie permet d'encapsuler les appels vers GeoServer. Par défaut, seul un login et mot de passe peuvent être communiqués. L'objectif de ce billet est de décrire les évolutions à apporter afin de permettre le transfert d'un cookie dans chaque requête afin, par exemple, de transférer des informationns d'authentification SSO par exemple.

L'ensemble des modifications peut être factorisé au niveau de la classe HTTPUtils. Les méthodes suivantes doivent être modifiées :

    public static boolean exists(String url, String username, String pw)
    public static String get(String url, String username, String pw) throws MalformedURLException
    public static boolean httpPing(String url, String username, String pw)
    public static boolean delete(String url, final String user, final String pw)
L'instruction suivante doit être judicieusement inséré
    if (COOKIE_VAR!=null)
        httpMethod.addRequestHeader("Cookie", COOKIE_VAR);
avant l'appel de l'instruction suivante :
    client.executeMethod(httpMethod); 
 Pour alimenter la variable COOKIE_VAR, la déclaration suivante est nécessaire :
    public static String COOKIE_VAR = null;

Au niveau de l'intégration de la librairie, il est nécessaire, avant chaque appel à la librairie d'appeler l'instruction suivante :
    HTTPUtils.COOKIE_VAR =  [<Nom du cookie>=<valeur du cookie>]

Aucun commentaire:

Enregistrer un commentaire

Related Posts Plugin for WordPress, Blogger...