Methoden Website-URL im Browser öffnen nach erfolgreicher Basisauthentifizierung in Java

J4n5chmiddi

Mitglied
Hey,
ich habe folgendes Problem nach viel Ausprobieren, Googlen und Testen...
Ich suche nach einer Möglichkeit, eine URL im Browser ohne Login Formular zu öffnen. Ich programmiere mit Java in Eclipse auf Win10. Das Thema an sich ist eine Online-Hilfe für unsere Software zu erstellen. Diese soll sich kontextsensitiv im Browser öffnen, wenn der Hilfe-Button innerhalb der Software angeklickt wird. Hierbei soll aber der Login in Confluence umgangen werden und direkt die Online-Hilfe angezeigt werden. Die entsprechende URL und Login-Daten poste ich aus Datenschutz gründen logischerweise nicht. Die Authentication erfolgt aktuell wie folgt:

[CODE lang="java" title="Authentication"]String authString = name + ":" + password;
System.out.println("Auth String: " + authString);
byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
String authStringEnc = new String(authEncBytes);
System.out.println("Base64 encoded auth string: " + authStringEnc);

URL url = new URL(webPage);
URLConnection urlConnection = url.openConnection();
urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc);[/CODE]

Die Authentifizierung ist erfolgreich, aber ich weiß nicht, wie ich die Cookies setzen oder die Sitzung an den Browser übertragen soll. Um den Browser zu öffnen, verwende ich derzeit diesen Code:

[CODE lang="java" title="Webseiten Aufruf mit Browser"]if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {
try {
Desktop.getDesktop().browse(new URI(webPage + "/login.action" + "?os_username=" + name + "&" + "os_password=" + password));
} catch (IOException e) {
e.printStackTrace();
} catch (URISyntaxException e) {
e.printStackTrace();
}
}[/CODE]

Dieses Verfahren ist jedoch viel zu unsicher, da die Anmeldedaten in der URL unverschlüsselt sind. Ich weiß nicht, ob es überhaupt möglich ist, eine in Java authentifizierte Website über den Browser aufzurufen. Ich hab das ganze Internet abgesucht aber nichts gefunden, das jetzt irgendwie beim Aufruf des Browser irgendwelche Header-Daten mit übergibt oder Cookies setzt etc. Ich brauch Hilfe bitte. :) Danke im vorraus!
 

Oneixee5

Top Contributor
Du könntest Jetty als eingebetteten Server betreiben. Wie das geht findest du z.B.: https://www.baeldung.com/jetty-embedded
dieser Server könnte sich die Hilfeseiten vom Confluence mit Login abholen (womöglich auch lokal cachen) und dann ohne Login ausgeben bzw. tunneln. Der Browser am Client müsste dann http://localhost:port/hilfe öffnen.
Problematisch sehe ich dabei aber, dass der Login im Programm bzw. irgend wie lokal im Klartext vorgehalten werden muss. Wäre es nicht viel einfacher dem Kunden einen "NUR-LESE-ACCOUNT" im Confluence bereitzustellen, mit welchem er auf die betreffenden Seiten zugreifen kann.
 

J4n5chmiddi

Mitglied
Du könntest Jetty als eingebetteten Server betreiben. Wie das geht findest du z.B.: https://www.baeldung.com/jetty-embedded
dieser Server könnte sich die Hilfeseiten vom Confluence mit Login abholen (womöglich auch lokal cachen) und dann ohne Login ausgeben bzw. tunneln. Der Browser am Client müsste dann http://localhost:port/hilfe öffnen.
Problematisch sehe ich dabei aber, dass der Login im Programm bzw. irgend wie lokal im Klartext vorgehalten werden muss. Wäre es nicht viel einfacher dem Kunden einen "NUR-LESE-ACCOUNT" im Confluence bereitzustellen, mit welchem er auf die betreffenden Seiten zugreifen kann.
Das Problem hierbei ist selbst wenn er einen "NUR-LESE-ACCOUNT" in Confluence hätte müsste man sich irgendwie in diesen einloggen...
 

J4n5chmiddi

Mitglied
Da wir eine Java Swing Anwendung haben war es nicht so einfach die JFX WebView einzubinden aber es hat funktioniert!

[CODE lang="java" title="Authorization und Aufruf"]
JFrame frame = new JFrame("Online-Help");
final JFXPanel fxPanel = new JFXPanel();
fxPanel.setSize(1920, 1080);
frame.setSize(1920, 1080);
frame.add(fxPanel);
frame.setVisible(true);

