rrenkert@436: Lada-Client rrenkert@436: =========== torsten@469: Dies ist die Prototypversion eines EXTJS basierten Klienten für die torsten@469: Verarbeitung von Labordaten (Lada) zur Überwachung der Umweltradioaktivität. torsten@469: torsten@469: Die Software bietet grundlegende Funktionalität zur Erfassung und Bearbeitung torsten@469: von Messdaten. Weitere Informationen finden sich auf der Projektwebseite unter torsten@469: der Adresse: torsten@469: torsten@469: https://wald.intevation.org/projects/lada/ torsten@469: torsten@469: Die Software entstand im Rahmen einer Software Entwicklung durch die torsten@469: Intevation GmbH im Auftrag des Bundesamt für Strahlenschutz im Jahre 2013. torsten@469: torsten@469: Lizenz torsten@469: ------ torsten@469: Die Software unter der GPL Affero Lizenz verfügbar. torsten@469: torsten@469: Quellen torsten@469: ------- torsten@469: Die Quelldateien lassen sich wie folgt auschecken: torsten@469: hg clone https://scm.wald.intevation.org/hg/lada/lada-client torsten@469: torsten@469: Dokumentation torsten@469: ------------- torsten@469: Die Dokumentation wird mit dem Tool JSDuck erzeugt. torsten@469: Im Wurzelordner lässt sich nach der Installation von JSDuck dann mit dem torsten@469: Befehl "jsduck" die Dokumentation für den Lada-Clienten erzeugen. torsten@469: Die Dokumentation findet sich nach der Generierung in dem Order "doc". torsten@469: Einstiegseite ist die Seite template.html. torsten@469: torsten@469: JSDuck ist unter der Adresse torsten@469: torsten@469: https://github.com/senchalabs/jsduck torsten@469: torsten@469: zu finden und muss installiert werden. torsten@469: torsten@469: Einstellung bezüglich der Generierung der Dokumentation ist in der Datei torsten@469: jsduck.json hinterlegt. rrenkert@436: rrenkert@436: Entwicklung rrenkert@436: ----------- rrenkert@436: Für die Entwicklung ist es notwenig in dem Wurzelordner die ExtJS-Bibliothek rrenkert@436: in der Version >=4.2.0 unter dem Namen "extjs" zur Verfügung zu stellen. torsten@27: torsten@27: Diese lässt sich unter der folgenden URL herunterladen: torsten@27: http://cdn.sencha.com/ext/gpl/ext-4.2.0-gpl.zip torsten@27: torsten@27: SHA1 Checksum: 2ce990d9e90c48a76078e8533c72b5452f9ed809 torsten@27: torsten@27: Beispiel: torsten@27: curl -O http://cdn.sencha.com/ext/gpl/ext-4.2.0-gpl.zip torsten@27: unzip ext-4.2.0-gpl.zip torsten@27: ln -s ext-4.2.0-gpl extjs torsten@340: rrenkert@436: Zusätzlich wird für diese Anwendung eine Bibliothek zur Internationalisierung rrenkert@436: verwendet, die unter der URL rrenkert@436: rrenkert@436: https://github.com/elmasse/Ext.i18n.Bundle rrenkert@436: rrenkert@436: verfügbar ist, verwendet. rrenkert@436: Diese muss in dem Ordner 'src' der vorher zur Verfügung gestellten ExtJS rrenkert@436: Bibliothek eingebunden werden. Dazu wird der Ordner 'i18n' in den Ordner 'src' kopiert rrenkert@436: oder verlinkt. rrenkert@436: torsten@469: Build torsten@469: ----- rrenkert@436: Die Anwendung wird mit Hilfe des von Sencha bereitgestellten Tools 'Sencha Cmd' rrenkert@436: compiliert und minifiziert. Vorbedingung für den Compilevorgang ist die unter rrenkert@436: Entwicklung beschriebene Verzeichnisstruktur. rrenkert@436: rrenkert@436: Sencha Cmd kann unter der URL rrenkert@436: rrenkert@436: http://www.sencha.com/products/sencha-cmd/download rrenkert@436: rrenkert@436: heruntergeladen und dann installiert werden. rrenkert@436: rrenkert@436: Mit dem folgenden Befehl kann dann der Lada-Client compiliert und minifiziert werden: rrenkert@436: rrenkert@436: sencha -sdk /path/to/extjs compile \ rrenkert@436: -classpath=app,app/view/widgets/resources/datetime page -yui \ rrenkert@436: -in index.html -out build/index.html rrenkert@436: rrenkert@436: Dies erzeugt in dem Ordner 'build' die minifizierte Version der Anwendung, die rrenkert@436: alle benötigten Klassen der ExtJS Bibliothek beinhaltet und eine entsprechende rrenkert@436: index.html, die zur Auslieferung in einem Webserver verwendet werden kann. rrenkert@436: torsten@469: Installation torsten@469: ------------ torsten@469: Für den Betrieb des Lada-Clients muss dieser innerhalb einer Webserver-Umgebung torsten@469: installiert werden. Die folgenden Hinweise geben eine Kurze Anleitung zur torsten@469: Installation eines Apache-Webserver. torsten@340: torsten@469: Hinweis: Für den Betrieb einer vollständigen Installation ist neben dem torsten@469: Klienten auch die Installation eines Servers und entsprechender Datenbank torsten@469: notwendig. Für die Installation des Servers folgen Sie bitte den Hinweisen in torsten@469: der README Datei des Server-Pakets. Siehe Projektwebseite. Optional: Die torsten@469: Authentifizierung kann gegen einen LDAP-Server durchgeführt werden. Beispiele torsten@469: finde sich in dem Installationbeispiel. torsten@399: torsten@469: Die folgenden Hinweise beziehen sich auf die Installation und Einrichtung auf torsten@469: Basis eines Oracle-RedHat Linux Systems. torsten@399: torsten@469: Installation Apache torsten@469: ``````````````````` torsten@469: Zunächst wird der Apache Webserver aus dem Repository installiert: torsten@469: torsten@469: yum install httpd mod_ssl torsten@469: service httpd start torsten@469: torsten@469: Aktivierung der Apache Module torsten@469: ````````````````````````````` torsten@469: torsten@469: Die Konfiguration, welche Module beim Start des Apache geladen werden, erfolgt torsten@469: in der Datei "/etc/httpd/conf". Die zu ladende Module sind in dieser Datei mit torsten@469: der Option "LoadModule" angegeben. Folgende Module werden benötigt: torsten@469: torsten@469: * ldap_module: Authenitfizierung gegen den LDAP torsten@469: * headers_module: Setzten der Header nach der Authenitifizierung torsten@469: * proxy_module: Reverse Proxy des Apache zum Jboss-Server torsten@469: torsten@469: Einrichtung der Anwendung torsten@469: ````````````````````````` torsten@469: Zunächst hinterlegen wir die Anwendung in dem Server. torsten@469: torsten@469: cd /var/www/html torsten@469: hg clone https://scm.wald.intevation.org/hg/lada/lada-client/ lada torsten@469: cd lada torsten@469: git clone https://github.com/elmasse/Ext.i18n.Bundle.git torsten@469: curl -O http://cdn.sencha.com/ext/gpl/ext-4.2.0-gpl.zip torsten@469: unzip ext-4.2.0-gpl.zip torsten@469: ln -s ext-4.2.0.663 extjs torsten@469: rm ext-4.2.0-gpl.zip torsten@469: cd extjs/src torsten@469: ln -s ../../Ext.i18n.Bundle/i18n i18n torsten@469: torsten@469: # Wichtig um SELinux dazu zu überreden das neue Verzeichnis auch zu torsten@469: # servieren: torsten@469: restorecon -Rv /var/www/html/ torsten@469: torsten@469: Die Anwendung sollte nun bereits unter der Adresse http://localhost/lada torsten@469: erreichbar sein. torsten@469: torsten@469: Konfiguration Proxy Server torsten@469: `````````````````````````` torsten@469: Damit der Client eine Verbindung zu dem Server aufbauen kann, um von dort torsten@469: Daten laden zu können, ist es notwendig den Server weiter zu konfigurieren. torsten@469: torsten@469: togglesebool httpd_can_network_connect torsten@469: service httpd restart torsten@469: torsten@469: Dies erlaubt dem Apache grundsätzlich sich mit einem anderen Dienst zu verbinden. torsten@469: Nun muss noch ein Reverse-Proxy eingerichtet werden. Dieser ist nur für torsten@469: bestimmte Adressen aktiv torsten@469: torsten@469: Folgende Datei sollte unter "/etc/httpd/conf.d/lada.conf" angelegt werden: torsten@469: torsten@469: torsten@469: ServerAdmin webmaster@localhost torsten@469: #ServerName dummy-host.example.com torsten@469: ErrorLog logs/lada-error_log torsten@469: CustomLog logs/lada-access_log common torsten@469: torsten@469: # Set multiple Proxys torsten@469: ProxyPass /lada/server http://localhost:8080/lada torsten@469: ProxyPassReverse /lada/server http://localhost:8080/lada torsten@469: torsten@469: torsten@469: Alle Anfragen an die Adresse "/lada/service", werden nun an den Server weitergeleitet. torsten@469: torsten@469: Authentifizierung torsten@469: ````````````````` torsten@469: Die Authentifizierung geschieht gegen einen LDAP-Server. torsten@469: torsten@469: torsten@469: AuthType basic torsten@469: AuthName "test" torsten@469: AuthBasicProvider ldap torsten@469: AuthLDAPURL "ldap://ike.polyhedra.intevation.de:389/cn=users,dc=icosahedron,dc=polyhedra,dc=intevation,dc=de?uid,memberof??(&(objectClass=inetOrgPerson)(memberOf=*))" torsten@469: Require valid-user torsten@469: torsten@469: torsten@469: torsten@469: RequestHeader unset Authorization torsten@469: RequestHeader set X-LDAP-User "%{AUTHENTICATE_uid}e" torsten@469: RequestHeader set X-LDAP-Groups "%{AUTHENTICATE_memberof}e" torsten@469: torsten@469: torsten@469: Sofern gewünscht, kann die Authentifizierung für Testzwecke zu deaktivieren torsten@469: werden. Trotz allem müssen die entsprechenden Header gesetzt werden, da der torsten@469: Server zur Authentifizierung und Authorisierung erwartet. torsten@469: torsten@469: # Set Headers to simulate Authentification. torsten@469: torsten@469: RequestHeader set X-LDAP-User "mst_06010" torsten@469: RequestHeader set X-LDAP-Groups "cn=Imis_world,cn=groups,dc=icosahedron,dc=polyhedra,dc=intevation,dc=de;cn=mst_06010,cn=groups,dc=icosahedron,dc=polyhedra,dc=intevation,dc=de;cn=mst_11010,cn=groups,dc=icosahedron,dc=polyhedra,dc=intevation,dc=de" torsten@469: