3

電子メール送信者クラスのテストを作成していますが、ターゲットのPOP3サーバーからメッセージをダウンロードして、メッセージが到着したかどうかを確認できるようにする必要があります。サーバーはExchangeサーバーであり、接続はSSLを介してのみ可能です。テストはCIサーバーで定期的に実行されるため、正しい認証プロセスは不可能です。私の知る限り、任意の証明書を受け入れることができるカスタムTrustManagerクラスを作成することが可能です。カスタムTrustManagerを使用するようにPOP3接続に指示するにはどうすればよいですか?私のコードの現在の形式では、その方法がわかりません。

    String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

    Properties pop3Props = new Properties();

    pop3Props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
    pop3Props.setProperty("mail.pop3.socketFactory.fallback", "false");
    pop3Props.setProperty("mail.pop3.port", "995");
    pop3Props.setProperty("mail.pop3.socketFactory.port", "995");

    URLName url = new URLName(provider, host, 995, "",
            username, password);

    Session session = Session.getInstance(pop3Props, null);
    Store store = new POP3SSLStore(session, url);
    store.connect();
4

1 に答える 1

1

トラストマネージャーは本当に必要ですか?

証明書を jdk cacerts ファイルにインポートすることもできます。そうすれば、デフォルトの TrustManager がサイトへの SSL 接続を受け入れます。

ここに、サーバー証明書をインポートする方法に関するリンクがあります。

http://javarevisited.blogspot.com/2012/03/add-list-certificates-java-keystore.html

于 2013-02-28T19:14:38.957 に答える