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

Servlets/JSP Java Discussion :

retransmission de Cookies


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Points : 22
    Points
    22
    Par défaut retransmission de Cookies
    Bonjour.

    Dans le but de me logguer automatiquement a un site distant je récupère via un HttpClient le cookie de session de ce site distant. Cela fonctionne correctement.

    Je transforme ensuite ce cookie en Cookie java standard et je l'ajoute la response de mon Action (response.addCookie()), puis je fait un sendRedirect vers la page de login du site distant avec les infos nécéssaire au login.

    Mais lorsque je regarde si le cookie existe sur le site distant, il n'y a rien

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    Peut être manquez vous d'informations ...

    J'ai deux applications.
    La 1ere (domaine remote.com)
    La 2nd (domaine local.com)

    local.com récupère appelle une page de remote.com via un HttpClient et récupère le cookie généré via remote.com

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    HttpClient httpClient = new HttpClient();
     
    GetMethod get = new GetMethod();
    get.setURI(new URI(urlLogin,true));
    get.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
    httpClient.getParams().setConnectionManagerTimeout(30000);
    httpClient.getParams().setSoTimeout(30000);
     
    org.apache.commons.httpclient.Cookie[] cookies = httpClient.getState().getCookies();
    Je transforme ensuite ces cookies en javax.servlet.http.Cookie

    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
    for (int i=0; i<cookies.length; i++){
     
            org.apache.commons.httpclient.Cookie tmpCookie = cookies[i];
            Cookie cookie = new Cookie(tmpCookie.getName(),tmpCookie.getValue());
     
            Date expiry = tmpCookie.getExpiryDate();
            if (expiry != null){
                cookie.setMaxAge((int) (expiry.getTime()-System.currentTimeMillis())/1000);
            }
            else {
                cookie.setMaxAge(-1);
            }
            cookie.setDomain(tmpCookie.getDomain());
            cookie.setPath(tmpCookie.getPath());
            cookie.setComment(tmpCookie.getComment());
            cookie.setSecure(tmpCookie.getSecure());
            cookie.setVersion(tmpCookie.getVersion());
     
            response.addCookie(cookie);
     
    }
    Jusque là tout fonctionne correctement. je récupère bien les cookies crée par remote.com et j'arrive bien a les ajouter à ma response.

    Ensuite j'essaye de retransmettre ce cookie à remote via :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.sendRedirect(REMOTE_URL_WHO_READ_COOKIES);
    Et là je n'ai pas les cookies crées à l'origine.

    Je pense que c'est sans doute un pb de domaine. Je ne peux peut être pas crée sur local.com un cookie avec le domaine remote.com
    Bref je suis bien bloqué alors si quelqu'un a la mondre idée qui me permettrait d'avancer je le remercie d'avance.

  3. #3
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    Salut, je ne comprend pas trés bien ce que tu veut faire. Un cookie est local à un browser, si je comprend bien ce que tu dit, tu voudrait mettre un cookie sur un site distant? Dans ce cas c'est impossible!

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    en fait je n'utilise pas de browser.

    J'utilise un HttpClient (de l'API common de Jakarta) qui simule un browser.
    Ma page distante m'envoit un cookie et il faut que je lui retransmette ensuite dans la response. (un peu comme dans les procédures de SSO)

  5. #5
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    OK à ma connaissance, il faut être sur un domain pour pouvoir écrire un cookie sur celui-ci.

    Donc il te faudrait des domain du style :
    - remote.mondomain.com
    - local.mondomain.com

    De ce fait tu pourrait écrire des cookie sur le domain '.mondomain.com'

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    C'est bien ce que je craignais.

    Pourtant des gens de mon entourage me disent qu'ils l'ont déjà fait et que cela fonctionne. Ce qui me conforte dans l'idée, c'est l'existance de la methode Cookie.setDomain();

    Mais effectivement j'ai regardé dans le dossier des cookies, si je ne mets rien dans domaine le cookie est crée avec local.com dans domaine, et si je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cookie.setDomain("remote.com")
    le cookie n'est pas crée.

    Bon on va dire que je suis un peu dans la M....

  7. #7
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    En fait, tu peut certainement utiliser le domain '.com' ! Il est commun aux deux.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    On m'a confirmé que c'était impossible.

    Il faut que l'appli distante soit capable de se passer cu dit cookie (ou de le récupérer ses valeurs d'une autre facon, dans la request par exemple)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Délai d'expiration des cookies
    Par Sylvain James dans le forum XMLRAD
    Réponses: 40
    Dernier message: 22/03/2006, 10h22
  2. Probleme d'éffacement dans le cookie
    Par Geulderack dans le forum XMLRAD
    Réponses: 6
    Dernier message: 02/04/2003, 14h17
  3. Les Cookies 4° ! : LA SOLUTION
    Par Ph. B. dans le forum XMLRAD
    Réponses: 2
    Dernier message: 31/01/2003, 16h46
  4. Les cookies 3° !!!
    Par Ph. B. dans le forum XMLRAD
    Réponses: 6
    Dernier message: 28/01/2003, 18h13
  5. [XMLRAD] Cookies pour login
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 9
    Dernier message: 23/12/2002, 17h47

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