3 Stimmen

Wie kann man Java Web Start dazu bringen, sich ein Passwort zu merken?

Ich verwende Java Web Start. Die Datei befindet sich auf einem http-Server, der Name und Passwort benötigt (es ist ein Windows-Server). Der Java-Web-Start macht Folgendes (mit geschwärztem Benutzer und IP):

java web start

Dasselbe gilt für den MS Windows-Client. Es gibt die Option "Speichern Sie dieses Kennwort in Ihrer Kennwortliste", die überhaupt nichts bewirkt (sowohl unter Mac OS als auch unter Windows), und wenn Sie diese Java-Web-Start-App erneut ausführen, wird das Kennwort erneut verlangt.

Ist es ein Fehler in JWS? Oder was genau ist da los?

1voto

kmace Punkte 1782

Ich hatte gerade das gleiche Problem.

Es stellt sich heraus, dass Sie Ihren Webbrowser neu starten müssen, damit Java sich Ihr Passwort merkt.

Ich habe auch den Java-Cache zugelassen, aber ich glaube nicht, dass das die Lösung war.

1voto

NagyI Punkte 5787

Ich habe ein Workaround für dieses Problem implementiert. Sie können eine Art von Cookie-basierter Authentifizierung zur Unterstützung der Passwort-Authentifizierung verwenden.

In meinem Fall, wenn eine erfolgreiche Anmeldung mit der HTTP-Basisauthentifizierung erfolgt, sende ich ein Cookie in mein Servlet, das den Benutzernamen und das Kennwort auf die gleiche Weise enthält, wie es der HTTP-Header enthält, wenn die Basic-Methode verwendet wird (BASE64-kodiert). Web Start speichert dieses Cookie im Cookie-Speicher des Internet Explorers unter Windows (auf anderen Systemen hat Web Start einen eigenen Cookie-Speicher). Web Start sendet dieses Cookie dann jedes Mal, wenn von meiner Domäne aus auf eine Ressource zugegriffen wird. Sie können eine sehr lange Lebensdauer für das Cookie festlegen (z. B. 10 Jahre), die wahrscheinlich ohnehin die aktuelle Betriebssysteminstallation überdauert.

Bei nachfolgenden Anfragen prüfe ich das Vorhandensein des Cookies und versuche, den Benutzer dementsprechend zu validieren. Wenn das Cookie auth ungültig ist und kein HTTP Authorization Header erhalten (oder der ist auch ungültig), sende ich die HTTP 401 Unauthorized Status.

Der Nachteil ist, dass der Benutzername und das Passwort als Cookie auf dem Computer gespeichert werden. Das Kennwort wird auf die gleiche Weise wie bei der HTTP-Basisauthentifizierung über das Netzwerk gesendet, nur in einer anderen Kopfzeile, so dass Sie es mit HTTPS schützen können.

Dies löst auch das Problem der fehlenden Passwort-Erinnerungsoption bei Linux Web Start.

0voto

xpusostomos Punkte 874

Ich habe die Cookie-Idee umgesetzt, das Problem ist nun, wie löscht man den Cookie, wenn man das möchte? Ich meine, es ist schön, dass der Cookie dauerhaft ist, aber was ist, wenn der Benutzer den Cookie löschen möchte? Soweit ich sehe, gibt es in der Java-Konsole keine Möglichkeit, dies zu tun. Das Löschen des Web-Start-Caches scheint auch nicht zu funktionieren. Unter Windows speichert der IE das Cookie angeblich, so dass der IE eine Schnittstelle bietet (ich habe es nicht selbst getestet). Aber auf dem Mac und vermutlich auch unter Linux kann ich einfach nicht herausfinden, wo sie gespeichert sind. Ich habe versucht, in den Einstellungsdateien zu suchen und den gesamten Java-Cache-Ordner zu löschen, aber sie sind immer noch irgendwo gespeichert. Hat jemand eine Idee?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X