1

javax.xml.ws.Provider を使用して、CXF フロントエンド用にプログラムで SSL を構成することについて質問があります。

基本的に、次のような単純なRestful Webサービスを実装しました

@WebServiceProvider()
@ServiceMode(value = Service.Mode.PAYLOAD)
public class RestWebServiceProvider implements Provider<DOMSource> {
    ...
}

そして、次のようなコードで公開しました

public class RestServer {

    protected RestServer() throws Exception {
        System.out.println("Starting Server");
        Endpoint e = Endpoint.create(HTTPBinding.HTTP_BINDING, new RestWebServiceProvider() );
        String address = "http://localhost:9000/rest/test";
        e.publish(address);

    }

    public static void main(String args[]) throws Exception {
        new RestServer();
        System.out.println("Server ready...");

        Thread.sleep(5 * 60 * 1000);
        System.out.println("Server exiting");
        System.exit(0);
    }

}

CXF ダウンロードのサンプル フォルダーにある restful_dispatch サンプル プロジェクトとまったく同じです。

今私が達成しようとしているのは、XML を使用するのではなく、プログラムでこの SSL を構成することです。

なんで?そのため、Web アプリを再起動することなく、ブラウザから実行時に SSL を構成できます。

私は宿題をして、サンプルプロジェクト /jax_rs/basic_https が次のようにやっているのを見ました

 static {
    // set the configuration file
    SpringBusFactory factory = new SpringBusFactory();
    Bus bus = factory.createBus("ServerConfig.xml");
    BusFactory.setDefaultBus(bus);
}

ServerConfig.xml が実際の SSL 構成を定義する Server クラス。しかし、それは私のユースケースには十分な柔軟性がありません.

私はstackoverflowを掘り下げましたが、私が見つけた最良のリンクは、HTTPSを使用したjavax.xml.ws.Endpointからのようです

自分でそのアプローチを試したことはありませんが、それがあなたの専門家が行ったことなのか、それともより良い方法があるのか​​ をさまよっていました.

誰かが以前にこのようなことをしたことがあり、いくつかの指針を共有したいと思っていますか?

ありがとう

サム

4

0 に答える 0