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