認証にRampartを使用するAxis2を使用してWebサービスを作成しています。Rampartのすべてのサンプルで、クライアントにはAxis2のクライアント側リポジトリが必要です。Rampartは、次のようにクライアントで開始されます。
ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem("path/to/client/repo", null);
SecureServiceStub stub = new SecureServiceStub(ctx,"https://localhost:8443/axis2/services/SecureService");
ServiceClient sc = stub._getServiceClient();
sc.engageModule("rampart");
メソッドcreateConfigurationContextFromFileSystemには、rampart.marファイルを持つクライアント上のAxis2リポジトリへのパスが必要です。相対パスではなく、完全な絶対パスが必要なようです。
ただし、Java Web Startを使用してクライアントをデプロイしているため、クライアントを実行する必要がある可能性のあるすべてのマシンにAxis2リポジトリを配置することはできません。Webブラウザーの任意のマシンから動作する必要があるため、クライアントがすべてjarに含まれている必要があります。クライアントアプリのjarファイルからrampart.marファイルをロードする方法はありますか?
もう1つの可能性は、ConfigurationContextFactory.createConfigurationContextFromURIsメソッドを使用することですが、これには、サーバー上にaxis2+rampartのオンラインリポジトリを作成する必要があります。誰かがこれのための良いガイドを知っていますか?私はまだすべてを瓶に詰めたいと思っています。