支払いサービス アプリケーションに JBoss Web Services を使用しています。ある時点で、支払いサービス プロバイダーに対してリモート SOAP 呼び出しを行う必要があり、ユーザー名トークンで認証する必要があります。
JBossWS でこれを行う方法を私が知っている唯一の方法は次のとおりです。
Map<String, Object> requestContext = ((BindingProvider)port).getRequestContext();
requestContext.put(BindingProvider.USERNAME_PROPERTY, "foobar");
requestContext.put(BindingProvider.PASSWORD_PROPERTY, "changeme");
しかし、ここでの問題は、「changeme」パスワードが String オブジェクトとしてメモリ内にあり、ガベージ コレクションがいつ行われるかを制御できないことです。攻撃者がこの時点でメモリをダンプすると、資格情報を見つけることができます。
JBossWS で安全な SOAP 呼び出しを行う別の方法はありますか? パスワードがメモリに保持される期間を制御できますか?