Revision: 6218 http://sourceforge.net/p/jump-pilot/code/6218 Author: edso Date: 2020-01-13 15:38:53 +0000 (Mon, 13 Jan 2020) Log Message: ----------- move WMS auth to the utility class should fix connecting WMS using authentification after adding http redirect support " java.lang.IllegalStateException: Already connected at sun.net.www.protocol.http.HttpURLConnection.setRequestProperty(Unknown Source) at sun.net.www.protocol.https.HttpsURLConnectionImpl.setRequestProperty(Unknown Source) at com.vividsolutions.wms.AbstractWMSRequest.prepareConnection(AbstractWMSRequest.java:80) at com.vividsolutions.wms.AbstractWMSRequest.getConnection(AbstractWMSRequest.java:98) at com.vividsolutions.wms.AbstractWMSRequest.getInputStream(AbstractWMSRequest.java:145) at com.vividsolutions.wms.WMService.initialize(WMService.java:141 ... "
Modified Paths: -------------- core/trunk/src/com/vividsolutions/wms/AbstractWMSRequest.java core/trunk/src/org/openjump/util/URLConnectionProvider.java Modified: core/trunk/src/com/vividsolutions/wms/AbstractWMSRequest.java =================================================================== --- core/trunk/src/com/vividsolutions/wms/AbstractWMSRequest.java 2020-01-08 22:21:51 UTC (rev 6217) +++ core/trunk/src/com/vividsolutions/wms/AbstractWMSRequest.java 2020-01-13 15:38:53 UTC (rev 6218) @@ -6,21 +6,16 @@ import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; -import java.nio.charset.Charset; import java.util.List; import java.util.Map.Entry; import javax.imageio.ImageIO; -import net.iharder.Base64; - import org.apache.commons.io.IOUtils; import org.apache.commons.io.input.BoundedInputStream; import org.openjump.util.URLConnectionProvider; -import org.openjump.util.UriUtil; import com.vividsolutions.jump.util.FileUtil; -import com.vividsolutions.jump.workbench.Logger; abstract public class AbstractWMSRequest implements WMSRequest { @@ -72,18 +67,6 @@ // by default we follow redirections con = (HttpURLConnection) URLConnectionProvider.getJUMP_URLConnectionProvider().getHttpConnection(requestUrl, true); - // add this service's auth info - String userInfo = requestUrl.getUserInfo(); - if (userInfo != null) { - Logger.trace(Base64.encodeBytes(UriUtil.urlDecode(userInfo) - .getBytes(Charset.forName("UTF-8")))); - con.setRequestProperty( - "Authorization", - "Basic " - + Base64.encodeBytes(UriUtil.urlDecode(userInfo).getBytes( - Charset.forName("UTF-8")))); - } - return con; } @@ -96,7 +79,7 @@ public HttpURLConnection getConnection() throws IOException { if (con == null) con = prepareConnection(); - + return con; } Modified: core/trunk/src/org/openjump/util/URLConnectionProvider.java =================================================================== --- core/trunk/src/org/openjump/util/URLConnectionProvider.java 2020-01-08 22:21:51 UTC (rev 6217) +++ core/trunk/src/org/openjump/util/URLConnectionProvider.java 2020-01-13 15:38:53 UTC (rev 6218) @@ -9,6 +9,8 @@ import com.vividsolutions.jump.workbench.ui.plugin.PersistentBlackboardPlugIn; import com.vividsolutions.wms.WMSException; +import net.iharder.Base64; + import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; @@ -19,6 +21,7 @@ import java.net.URL; import java.net.URLConnection; import java.net.URLDecoder; +import java.nio.charset.Charset; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.cert.X509Certificate; @@ -109,6 +112,14 @@ HttpURLConnection connection = (HttpURLConnection)url.openConnection(); + // add auth info if any + String userInfo = url.getUserInfo(); + if (userInfo != null) { + String auth = Base64.encodeBytes(UriUtil.urlDecode(userInfo).getBytes(Charset.forName("UTF-8"))); + connection.setRequestProperty("Authorization", "Basic " + auth); + Logger.trace("Added auth header 'Authorization: Basic "+auth+"'"); + } + // apply timeouts from settings connection.setConnectTimeout(Integer.parseInt( ProxySettingsOptionsPanel.getInstance().getSetting(ProxySettingsOptionsPanel.OPEN_TIMEOUT_KEY).toString())); _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel