posts - 66,  comments - 40,  trackbacks - 0

          package test;

          import java.io.IOException;
          import java.net.InetAddress;
          import java.net.Socket;
          import java.net.UnknownHostException;

          import javax.net.ssl.SSLContext;
          import javax.net.ssl.TrustManager;

          import org.apache.commons.httpclient.ConnectTimeoutException;
          import org.apache.commons.httpclient.HttpClientError;
          import org.apache.commons.httpclient.params.HttpConnectionParams;
          import org.apache.commons.httpclient.protocol.ControllerThreadSocketFactory;
          import org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory;

          public class MySecureProtocolSocketFactory implements
          ??SecureProtocolSocketFactory {

          ?private SSLContext sslContext = null;

          ?/**
          ? * Constructor for MySecureProtocolSocketFactory.
          ? */
          ?public MySecureProtocolSocketFactory() {
          ?}

          ?/**
          ? *
          ? * @return
          ? */
          ?private static SSLContext createEasySSLContext() {
          ??try {
          ???SSLContext context = SSLContext.getInstance("SSL");
          ???context.init(null, new TrustManager[] { new MyX509TrustManager() },
          ?????null);
          ???return context;
          ??} catch (Exception e) {
          ???throw new HttpClientError(e.toString());
          ??}
          ?}

          ?/**
          ? *
          ? * @return
          ? */
          ?private SSLContext getSSLContext() {
          ??if (this.sslContext == null) {
          ???this.sslContext = createEasySSLContext();
          ??}
          ??return this.sslContext;
          ?}

          ?/*
          ? * (non-Javadoc)
          ? *
          ? * @see org.apache.commons.httpclient.protocol.ProtocolSocketFactory#createSocket(java.lang.String,
          ? *????? int, java.net.InetAddress, int)
          ? */
          ?public Socket createSocket(String host, int port, InetAddress clientHost,
          ???int clientPort) throws IOException, UnknownHostException {

          ??return getSSLContext().getSocketFactory().createSocket(host, port,
          ????clientHost, clientPort);
          ?}

          ?/*
          ? * (non-Javadoc)
          ? *
          ? * @see org.apache.commons.httpclient.protocol.ProtocolSocketFactory#createSocket(java.lang.String,
          ? *????? int, java.net.InetAddress, int,
          ? *????? org.apache.commons.httpclient.params.HttpConnectionParams)
          ? */
          ?public Socket createSocket(final String host, final int port,
          ???final InetAddress localAddress, final int localPort,
          ???final HttpConnectionParams params) throws IOException,
          ???UnknownHostException, ConnectTimeoutException {
          ??if (params == null) {
          ???throw new IllegalArgumentException("Parameters may not be null");
          ??}
          ??int timeout = params.getConnectionTimeout();
          ??if (timeout == 0) {
          ???return createSocket(host, port, localAddress, localPort);
          ??} else {???
          ???return ControllerThreadSocketFactory.createSocket(this, host, port,
          ?????localAddress, localPort, timeout);
          ??}
          ?}

          ?/*
          ? * (non-Javadoc)
          ? *
          ? * @see SecureProtocolSocketFactory#createSocket(java.lang.String,int)
          ? */
          ?public Socket createSocket(String host, int port) throws IOException,
          ???UnknownHostException {
          ??return getSSLContext().getSocketFactory().createSocket(host, port);
          ?}

          ?/*
          ? * (non-Javadoc)
          ? *
          ? * @see SecureProtocolSocketFactory#createSocket(java.net.Socket,java.lang.String,int,boolean)
          ? */
          ?public Socket createSocket(Socket socket, String host, int port,
          ???boolean autoClose) throws IOException, UnknownHostException {
          ??return getSSLContext().getSocketFactory().createSocket(socket, host,
          ????port, autoClose);
          ?}
          }

          posted on 2007-01-18 09:52 happytian 閱讀(690) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2007年1月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          Welcome here, my friend!

          常用鏈接

          留言簿(12)

          隨筆檔案(66)

          文章分類

          文章檔案(63)

          web

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 89701
          • 排名 - 647

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 炉霍县| 贞丰县| 宜城市| 屏东市| 堆龙德庆县| 正宁县| 四子王旗| 淮南市| 黄石市| 阿勒泰市| 新巴尔虎右旗| 昌吉市| 应用必备| 连城县| 邵武市| 满洲里市| 瑞金市| 南阳市| 睢宁县| 大名县| 咸阳市| 海丰县| 海安县| 班戈县| 梧州市| 临汾市| 阿克苏市| 兴安县| 井陉县| 永兴县| 隆子县| 乌审旗| 新田县| 盐津县| 吉林省| 葫芦岛市| 明溪县| 黔江区| 文山县| 左贡县| 金堂县|