Sobald Sie Ihre Host Verbindungen konfiguriert haben, können Ihre Anwender eine LogWeb/Ajax Sitzung starten. In der Regel wird dabei nur die "Basis URL" angegeben, also beispielsweise für einen Stand-Alone Servlet-Container im Testbetrieb
http://test.mycompany.com:8080/ajax
oder bei vorgeschaltetem Web-Server im Produktiv-Betrieb
http://www.mycompany.com/tomcat/ajax
Innerhalb von LogWeb/Ajax sind noch weitere Pfade definiert:
Diese Verweise können Sie natürlich auch in beliebigen HTML-Seiten angeben.
Im Folgenden werden die darüber hinaus gehenden Anpassungsmöglichkeiten beschrieben, die Sie in Sonderfällen nutzen können:
Wenn Sie die LogWeb/Ajax Basis-URL im Browser eingeben, erhalten Sie normalerweise die Anmelde-Seite:
Zusätzlich bietet die Anmelde-Seite die Möglichkeit zur Änderung des Benutzerkennworts.
Die Anmelde-Seite wird übersprungen,
Nach erfolgreicher Anmeldung wird die Start-Seite angezeigt:
Wenn Sie dies in der Verbindungs-Vorlage so angegeben haben, wird jetzt in einem Zwischenschritt das Client PC Environment ermittelt und an den Server übertragen.
Erst dann erfolgt der eigentliche Sitzungs-Start:
Beim Aufruf der Basis-URL können Sie zusätzliche Parameter im Query-String mitgeben. Nach erfolgreicher Prüfung kann dann die Anmelde-Seite bzw. die Start-Seite übersprungen werden.
Die Start-Seite
showLinks.jsp
wird automatisch beim Starten einer Sitzung geladen und ist in vier Bereiche eingeteilt:
Hier können Sie Ihre Anwender über Änderungen von Zugangszeiten informieren oder andere allgemeine Hinweise hinterlegen.
Dieser Bereich enthält je nach Benutzerberechtigung die folgenden Möglichkeiten
Diese Möglichkeit steht allen Benutzern zur Verfügung.
Diese Möglichkeit steht allen Anwendern zur Verfügung, die Ihre Gruppenzugehörigkeit selbst ändern dürfen:
_ChangeGroup = true
Eine detaillierte Beschreibung der angegebenen Eigenschaften finden Sie im Kapitel "Benutzerverwaltung".
Hier werden die Links auf diejenigen Host-Verbindungen dargestellt, die für alle Benutzer zugänglich sind
In diesem Abschnitt sehen Ihre Anwender nur die Links auf diejenigen Host-Verbindungen, die eingeschränkt nur für die jeweilige Benutzergruppe erreichbar sind
Bevor Sie Änderungen an der Start-Seite vornehmen, müssen Sie entscheiden, für welche Benutzer diese gelten sollen:
Änderungen sollten Sie immer nur an dieser Kopie der Datei showLinks.jsp vornehmen. Beachten Sie bitte, dass Sie den Cache aktualisieren müssen, bevor Ihre Änderungen wirksam werden.
Im folgenden Beispiel wurden die globalen Links (Abschnitt 3 der Start-Seite) ausgeblendet. Der Bereich, in dem Sie allgemeine Hinweise anzeigen können (Abschnitt 1 der Start-Seite), ist ebenfalls hervorgehoben:
<!-- the dialog --> <table class="dialog"> <!-- title msg --> <thead> <tr> <td colspan="2"><h3><%= pagetitle %></h3></td> </tr> </thead> <!-- space at bottom of dialog --> <tfoot> <tr><td colspan="2"></td></tr> </tfoot> <!-- message area ; to hide, use style='display: none;' --> <tbody> <tr> <td colspan="2"> <div class="textbox"> ... </div> </td> </tr> </tbody> ... <%
}
String[][] links;
// create custom links; to hide, comment following lines
links = globalLinks;
if (links.length > 0)
{
%> <!-- Start of generated links for all groups; to hide specify style='display: none;' --> <tbody style='display: none;'> <tr> <td colspan="2"> <hr> </td> </tr> <% for (int i = 0; i < links.length; i++) { %> <tr> <td colspan="2"> <a href="<lws:root/>/login/index.jsp?_StartLink=*<%= links[i][0] %>" onclick="return load(this.href)"><%= links[i][1] %></a> </td> </tr> <% } %> <!-- End of generated links for all groups --> </tbody> <% } // End of custom links // create group specific links; to hide, comment following lines links = groupLinks; if (links.length > 0) { %> <!-- Start of generated links for current group; to hide specify style='display: none;' --> <tbody> <tr> <td colspan="2"> <hr> </td> </tr> <% for (int i = 0; i < links.length; i++) { %> <tr> <td colspan="2"> <a href="<lws:root/>/login/index.jsp?_StartLink=<%= links[i][0] %>" onclick="return load(this.href)"><%= links[i][1] %></a> </td> </tr> <% } %> <!-- End of generated links for current group --> </tbody> <% } // End of group specific links %>
Damit Sie die auf der Start-Seite dargestellten Start-Links auch in anderen Web-Anwendungen oder Portal-Seiten verwenden können, müssen Sie sich den Quelltext der Start-Seite in Ihrem Browser anzeigen lassen: sie werden erst nach der Anmeldung aus den dann gültigen Verbindungsvorlagen erzeugt und liegen daher nicht im Quellcode der Start-Seite showLinks.jsp vor.
Die generierten Einträge haben folgende Struktur:
<tbody> <!-- Start of generated links --> ... <tr> <td colspan="2"> <a href="../login/index.jsp?_StartLink=*logweb-demo.ini" onclick="return load(this.href)">LOG-WEB mit user "demo" auf localhost:5000</a> </td> </tr> ... <!-- End of generated links --> </tbody>
Jeder Start-Link verweist mit der Angabe
?_StartLink=VORLAGE.ini
auf eine Verbindungsvorlage:
<a href="../login/index.jsp?_StartLink=*logweb-demo.ini" onclick="return load(this.href)">LOG-WEB mit user "demo" auf localhost:5000</a>
Die in der Start-Seite enthaltene JavaScript-Anweisung load(url) stellt dabei sicher, dass beim Aufruf das aktuelle Browser-Fenster durch die Ajax Anwendung ersetzt wird:
<script type="text/javascript"> ... function load(url) { if (url) { if (lwData) { var qm = url.indexOf('?'); var sep = qm >= 0 ? '&' : '?'; for (x in lwData) { url += sep + x + '=' + encodeURIComponent(lwData[x]); sep = '&'; } } window.location.replace(url); } // MUST return false for <a href="..." onclick="load(..)">.. return false; } ... </script>
Sie können die generierten Verweise in andere HTML-Seiten kopieren, sollten dann aber entweder das Attribut onclick="..." aus dem Link entfernen oder die JavaScript-Funktion load(url) zur Verfügung stellen. Auf jeden Fall müssen Sie die URL der Anmelde-Seite ../login/index.jsp um die Basis-URL ergänzen.
Wenn Sie den auf diese Weise eingefügten Link benutzen, werden Sie in aller Regel zunächst nach Benutzernamen und Kennwort gefragt, bevor die angegebene Verbindung gestartet wird.
Hinweise:
Verwenden Sie in diesen Fällen nur Verbindungsvorlagen, die Sie für alle Benutzer zugänglich gemacht haben (Auswahl "Alle Gruppen" im Verbindungs-Assistenten). Falls sich ein Benutzer aus einer anderen Gruppe anmeldet, hat er keinen Zugriff auf die gewünschte Anwendung und erhält die für seine Gruppe gültige Start-Seite präsentiert.
Die Links auf Verbindungen für alle Gruppen finden Sie im Abschnitt 3 der Start-Seite; die Namen der entsprechenden Verbindungsvorlagen beginnen mit einem Stern '*'.
Wenn Sie viele externe Links erzeugen müssen, die sich jeweils nur in einer Option unterscheiden, können Sie diese Werte auch im Query-String der URL angeben.
Wollen Sie mehrere solche Links auf der Start-Seite anzeigen, erzeugen Sie diese zweckmäßigerweise durch Kopieren und Ändern einer bereits existierenden Vorlage im Verbindungs-Assistenten.
Beispiel: Ihre Links unterscheiden sich nur im Server-Namen:
srv.ini
für den ersten Server, z.B. srv1.mycompany.com.
... _LogWebServer = srv1.myCompany.com ...
../login/index.jsp?_StartLink=srv.ini
../login/index.jsp?_StartLink=srv.ini&_LogWebServer=srv2.myCompany.com
../login/index.jsp?_StartLink=srv.ini&_LogWebServer=srv3.myCompany.com
Wichtig:
Die Übernahme "externer" Daten beim Sitzungs-Start kann ein Sicherheits-Risiko darstellen und ist deshalb in der Standard-Auslieferung zunächst ausgeschlossen. Sie können jedoch eine Prüfdatei angeben, mit der die externen Daten gezielt überprüft und dann akzeptiert werden.
In speziellen Situationen kann es sinnvoll sein, zusätzliche Angaben wie "Mainframe Stations-Name" oder "Unix Umgebungs-Variable" beim Starten der Anwendung jeweils individuell zu belegen. Für solche Fälle kopieren Sie bitte die Anmelde-Seite config/doLogin.jsp in Ihr Datenverzeichnis //CustomData und passen sie dort entsprechend an.
Oft können solche zusätzlichen Angaben auch aus dem Environment des Client-PC automatisch generiert werden. Die Anmelde-Seite kann dazu so modifiziert werden, dass ein kleines Java Applet geladen wird und diese Informationen bereit stellt.
... /** * set to true if information from the local (client) environment have to be * retrieved. * Further modifications must be made to the JavaScript function * lw.env.collectParams * in this case. */ final boolean useApplet = true; ...
Zur Realisierung editieren Sie die Anmelde-Seite
//CustomData/doLogin.jsp
und hinterlegen dort Ihren speziellen Algorithmus in Form von JavaScript-Anweisungen. Die Funktion lw.env.collectParams() enthält einige Beispiele, die Ihnen helfen sollen, die Seite an Ihre Anforderungen anzupassen. Weitere nützliche Felder und Methoden finden Sie in den JavaScript Objekten lw.env und lw.login.
Abschließend hinterlegen Sie in der Funktion myOnload(), ob die Ajax Anwendung automatisch geladen werden soll und ob die Anmelde-Seite ohne Benutzer-Eingriff ablaufen kann:
/** * Callback from BODY.onload */ function myOnload() { ... // do not pass the back the received user name since we do a new login // delete at loading the page since the form provides _User delete lwData._User; // do not pass _Group back to /login/index.jsp since we do a new login // delete at loading the page since automated logins may provide _Group delete lwData._Group; <% if (useApplet) { // Start of code supporting the AjaxApplet %> // start AjaxApplet automatically lw.env.createAppletTag(); // set to true if data have to be transmitted automatically lw.env.autoStart = false; <% } // End of code supporting the AjaxApplet %> }
Beachten Sie bitte, dass Sie nach Änderungen an diesen Dateien den Cache aktualisieren müssen.
Wie oben beschrieben können beim Starten einer Sitzung zusätzliche Angaben aus dem Query-String der URL oder aus dem Client-PC Environment ausgewertet werden. Dies kann ein Sicherheits-Risiko darstellen, weil dadurch die (prinzipiell sicheren) "internen" Angaben aus der Verbindungs-Vorlage bzw. aus der Benutzerverwaltung durch (prinzipiell unsichere) externe Angaben ergänzt und verändert werden.
Beide Möglichkeiten sind deshalb in der Standard-Auslieferung zunächst ausgeschlossen. Sie können jedoch eine Prüfdatei angeben, mit der die externen Daten gezielt überprüft werden:
Prüfdateien sind einfache Text-Dateien mit zeilenweisem Aufbau:
Beispiele:
_LogWebServer = .*
_LogWebServer = unix[1-3]\\.mycompany\\.comerreichen Sie, dass nur einer Ihrer drei Server "unix1" bis "unix3" angegeben werden kann (beachten Sie bitte die Verdopplung der Zeichen \)
Eine Vorlage mit allen Parameterangaben finden Sie unter config/valid.properties. Diese Datei sollten Sie entsprechend den obigen Konventionen in das entsprechende Verzeichnis (//CustomData/_login oder //GroupData/GROUP/_login) kopieren. Da diese Vorlage beliebige Angaben zu allen Parametern ermöglicht, sollten Sie diese Prüfdatei deshalb so anpassen, dass nur die von Ihnen gewünschten Angaben zulässig sind. Im folgenden Beispiel wurden die nicht zutreffenden Zeilen einfach "auskommentiert":
# contains regular expressions for all parameters # that may be changed in a copy of doLogin.jsp # should be modified according to the variable values # returned by doLogin.jsp # general parameters _StatusText = .* #_Language = de|en #_LogLevel = [0-9]? ... #LOGWEB_IdleTimeout = -?[0-9]* # dialog terminal LOGWEB_StationName = .* LOGWEB_StationType = .* #LOGWEB_UnicodeConversion = .* ...
Beachten Sie bitte, dass Sie nach Änderungen an diesen Dateien den Cache aktualisieren müssen.
Die Startseite config/_ajax.jsp legt das sichtbare LogWeb/Ajax Emulations-Fenster fest. Sie wird nach der Anmeldung und der Verbindungs-Auswahl geladen, wenn alle Sicherheits-Prüfungen erfolgreich waren.
Normalerweise müssen Sie in dieser Datei nichts anpassen. Für Spezialfälle und zur Integration in eine eigene Portal-Seite haben Sie jedoch folgende Konfigurations-Möglichkeiten:
<!-- the page header; may be removed --> <table id="lwHeader" width="100%" border="0" cellspacing="0" cellpadding="1"> <tr> <td align="left" valign="bottom"><img src="<lws:file name="logicslogorgb.jpg"/>" alt="Logics Software GmbH" border="0"></td> <td align="right" valign="bottom"><img src="<lws:file language="true" name="claim.gif"/>" border="0"></td> </tr> </table>
<!-- the page footer: line with default font size (height): must avoid line break; may be removed --> <div id="lwFooter"> <nobr> Created with <a href="http://www.logics.de" target="_blank"><span id="lwDefaultFont">LOG-WEB</span></a> </nobr> </div>
Wenn Sie hier Anpassungen vornehmen wollen, kopieren Sie die Datei wie üblich zuerst von der Basis-Konfiguration config in Ihre Custom-Konfiguration //CustomData und nehmen Sie die Änderungen dort vor. Sie erleichtern sich damit bei späteren Updates auf eine Folgeversion die Übernahme Ihrer Anpassungen.
Bitte beachten Sie dabei: Ihre Änderungen sind erst nach Aktualisierung des Cache wirksam!