Ich verwende JBoss Web Services für eine Zahlungsdienstanwendung. Irgendwann muss ich Remote-SOAP-Anrufe an einen Zahlungsdienstanbieter machen und ich muss mich mit einem Benutzernamen-Token authentifizieren.Wie lösche ich Passwörter aus dem Speicher, wenn ich Benutzernamen-Tokens mit JBossWS verwende?
Der einzige Weg, ich weiß, wie dies mit JBossWS zu tun ist, wie folgt aus:
Map<String, Object> requestContext = ((BindingProvider)port).getRequestContext();
requestContext.put(BindingProvider.USERNAME_PROPERTY, "foobar");
requestContext.put(BindingProvider.PASSWORD_PROPERTY, "changeme");
Aber das Problem hier ist, dass die „changeme“ Passwort nun im Speicher als String-Objekt ist, und ich habe keine Kontrolle wann, wenn überhaupt, wird Müll gesammelt. Wenn ein Angreifer zu diesem Zeitpunkt Speicher ablegt, kann er die Anmeldeinformationen finden.
Gibt es eine andere Möglichkeit, sichere SOAP-Aufrufe mit JBossWS zu machen, wo ich kontrollieren kann, wie lange ein Passwort im Speicher verbleibt?