現在、resteasy を使用して呼び出すいくつかの URI があります。これは次のようになります。
http://host.com/api/project1/getsomestuff
と
http://host.com/api/project2/getsomestuff
どちらもダイジェスト認証を使用しますが、認証には異なるユーザー名とパスワードが必要です。現在、コードでは、次のようにプロジェクトごとに異なるクライアント インスタンスを作成して、これを処理する必要があります。
DefaultHttpClient project1Client = new DefaultHttpClient();
Credentials project1Credentials = new UsernamePasswordCredentials("user1", "password1");
project1Client.getCredentialsProvider().setCredentials(AuthScope.ANY, project1Credentials);
ClientExecutor executor1 = new ApacheHttpClient4Executor(project1Client);
MyService project1Proxy = ProxyFactory.create(MyService.class, executor1);
project1Proxy.getSomeStuff("project1");
DefaultHttpClient project2Client = new DefaultHttpClient();
Credentials project2Credentials = new UsernamePasswordCredentials("user2", "password2");
project2Client.getCredentialsProvider().setCredentials(AuthScope.ANY, project1Credentials);
ClientExecutor executor2 = new ApacheHttpClient4Executor(project1Client);
MyService project2Proxy = ProxyFactory.create(MyService.class, executor2);
project2Proxy.getSomeStuff("project2");
私は AuthScope と CredentialsProvider を調べましたが、これがどのように可能になるかわかりません。同じクライアントを使用して両方の資格情報のセットを使用する方法を知っている人はいますか、それとも複数のクライアントを使用して立ち往生していますか?
また、私はこの残りの呼び出しのサーバー側を制御しておらず、両方の呼び出しで同じレルムを使用しているため、レルムごとに異なる資格情報を設定できないことに注意してください。