2017-01-29 6 views
0

Ich habe eine Java-Desktop-Anwendung, und ich muss eine Webseite mit Standard-Browser öffnen, indem Sie auf eine Schaltfläche klicken. Ich kann es wie folgt tun:Wie kann ich eine Webseite im Standardbrowser öffnen und die Standardauthentifizierung im Hintergrund in Java übergeben?

Desktop.getDesktop().browse(uri); 

Aber es gibt eine Anforderung: Web-Seite hat die Standardauthentifizierung und es muss automatisch bestanden, ohne durch Benutzername und Kennwort eingeben.

Wie kann ich es tun?

+0

Was genau meinen Sie mit „Web-Seite hat die Standardauthentifizierung und es muss automatisch bestanden, ohne die Eingabe Login und Passwort von Benutzer "? –

+0

Ich habe es als "HTTP basic auth" verstanden, was dazu führte, dass der Browser einen Login-Bildschirm zeigte ..? –

+0

Grzegorz Górkiewicz, ich meine, dass im normalen Fall, wenn der Benutzer die URL im Browser öffnet, er ein Formular sehen und Login und Passwort eingeben muss, und erst nachdem er eingegeben und OK gedrückt hat, wird die Webseite geöffnet. Voraussetzung ist - wenn der Benutzer auf eine Schaltfläche in unserer Desktop-Anwendung klickt, geht er zur selben URL, aber die richtige Webseite muss sofort angezeigt werden, der Benutzer darf kein Authentifizierungsformular sehen (Login muss im Hintergrund sein). –

Antwort

0

Wie wird Ihre Desktop-Anwendung, die Benutzer authentifiziert? Haben Sie eine Authentifizierungs- oder Sitzungs-ID, nachdem sich der Benutzer über Ihre Desktop-App angemeldet hat?

Wenn ja, müssen Sie das zum URI hinzufügen und einen Dienstendpunkt haben, der weiß, wie er damit umgehen soll. Nicht ideal, da Sie die Authentifizierungs-ID als Teil der URL angeben.

Zum Beispiel

Desktop.getDesktop().browse("https://myservice/loginFromDesktop?auth=" + URLEncoder.encoder(authID, "UTF-8"); 

Dies vorausgesetzt, dass Sie tatsächlich die Kontrolle über den Web-Service haben :)

+0

Es gibt keine Verbindung zwischen Desktop App Auth und Auth in der Webseite - Seite gehört zum externen System. Login und Passwort für Basic Auth ist für alle Benutzer, die Zugriff auf die Schaltfläche haben, identisch. Wenn ich in der URL-Zeichenfolge authID hinzufüge, kann es Konflikte mit anderen Anfrageparametern geben? Ich habe bereits 2 Parameter, also kann ich einfach eine AuthID hinzufügen, und es wird mich auf die richtige Seite umleiten? –

+0

Wenn Sie keinen Zugriff auf das externe System haben, werden die Dinge etwas komplizierter. Muss es der Standardbrowser sein? –

Verwandte Themen