String authString = name + ":" + password;
System.out.println("Auth String: " + authString);
byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
String authStringEnc = new String(authEncBytes);
System.out.println("Base64 encoded auth string: " + authStringEnc);
WebEngine webEngine = webView.getEngine();
webEngine.setUserAgent("foo\nAuthorization: Basic " + authStringEnc);

webView.getEngine().load(webPage);
webView.setPrefWidth(1920);
webView.setPrefHeight(1080);
fxPanel.setScene(scene);
fxPanel.setVisible(true);[/CODE]

Die Webseite wird mithilfe der WebEngine und Base64 codierten Zugangsdaten authorisiert. Anschließend wird die Homepage innerhalb der WebView aufgerufen.
 

mrBrown

Super-Moderator
Mitarbeiter
Kennt Confluence keine öffentlichen Seiten?

Ansonsten wäre es vielleicht eine Idee, die Doku für externe gar nicht in Confluence zu veröffentlichen, sondern "irgendwo anders", wo man problemlos drauf zugreifen kann.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ananaskirsche Website mit Browser-Check aufrufen Allgemeine Java-Themen 8
O Java Website Stock Bot Allgemeine Java-Themen 3
K Inhalte Parsen von Website Allgemeine Java-Themen 15
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
J Website mit Kundenbereich Allgemeine Java-Themen 1
E Java Website Login Allgemeine Java-Themen 2
M Website Quelltext mit Java einlesen Allgemeine Java-Themen 10
H HTTP Website-Login Allgemeine Java-Themen 5
Scream_ilias Auf einer Website die anmeldedaten eingeben Allgemeine Java-Themen 9
J Hotel Zimmer Buchungen Website Allgemeine Java-Themen 4
G website programmatisch browsen Allgemeine Java-Themen 2
D Java auf Webserver Website möglich Allgemeine Java-Themen 7
A Website zur Ausnahmeliste hinzufügen (Mac) Allgemeine Java-Themen 3
Javafan01 Website in Java aufrufen Allgemeine Java-Themen 1
J Daten aus Website-Quelltext auslesen Allgemeine Java-Themen 62
Developer_X Website HTML Code von HTTPS URL laden Allgemeine Java-Themen 0
C php-Website mit Proxy aufrufen Allgemeine Java-Themen 6
L Seite einer Partner Website neu laden Allgemeine Java-Themen 1
A Erste Schritte Daten aus einer Website auslesen Allgemeine Java-Themen 7
KeVoZ_ JSoup - Website Inhalt/Element mit String vergleichen Allgemeine Java-Themen 2
K Socket SocketIO Website nicht erreichbar! :( Allgemeine Java-Themen 1
L Login auf website per Java Allgemeine Java-Themen 13
K Auf einer Website nach einem String suchen Allgemeine Java-Themen 5
I HTML einer Website auslesen liefert nur head Allgemeine Java-Themen 6
G Daten aus Website auslesen Allgemeine Java-Themen 7
N Input/Output Website Text auslesen und bestimmte Zeilen wiedergeben Allgemeine Java-Themen 4
S Interaktion mit einer website (website als Objekt?) Allgemeine Java-Themen 3
I Inhalt einer Website auslesen Allgemeine Java-Themen 6
K Website in Programm einbinden und auslesen Allgemeine Java-Themen 2
S Buch oder Website mit genialen Algorithmen..? Allgemeine Java-Themen 1
U mit HTMLunit auf Website einloggen - Formname nicht vorhanden Allgemeine Java-Themen 5
C HTTP OnClick auf Website in Java simulieren Allgemeine Java-Themen 2
N Input/Output Bild von WebSite laden? Allgemeine Java-Themen 3
S Website verbinden Allgemeine Java-Themen 5
K XML Quelltext Website einlesen?! Allgemeine Java-Themen 3
P Applet java 1.7 in Website einbinden ? Allgemeine Java-Themen 7
Q Website auslesen->javascriptauswahl tätigen Allgemeine Java-Themen 6
T Java in Website einbinden klappt i-wie nicht Allgemeine Java-Themen 13
N iText-Nutzung (Version 2.1.7) in kommerzieller Website Allgemeine Java-Themen 8
C Script für Website mit Objekte Ausblenden Allgemeine Java-Themen 3
S Website rendern? Allgemeine Java-Themen 8
C Login auf Website mit Cookies Allgemeine Java-Themen 3
E Performance website download Allgemeine Java-Themen 13
L Einloggen auf Website Allgemeine Java-Themen 7
T Website-Login via Java Allgemeine Java-Themen 22
I Irre Website-Wie macht man sowas? Allgemeine Java-Themen 6
L javaformular auf website (eingabe per email zusenden) Allgemeine Java-Themen 3
L java programm läßt sich von website nicht starten. Allgemeine Java-Themen 6
G Applikation in Website einbinden Allgemeine Java-Themen 3
T Datei auf WebSite lesen Allgemeine Java-Themen 4
P Mit Java auf einer Website einloggen Allgemeine Java-Themen 6
O website durchsuchen Allgemeine Java-Themen 9
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
S HTML einer Webseite 1:1 so bekommen wie es auch der Browser anzeigt? Allgemeine Java-Themen 14
S HTML den ich von einer URL hole nicht identisch mit dem HTML im Browser Allgemeine Java-Themen 1
F Operationen/Methoden einen WebService im Browser mit Apache Axis aufrufen Allgemeine Java-Themen 4
P Schnittstelle java Programm zu Webserver / Browser Allgemeine Java-Themen 2
B Aktuellen Sourcecode aus Browser laden Allgemeine Java-Themen 43
Z JVM komplett tot - Eclipse + Browser gehen nicht + Screenshots Allgemeine Java-Themen 1
M WebService - Zugriff auf Webservice Methode über Browser Allgemeine Java-Themen 1
R Selenium im geöffneten Browser Allgemeine Java-Themen 0
B Selenium öffnet nur den Browser Allgemeine Java-Themen 5
Developer_X Java Applets in Browser starten Allgemeine Java-Themen 9
nrg Verschiedene JREs im Browser konfigurieren Allgemeine Java-Themen 6
M HTML-Code von Webseite über Browser oder Console auslesen?? Allgemeine Java-Themen 5
Z Java geht nicht im Browser Allgemeine Java-Themen 5
F In ein Textfeld im Browser schreiben? Allgemeine Java-Themen 4
B JApplet Zugriff auf Local Storage des Browser? Allgemeine Java-Themen 2
L Links aus dem Inet-Browser automatisch anklicken lassen Allgemeine Java-Themen 5
S Seiten mit Javaapplet stürzen ab (jeder browser) Allgemeine Java-Themen 8
E Java Browser ermitteln? Allgemeine Java-Themen 6
P Methode keyPressed() reagiert nicht im Browser Allgemeine Java-Themen 6
D Browser-Objekt erzeugen Allgemeine Java-Themen 8
B Applet Destruktor beim Browser schließen? Allgemeine Java-Themen 5
X Websiten auslesen, Browser stellt Links anders da. Allgemeine Java-Themen 10
Taschenschieber Webseite im Browser öffnen Allgemeine Java-Themen 3
P Link in einem ausgewählten Browser öffnen Allgemeine Java-Themen 10
L Aus Java auf Browser Formularfelder zugreifen Allgemeine Java-Themen 9
S Mit welchem Firefox browser laeuft Java4 ? Allgemeine Java-Themen 2
G java-applets und browser Allgemeine Java-Themen 12
T File-Browser.wie? Allgemeine Java-Themen 2
S Link im Browser öffnen Allgemeine Java-Themen 10
V Fragen zu einem Java Browser Allgemeine Java-Themen 7
G Java JDIC Web Browser poblem Allgemeine Java-Themen 2
R Von Java aus Browser Fenster oeffnen und Webseite ausgeben? Allgemeine Java-Themen 2
R Testen von Applets - versch. Browser und Java Versionen? Allgemeine Java-Themen 4
H Auslesen der aktuellen URL eines geöffneten Browser? Allgemeine Java-Themen 17
M Werte im Browser aktualisieren Allgemeine Java-Themen 2
J Browser in java programm? Allgemeine Java-Themen 3
B Browser link aus Java-Applikation öffnen Allgemeine Java-Themen 2
J Browser öffnen _mit leerzeichen in URL_ ? Allgemeine Java-Themen 3
L Java6 update N bekommt neues Browser-Plugin, bitte testen. Allgemeine Java-Themen 7
B Suche Browser-Control Allgemeine Java-Themen 4
K Java Browser im IE Allgemeine Java-Themen 3
G Aktualisierung erst nach minimiertem Browser Allgemeine Java-Themen 6
P Browser in JPanel Allgemeine Java-Themen 3
C von Java aus ein Dokument im Browser drucken Allgemeine Java-Themen 11
M GUI ähnliche Elemt. und Funktionen im Browser - Technologie? Allgemeine Java-Themen 8
K Servlet im Browser aufrufen Allgemeine Java-Themen 3
G Java-Applet bzw. Browser schließen Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben