Ich nutze derzeit das WebView von JavaFX, um einen Browser innerhalb der Anwendung zu implementieren.
Da die Anwendung für mehrere Benutzer gedacht ist, ergibt sich folgendes Problem:
Beim Öffnen des Browser prüfe ich, ob schon Proxydaten gesetzt sind:
Daraufhin öffne ich einen Dialog und speichere die eingegeben Daten dann:
Jetzt muss ich natürlich sicherstellen, dass diese Daten gelöscht werden, wenn der Benutzer wechselt. Deswegen passiert beim Ausloggen folgendes:
Das funktioniert aber leider nicht richtig. Zwar geht dann beim Öffnen des Browser-Frames wieder der Dialog auf (weil die beiden Systemeigenschaften wieder ein Leerstring sind), aber wenn ich dann den Eingabedialog ohne Eingaben schließe (und damit auch keinen neuen Default-Authenticator setze), dann kommt der Browser trotzdem "durch" den Proxy.
Irgendwo scheint er also trotzdem noch die Proxydaten abgelegt zu haben...nur wo?
Da die Anwendung für mehrere Benutzer gedacht ist, ergibt sich folgendes Problem:
Beim Öffnen des Browser prüfe ich, ob schon Proxydaten gesetzt sind:
Java:
if(System.getProperty("http.proxyUser") == null
|| System.getProperty("http.proxyUser").length() == 0
|| System.getProperty("http.proxyPassword") == null
|| System.getProperty("http.proxyPassword").length() == 0)
{
Daraufhin öffne ich einen Dialog und speichere die eingegeben Daten dann:
Java:
final String authUser = map.getString("PROXYUSR");
final String authPassword = map.getString("PROXYPWD");
Authenticator.setDefault(
new Authenticator() {
@Override
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(
authUser, authPassword.toCharArray());
}
}
);
System.setProperty("http.proxyUser", authUser);
System.setProperty("http.proxyPassword", authPassword);
Jetzt muss ich natürlich sicherstellen, dass diese Daten gelöscht werden, wenn der Benutzer wechselt. Deswegen passiert beim Ausloggen folgendes:
Java:
//Reset entered proxy information for the user
System.setProperty("http.proxyUser", "");
System.setProperty("http.proxyPassword", "");
Authenticator.setDefault(null);
Das funktioniert aber leider nicht richtig. Zwar geht dann beim Öffnen des Browser-Frames wieder der Dialog auf (weil die beiden Systemeigenschaften wieder ein Leerstring sind), aber wenn ich dann den Eingabedialog ohne Eingaben schließe (und damit auch keinen neuen Default-Authenticator setze), dann kommt der Browser trotzdem "durch" den Proxy.
Irgendwo scheint er also trotzdem noch die Proxydaten abgelegt zu haben...nur wo?
Zuletzt bearbeitet: