ich stoß seit geraumer Zeit auf ein unschönes Problem und zwar folgendes:
Ich habe auf einem externen Server eine WebApplikation laufen und beim Login möchte ich, dass
der Username ausgelesen wird, damit es der User nicht selbst eintragen muss.
Ich habe das mit
Code:
String winuser = System.getProperty("user.name");
probiert. Nur da diese Applikation auf dem Server läuft und nur über Internet Explorer aufgerufen wird, zeigt
er mir hier den Serveruser an und nicht den User der von seinem System aus die App aufruft.
>>es müsste doch ne möglichkeit geben
>>die win-variable "username" vom client auszulesen?
Nein, das sollte es ÜBERHAUPT nicht geben, denk mal drüber nach
Du brauchst ein Modul, das den Kerberos / NTLM (oder NTLMv2 oder wie das heisst) Authentifizierungs-Handshake-Tanz mit dem InternetExplorer abwickeln kann, das geht so ohne weiteres nicht
mal ein anderer Vorschlag wobei ich nicht weiss ob das nicht auf den Holzweg führt.
Wenn es sich bei der Server Applikation machen lässt dann bau doch eine Art Applet ein (wenn es eine Page ist, wenn nicht musst du den download und das Ausführen anders triggern).
Übergebe der Client applikation eine eineindutige Kennung die genau dieser einen Session auf dem Server zu geordnet ist. Mit der Client App solltest du dann ja den Benutzernamen auslesen können und dann schickst du ihn wieder gemeinsam mit der Id an den Server zurück.
Wie gesagt ist nur eine schnelle Idee wie ich versuchen würde das zu machen.
For security reasons, no existing browsers or applet viewers let applets read the following system properties.
"java.class.path" Java classpath
"java.home" Java installation directory
"user.dir" User's current working directory
"user.home" User home directory
"user.name" User account name
was würde mich hindern, schnell einen Windows-Stand-Alone Host aufzusetzen, einen Benutzer einzurichten der genauso heisst wie mein Vorgesetzter und dann mit dem IE auf die Seite zu gehen?
so richtig gut ist das alles nicht, es würde für eine automatische Anmeldung doch nicht ausreichen, einfach die Java System Property "user.name" zu verwenden?
Nochwas: welchen externen Server hast du denn? Wenn das zufällig BEA, Oracle oder Websphere ist - die sollten SSO schon beherrschen?
Habe eben mal ein wenig gegoogelt ... es scheint also auch unter JS keine Möglichkeit zu geben. Hab jedenfalls eine Reihe von JS-Seiten besucht, die alles mögliche über mein System angezeigt haben ... nur eben den Usernamen nicht.
Vielleicht solltest du dich doch darauf beschränken, den Usernamen in einem Keks zu speichern. Dann müssen die User den Namen genau einmal eingeben und danach nicht mehr.
kann mich mit der Keks-Backerei in diesem Fall nicht ganz zufrieden geben. Wäre zwar aus technischen Grund eigentlich ausreichend, würde aber einfach aus Neugierde gern nen anderen Weg finden.
Werd mal weitersuchen. Danke für eure Anregungen wenn jemand noch Ideen hat: immer raus damit!
es geht nicht um den sso, hab ich eigentlich auch nie erwähnt. sorry wenn ich mich hier falsch ausgedrückt habe.
ich möchte nur bei meiner webapplikation den win-username auslesen und den in das loginfeld schreiben, so dass der user nur noch sein pw in das pw-feld schreiben muss. also nur komfort.
ich weiß auch net wirklich, was das ganze mit komfort zu tun hat ...
Ich tippe lieber kurz meinen Benutzernamen ein, als dass ich auf irgendein bescheidenes Applet oder nen JavaScript warten muss, welcher zuletzt noch blockiert wird