dorti Geschrieben 28. Juli 2004 Geschrieben 28. Juli 2004 Hallo zusammen! Ich hab ein Problem: Ein User ist auf einer Oracle-Datenbank angelegt. Der User meldet sich mit einem Realm(?) an die Datenbank beim Öffnen der entsprechenden HTML-Seite im Browser an. Irgendwie werden dann irgendwelche Headerinformationen bzgl. der Anmeldung im Browser gespeichert. Wo genau ich die abfragen kann, weiß ich nicht. Die Anmelderoutine ist in Java implementiert und war vorgegeben. Ich gebe jetzt dem Benutzer, der mit dem Browser arbeitet und an der Datenbank angemeldet ist, die Möglichkeit, sein Datenbank-Passwort zu ändern. Dies geschieht mit HTML und XSQL (XML und SQL, ein spezielles Entwicklertool von Oracle) Funktioniert auch, ABER nun steckt in den Headerinformationen des Browsers das falsche Passwort. D.h. beim erneuten Aufruf irgendeiner Seite kommt die Fehlermeldung, dass der Browser die Datenbank nicht erreichen kann. Da die Java-Anmeldung so doof implementiert ist, kommt jetzt nicht erneut das Anmeldeformular, sondern nur diese Fehlermeldung. Erst nach einem Neustart des Browsers oder wenn man die Headerinformationen löschen könnte, würde das Anmeldefenster erscheinen. Kann man mit Javascript oder Java oder irgendwie die Headerinformationen löschen oder einen Browserneustart erzwingen? Zitieren
etreu Geschrieben 28. Juli 2004 Geschrieben 28. Juli 2004 Schicke ihm doch die Antwort-Header: "WWW-Authenticate: Basic realm=\"My Realm\"" und "HTTP/1.0 401 Unauthorized" damit sollte der der Browser erneut das Login-Fenster anzeigen. Zitieren
dorti Geschrieben 28. Juli 2004 Autor Geschrieben 28. Juli 2004 Schicke ihm doch die Antwort-Header: "WWW-Authenticate: Basic realm=\"My Realm\"" und "HTTP/1.0 401 Unauthorized" damit sollte der der Browser erneut das Login-Fenster anzeigen. Ja, aber wie schickt man denn sowas? Macht man das in Java oder wo? Ich kenne mich damit überhaupt nicht aus. Zitieren
etreu Geschrieben 28. Juli 2004 Geschrieben 28. Juli 2004 Womit änderst du denn das Kennwort des Benutzers? Servlet oder JSP? Oder ganz was anderes? Zitieren
dorti Geschrieben 28. Juli 2004 Autor Geschrieben 28. Juli 2004 Das Kennwort wird in einer HTML-Form geändert. Die Form schickt das neue Kennwort an eine XSQL-Seite, die dann das SQL-Statement "ALTER USER user IDENTIFIED BY passwort" absetzt. Damit ist das Passwort in der Datenbank geändert und der Browser hat es nicht gemerkt. XSQL ist die Mischung von XML und SQL. Mit XSQL kann man SQL-Abfragen ausführen, die dann automatisch in XML umgeformt werden. Oder man kann DML-Befehle ausführen. XSQL ist wurde von Oracle in Java implementiert und ist, meines Wissen, ein Servlet. Man kann dort, glaube ich, ein ActionHandler definieren, mit dem es möglich sein sollte, Java-Code auszuführen. Hab ich aber noch nicht gemacht, ich kenne mich mit Java und dem Kram net so toll aus. Ich hoffe, dass Du jetzt daraus schlauer geworden bist Zitieren
etreu Geschrieben 28. Juli 2004 Geschrieben 28. Juli 2004 Der ActionHandler hört sich schon mal gut an. Ich glaube um hier weiter zu kommen solltest du dich dann etwas mit Java insbesondere mit Servlets und JSP auseinander setzen. Mit einem Servlet kannst du dann recht einfach die entsprechenden Header zurücksenden. Eine andere Möglichkeit fällt mir leider auch nicht ein. Zitieren
dorti Geschrieben 28. Juli 2004 Autor Geschrieben 28. Juli 2004 Danke für Deine Hilfe! Ich werde mich mal informieren über JSP und Servlets. Zitieren
Wolle Geschrieben 28. Juli 2004 Geschrieben 28. Juli 2004 Dann schieb ich den mal ins Java-Forum rüber Zitieren
geloescht_JesterDay Geschrieben 3. August 2004 Geschrieben 3. August 2004 Irgendwie werden dann irgendwelche Headerinformationen bzgl. der Anmeldung im Browser gespeichert. Wo genau ich die abfragen kann, weiß ich nicht. [...]Erst nach einem Neustart des Browsers oder wenn man die Headerinformationen löschen könnte, würde das Anmeldefenster erscheinen. Kann man mit Javascript oder Java oder irgendwie die Headerinformationen löschen oder einen Browserneustart erzwingen? Das hört sich doch schwer nach Cookies und Sessions an. Einen Browserneustart erzwingen... also eigentlich (zum Glück) ist sowas nicht möglich, stell die mal vor du kommst auf irgendwelche Seiten die dich immer zum Browserneustart zwingen... Falls ihr den IE einsetzt ist es aber dennoch möglich: <html> <form> <input type crash> </form> </html> und der Explorer schliesst sich. Nicht die feine Art und ich bin mir nicht sicher ob es dafür schon einen Fix gibt. Ich weiss nicht genau was für eine Umgebung du benutzt, aber ist es nicht möglich nach dem Ändern des Passworts die Session einfach zu schliessen? IMO hört sich das nämlich nach einer Session an... Edit: Hab es grad malmit dem IE probiert... geht wohl nicht mehr so. http://www.heise.de/newsticker/meldung/36562 hier mal die Quelle Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.