私は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のでこれを行う方法を知っている唯一の方法は、このようなものですそれがガベージコレクションされるときにオンにします。攻撃者がこの時点でメモリをダンプすると、資格情報を見つけることができます。
JBossWSでセキュリティ保護されたSOAP呼び出しを行うもう1つの方法はありますか?ここでは、パスワードがメモリ内にどれだけ長く残っているかを制御できますか?