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からのようです
自分でそのアプローチを試したことはありませんが、それがあなたの専門家が行ったことなのか、それともより良い方法があるのか をさまよっていました.
誰かが以前にこのようなことをしたことがあり、いくつかの指針を共有したいと思っていますか?
ありがとう
サム