科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Java程序如何穿透带有密码验证的代理

Java程序如何穿透带有密码验证的代理

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

网上也有一些文章但是大多数涉及带有授权验证的proxy都有问题,主要问题就是出在对Authenticator.setDefault的使用,以及base64编码的问题上代码是最没有二义性的文档,实现原理不再解释,请看代码去体会。

作者:中国IT实验室 来源:中国IT实验室 2007年8月31日

关键字: 密码验证 java

  • 评论
  • 分享微博
  • 分享邮件
 网上也有一些文章但是大多数涉及带有授权验证的proxy都有问题,主要问题就是出在对Authenticator.setDefault的使用,以及base64编码的问题上代码是最没有二义性的文档,实现原理不再解释,请看代码去体会。
  
  ackage org.chimae.net;
  
  import java.io.BufferedReader;
  
  import java.io.IOException;
  
  import java.io.InputStream;
  
  import java.io.InputStreamReader;
  
  import java.net.Authenticator;
  
  import java.net.HttpURLConnection;
  
  import java.net.PasswordAuthentication;
  
  import java.net.URL;
  
  /**
  
  * @author chimae@cnjsp.org
  
  */
  
  ublic class ProxyConnTest {
  
  ublic static void initProxy(String host, int port, final String username,
  
  final String password) {
  
  Authenticator.setDefault(new Authenticator() {
  
  rotected PasswordAuthentication getPasswordAuthentication() {
  
  return new PasswordAuthentication(username,
  
  ew String(password).toCharArray());
  
  }
  
  });
  
  System.setProperty(\"http.proxyType\", \"4\");
  
  System.setProperty(\"http.proxyPort\", Integer.toString(port));
  
  System.setProperty(\"http.proxyHost\", host);
  
  System.setProperty(\"http.proxySet\", \"true\");
  
  }
  
  ublic static void main(String[] args) throws IOException {
  
  String url = \"http://java.sun.com/\";
  
  String proxy = \"yourProxy\";
  
  int port =8080;
  
  String username =\"username\";
  
  String password =\"password\";
  
  String curLine = \"\";
  
  String content = \"\";
  
  URL server = new URL(url);
  
  initProxy(proxy,port,username,password);
  
  HttpURLConnection connection = (HttpURLConnection)server.openConnection();
  
  connection.connect();
  
  InputStream is = connection.getInputStream();
  
  BufferedReader reader = new BufferedReader(new InputStreamReader(is));
  
  while ((curLine = reader.readLine()) != null) {
  
  content += curLine;
  
  }
  
  System.out.println(\"content= \" + content);
  
  is.close();
  
  }
  
  }

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章