Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

walkmod not working behind a proxy (with resolution) #90

Open
vladislav-knoll opened this issue Nov 15, 2019 · 1 comment
Open

walkmod not working behind a proxy (with resolution) #90

vladislav-knoll opened this issue Nov 15, 2019 · 1 comment

Comments

@vladislav-knoll
Copy link

I wasn't able to use walkmod behind a corporate proxy, because the PrintPluginsCommand tries connect to the MVN_SEARCH_URL to get all available plugins and walks into an Exception.
I was able to avoid this issue by writing a ProxyUrlUtil

package org.walkmod.util;

import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.Proxy.Type;
import java.net.URL;

public class ProxyUrlUtil {

  public static InputStream openURL(String url) throws IOException {
    String[] proxyHost = System.getProperty("http.proxyHost").split("\\."); //$NON-NLS-1$ //$NON-NLS-2$
    int proxyPort = Integer.parseInt(System.getProperty("http.proxyPort")); //$NON-NLS-1$
    Proxy proxy = null;
    if (proxyHost != null) {
      byte[] proxyAddress = new byte[4];
      for (int i = 0; i < 4; i++) {
        proxyAddress[i] = (byte) Integer.parseInt(proxyHost[i]);
      }
      InetAddress address = InetAddress.getByAddress(proxyAddress);
      InetSocketAddress socket = new InetSocketAddress(address, proxyPort);
      proxy = new Proxy(Type.HTTP, socket);
    }

    if (proxy != null) {
      return new URL(url).openConnection(proxy).getInputStream();
    } else {
      return new URL(url).openStream();
    }
  }
}

and using it in the org.walkmod.commands.PrintPluginsCommand

is = ProxyUrlUtil.openURL(MVN_SEARCH_URL);
projectIs = ProxyUrlUtil.openURL(artifactDetailsURL);

Furthermore you have to insert your http.proxyHost and http.proxyPort in the the walkmod.bat

@set WALKMOD_OPTS=-Dhttp.proxyHost=<MY_PROXY_HOST> -Dhttp.proxyPort=<MY_PROXY_PORT>

@octopatch
Copy link
Contributor

octopatch commented Nov 15, 2019 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants