changeset 2001:47802906c81f

Use a custom cookie manager rather than just a custom cookiestore. This allows cookie strings with spaces to return correctly, as expected by some webservers (e.g. Miniserv from WebMin).
author Deepak Bhole <dbhole@redhat.com>
date Tue, 25 Aug 2009 10:30:05 -0400
parents dbe859b50636
children be850f0b74e2
files ChangeLog plugin/icedtea/sun/applet/PluginCookieInfoRequest.java plugin/icedtea/sun/applet/PluginMain.java
diffstat 3 files changed, 19 insertions(+), 46 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Oct 06 18:06:43 2009 +0100
+++ b/ChangeLog	Tue Aug 25 10:30:05 2009 -0400
@@ -1,3 +1,16 @@
+2009-08-25  Deepak Bhole <dbhole@redhat.com>
+
+	* plugin/icedtea/sun/applet/PluginCookieInfoRequest.java
+	(parseReturn): Store cookie info as a string rather than a list of
+	HttpCookie objects.
+	(getObject): Return the new cookie string.
+	* plugin/icedtea/sun/applet/PluginCookieManager.java: New file, extends
+	CookieManager as is set as the default cookie manager for the plugin.
+	* plugin/icedtea/sun/applet/PluginCookieStore.java : Deleted. New design
+	uses a custom cookiemanager rather than just a custom store.
+	* plugin/icedtea/sun/applet/PluginMain.java
+	(init): Wire in the new cookie manager.
+
 2009-08-25  Deepak Bhole <dbhole@redhat.com>
 
 	* netx/net/sourceforge/jnlp/resources/Messages.properties: Add new
--- a/plugin/icedtea/sun/applet/PluginCookieInfoRequest.java	Tue Oct 06 18:06:43 2009 +0100
+++ b/plugin/icedtea/sun/applet/PluginCookieInfoRequest.java	Tue Aug 25 10:30:05 2009 -0400
@@ -37,12 +37,6 @@
 
 package sun.applet;
 
-import java.net.HttpCookie;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.sun.jndi.toolkit.url.UrlUtil;
 
 /**
  * This class represents a request object for cookie information for a given URI
@@ -50,7 +44,7 @@
 
 public class PluginCookieInfoRequest extends PluginCallRequest {
 
-    List<HttpCookie> cookieObjects = new ArrayList<HttpCookie>();
+    String cookieString = new String();
 
     public PluginCookieInfoRequest(String message, String returnString) {
         super(message, returnString);
@@ -63,45 +57,11 @@
 
     	PluginDebug.debug ("PluginCookieInfoRequest GOT: " + cookieInfo);
 
-    	String encodedURI = cookieInfo.split(" ")[2];
-    	
     	// Skip the first 3 components. We are guaranteed 3 components, 
     	// so no index -1 to worry about
     	cookieInfo = cookieInfo.substring(cookieInfo.indexOf(' ')+1);
     	cookieInfo = cookieInfo.substring(cookieInfo.indexOf(' ')+1);
-    	cookieInfo = cookieInfo.substring(cookieInfo.indexOf(' ')+1);
-
-    	URI siteURI;
-    	try
-    	{
-    	    siteURI = new URI(UrlUtil.decode(encodedURI, "UTF-8"));
-    	} catch (Exception e)
-    	{
-    	    e.printStackTrace();
-    	    return;
-    	}
-
-    	if (cookieInfo != null && cookieInfo.length() > 0)
-    	{
-    	    String[] cookies = cookieInfo.split(";");
-
-    	    for (int i = 0; i < cookies.length; i++) 
-    	    {
-    	        ArrayList l = new ArrayList();
-
-    	        String cookie = cookies[i];
-    	        cookie = cookie.trim();
-    	        String cookieName = cookie.substring(0, cookie.indexOf("="));
-    	        String cookieValue = cookie.substring(cookie.indexOf("=")+1);
-
-    	        HttpCookie httpCookieObj = new HttpCookie(cookieName, cookieValue);
-    	        httpCookieObj.setPath(siteURI.getPath());
-    	        httpCookieObj.setVersion(0); // force v0
-
-    	        PluginDebug.debug("Adding cookie info COOKIEN=" + cookieName + " and COOKIEV=" + cookieValue);
-    	        cookieObjects.add(httpCookieObj);
-    	    }
-    	}
+    	cookieString = cookieInfo.substring(cookieInfo.indexOf(' ')+1);
 
         setDone(true);
     }
@@ -116,7 +76,7 @@
     	return message.startsWith(returnString);
     }
 
-    public List<HttpCookie> getObject() {
-    	return this.cookieObjects;
+    public String getObject() {
+    	return this.cookieString;
     }
 }
--- a/plugin/icedtea/sun/applet/PluginMain.java	Tue Oct 06 18:06:43 2009 +0100
+++ b/plugin/icedtea/sun/applet/PluginMain.java	Tue Aug 25 10:30:05 2009 -0400
@@ -215,12 +215,12 @@
 		    System.err.println("Unable to set SSLSocketfactory (may _prevent_ access to sites that should be trusted)! Continuing anyway...");
 		    e.printStackTrace();
 		}
-        
+
 		// plug in a custom authenticator and proxy selector
         Authenticator.setDefault(new CustomAuthenticator());
         ProxySelector.setDefault(new PluginProxySelector());
         
-        CookieManager ckManager = new CookieManager(new PluginCookieStore(), null);
+        CookieManager ckManager = new PluginCookieManager();
         CookieHandler.setDefault(ckManager);
 	}