Ticket #1641: josm-httpauth.patch

File josm-httpauth.patch, 2.9 KB (added by Upliner, 16 years ago)

hack to get http auth working

  • src/org/openstreetmap/josm/data/Preferences.java

     
    550550            Properties sysProp = System.getProperties();
    551551            sysProp.put("proxySet", "true");
    552552            sysProp.put("http.proxyHost", get(ProxyPreferences.PROXY_HOST));
    553             sysProp.put("proxyPort", get(ProxyPreferences.PROXY_PORT));
     553            sysProp.put("http.proxyPort", get(ProxyPreferences.PROXY_PORT));
    554554            if (!getBoolean(ProxyPreferences.PROXY_ANONYMOUS)) {
    555                 sysProp.put("proxyUser", get(ProxyPreferences.PROXY_USER));
    556                 sysProp.put("proxyPassword", get(ProxyPreferences.PROXY_PASS));
     555                sysProp.put("http.proxyUser", get(ProxyPreferences.PROXY_USER));
     556                sysProp.put("http.proxyPassword", get(ProxyPreferences.PROXY_PASS));
    557557            }
    558558            System.setProperties(sysProp);
    559559        }
  • src/org/openstreetmap/josm/io/MyHttpURLConnection.java

     
    44import java.io.*;
    55import java.net.URL;
    66import java.net.Proxy;
     7import java.nio.ByteBuffer;
     8import java.nio.CharBuffer;
     9import java.nio.charset.CharacterCodingException;
     10import java.nio.charset.Charset;
     11import java.nio.charset.CharsetEncoder;
    712
     13import org.openstreetmap.josm.Main;
     14import org.openstreetmap.josm.gui.preferences.ProxyPreferences;
     15import org.openstreetmap.josm.tools.Base64;
     16
    817public class MyHttpURLConnection extends sun.net.www.protocol.http.HttpURLConnection {
    9             protected MyHttpURLConnection(URL u, Proxy p, sun.net.www.protocol.http.Handler handler)
     18   
     19    private void addProxyAuth() throws CharacterCodingException
     20    {
     21        if (Main.pref.getBoolean(ProxyPreferences.PROXY_ENABLE)) {
     22            CharsetEncoder encoder = Charset.forName("UTF-8").newEncoder();
     23            String auth = Main.pref.get(ProxyPreferences.PROXY_USER) + ":" + Main.pref.get(ProxyPreferences.PROXY_PASS);
     24            ByteBuffer bytes = encoder.encode(CharBuffer.wrap(auth));
     25            addRequestProperty("Proxy-Authorization", "Basic " + Base64.encode(bytes));
     26        }
     27    }
     28            public MyHttpURLConnection(URL u, Proxy p, sun.net.www.protocol.http.Handler handler)
    1029            {
    1130              super(u,p,handler);
     31              try {
     32                addProxyAuth();
     33              } catch (CharacterCodingException e) {
     34                  System.err.println("Error adding proxy authentication");
     35                  e.printStackTrace();
     36              }
    1237            }
    1338
    1439public synchronized OutputStream getOutputStream()