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 閱讀(687) 評論(0)  編輯  收藏

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


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

          Welcome here, my friend!

          常用鏈接

          留言簿(12)

          隨筆檔案(66)

          文章分類

          文章檔案(63)

          web

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 89314
          • 排名 - 647

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 衡水市| 哈尔滨市| 大悟县| 宜章县| 易门县| 正镶白旗| 元朗区| 藁城市| 吉安县| 安西县| 天长市| 仪征市| 临朐县| 普陀区| 大化| 连南| 陆丰市| 阿荣旗| 永平县| 宁德市| 宝清县| 大关县| 磴口县| 沐川县| 阳曲县| 九江市| 页游| 襄樊市| 靖远县| 新丰县| 藁城市| 普陀区| 宁都县| 郴州市| 定西市| 晋城| 勃利县| 云梦县| 江津市| 博爱县| 远安县|