2015-04-15 2 views
2

Je voudrais supprimer certains cookies HTTP spécifiques générés par le WebFine JavaFX. Le navigateur Chrome nous permet de supprimer le cookie httponly, ce qui signifie que cela est possible par programmation.Supprimer les cookies spécifiques de webengine JavaFX

Je suis en mesure de supprimer tous les cookies en utilisant

java.net.CookieManager manager = new java.net.CookieManager(); 
manager.getCookieStore().removeAll(); 

L'utilisation de ce que l'utilisateur est déconnecté de ma demande aussi bien. Je veux être en mesure de supprimer tous les cookies à l'exception de celui généré pour mon application. Ou est-il possible de supprimer les mêmes cookies en utilisant javascript.

Répondre

5

Toute personne recherchant la solution. C'est ici. Réglez ce droit au début de la méthode principale de javafx.

cookieManager = new CookieManager(); 
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL); 
CookieHandler.setDefault(cookieManager); 

Puis sur un événement (je l'ai fait onclick d'un bouton) appeler cette

CookieStore cookieJar = Main.cookieManager.getCookieStore(); 
List<HttpCookie> cookies = cookieJar.getCookies(); 

for (HttpCookie ck: cookies) { 
if(ck.getName().equals("JSESSIONID")){ 
      System.out.println("JSESSIONID"); 
    }else{ 
      ck.setMaxAge(0); 
      System.out.println("CookieHandler retrieved cookie: " + ck); 
    } 
} 

J'espère que cela aide quelqu'un parce que je passais toute la journée à la recherche de la solution.

+0

He Hemal, pouvez-vous s'il vous plaît me dire la signification de "Main.cookieManager.getCookieStore()". –

0

According to docsgetCookies()

Retourne un tableau contenant tous les cookies objets du client envoyé à cette demande. Cette méthode renvoie null si aucun cookie n'a été envoyé.

Donc, vous devriez être en mesure de parcourir la liste des cookies retournés et identifier les elegible (s) à supprimer:

Cookie[] cookies = request.getCookies(); 

for (int i = 0; i < cookies.length; i++) { 
    String name = cookies[i].getName(); 
    String value = cookies[i].getValue(); 
} 

Si non, vous pouvez remplacer le cookie en ajoutant avec le addCookie(Cookie)

+0

request.getCookies() me donne les cookies que j'ai générés. Je veux aussi avoir accès à d'autres cookies. – wib