411
|
1 Einrichtung der Anwendung LADA |
|
2 ============================== |
|
3 |
|
4 Dies ist die Prototypversion der Serverkomponente für die Anwendung LADA zur |
|
5 Verarbeitung und Erfassung von Labordaten. |
|
6 |
|
7 Die Software bietet grundlegende Funktionalität zur Erfassung und Bearbeitung |
|
8 von Messdaten. Weitere Informationen finden sich auf der Projektwebseite unter |
|
9 der Adresse: |
|
10 |
|
11 https://wald.intevation.org/projects/lada/ |
|
12 |
|
13 Die Software entstand im Rahmen einer Software Entwicklung durch die |
|
14 Intevation GmbH im Auftrag des Bundesamt für Strahlenschutz im Jahre 2013. |
|
15 |
|
16 Lizenz |
|
17 ------ |
|
18 Die Software unter der GNU GPL v>=3 Lizenz verfügbar. Details siehe die Datei |
|
19 COPYING. |
|
20 |
|
21 Quelltext |
|
22 --------- |
|
23 Die Quelldateien lassen sich wie folgt auschecken: |
|
24 hg clone https://scm.wald.intevation.org/hg/lada/lada-server |
|
25 |
|
26 |
|
27 Installation |
|
28 ============ |
|
29 |
|
30 Die Installation der Serverkomponente erfordert folgende Vorraussetzungen: |
|
31 |
|
32 * PostgreSQL-9.2/PostGIS-2.0 Datenbank inklusive Testdaten |
|
33 * JBoss-AS |
|
34 |
|
35 |
|
36 Datenbank |
|
37 --------- |
|
38 Die LADA Anwendung basiert auf einer PostgreSQL/PostGIS Datenbank in den |
|
39 Versionen PostgreSQL 9.2/PostGIS 2.0. |
|
40 Beipieldaten sind in dem Datenbankdump lada-db.zip verfügbar und können |
|
41 in eine PostgreSQL/PostGIS Datenbank importiert werden. |
|
42 Der dadurch verfügbare Testdatensatz enthält zusätzlich Daten zu Gemeinden und |
|
43 Verwaltungen in Deutschland, die vom BKG zur Verfügung gestellt werden. |
|
44 |
|
45 Einrichtung der Datenbankverbindung im JBoss AS |
|
46 ----------------------------------------------- |
|
47 Die Datenbankverbindung wird im Application Server eingerichtet. Hierzu muss der |
|
48 entsprechende Treiber zunächst als Modul eingefügt werden. Die folgenden |
|
49 Schritte setzen vorraus, dass der JBoss AS in dem Ordner |
|
50 /opt/jboss-as-7.1.1-Final installiert ist. |
|
51 |
|
52 1. Anlegen des Verzeichnisses und herunterladen der Treiber. |
|
53 |
|
54 $cd /opt/jboss-as-7.1.1.Final/modules/org |
|
55 $mkdir -p postgresql/main/ |
|
56 $cd postgresql/main |
|
57 $curl -O "http://jdbc.postgresql.org/download/postgresql-9.2-1002.jdbc4.jar" |
|
58 $curl -O "http://www.hibernatespatial.org/repository/org/postgis/postgis-jdbc/1.5.2/postgis-jdbc-1.5.2.jar" |
|
59 |
|
60 2. In dem Ordner /opt/jboss-as-7.1.1.Final/modules/org/postgresql/main/ eine |
|
61 Datei module.xml mit folgendem Inhalt anlegen. |
|
62 |
|
63 <?xml version="1.0" encoding="UTF-8"?> |
|
64 <module xmlns="urn:jboss:module:1.0" name="org.postgresql"> |
|
65 <resources> |
|
66 <resource-root path="postgresql-9.2-1002.jdbc4.jar"/> |
|
67 <resource-root path="postgis-jdbc-1.5.2.jar"/> |
|
68 </resources> |
|
69 <dependencies> |
|
70 <module name="javax.api"/> |
|
71 <module name="javax.transaction.api"/> |
|
72 </dependencies> |
|
73 </module> |
|
74 |
|
75 3. Einfügen der Hibernate-Spatial Komponenten. |
|
76 |
|
77 $cd /opt/jboss-as-7.1.1.Final/modules/org/hibernate/main |
|
78 $curl -O "http://www.hibernatespatial.org/repository/org/hibernate/hibernate-spatial/4.0/hibernate-spatial-4.0.jar" |
|
79 $curl -O "http://repo1.maven.org/maven2/com/vividsolutions/jts/1.13/jts-1.13.jar" |
|
80 |
|
81 4. Eintragen der Hibernate-Spatial Komponenten in |
|
82 /opt/jboss-as-7.1.1.Final/modules/org/hibernate/main/module.xml |
|
83 |
|
84 <resources> |
|
85 ... |
|
86 <resource-root path="hibernate-spatial-4.0.jar"/> |
|
87 <resource-root path="jts-1.13.jar"/> |
|
88 </resources> |
|
89 <dependencies> |
|
90 ... |
|
91 <module name="org.postgresql"/> |
|
92 </dependencies> |
|
93 |
|
94 5. Einfügen des PostgreSQL Moduls als Treiber in die JBoss Konfiguration. |
|
95 |
|
96 In den Abschnitt <datasources> folgenden Block einfügen: |
|
97 |
|
98 <driver name="postgis" module="org.postgresql"> |
|
99 <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> |
|
100 </driver> |
|
101 |
|
102 |
|
103 Nun kann man eine neue Datenbankverbindung mit dem neuen Treiber einrichten. |
|
104 Dazu verbindet man sich mit dem soeben angelegten Management-Nutzer mit der |
|
105 Administrations-Webinterface unter der Adresse: http://localhost:9990 |
|
106 |
|
107 1. Datesources auswählen. Hier werden alle derzeit eingerichteten Datenquellen |
|
108 angzeigt. Wir wollen eine neue einrichten. Hierzu |
|
109 2. Oben rechts von "Runtime" auf "Profile" wechseln. |
|
110 3. "Add" wählen. |
|
111 4. Name: Lada, JNDI: java:/jboss/Lada |
|
112 5. Treiber Wählen: postgis |
|
113 6. Weitere Verbindungsparameter angeben. |
|
114 a) connection url: jdbc:postgresql_postGIS://localhost:5432/lada |
|
115 b) Nutzer |
|
116 c) Password |
|
117 |
|
118 7.Da während dieser Einrichtung die Standard PostgreSQL Treiberklasse gewählt |
|
119 wird, muss diese noch in der Datei |
|
120 /opt/jboss-as-7.1.1.Final/standalone/configuration/standalone.xml |
|
121 geändert werden: |
|
122 Hierzu wird im Abschnitt <datasources> für die neu angelegte Datenquelle |
|
123 <driver-class>org.postgresql.Driver</driver-class> gegen |
|
124 <driver-class>org.postgis.DriverWrapper</driver-class> ausgetauscht. |
|
125 |
|
126 Installation der LADA Anwendung |
|
127 =============================== |
|
128 Zur Installation der LADA Anwendung müssen folgende Schritte unternommen werden: |
|
129 |
|
130 $cd /opt/jboss-as-7.1.1.Final/standalone/deployments |
|
131 $cp /path/where/the/war/file/is/lada.war . |
|
132 $touch lada.war.dodeploy |
|
133 |
|
134 Zum Aktualisieren der Anwendung genügt es, wenn die lada.war Datei aktualisiert |
|
135 wird. |
|
136 |
|
137 Die Anwendung ist dann unter dem Pfad "/lada" (abhängig vom Archivnamen) |
|
138 erreichbar. |
|
139 |
|
140 Konfiguration der LADA Anwendung |
|
141 ================================ |
|
142 Die Konfigurationsdateien sind Dateien im JSON-Format und können an einer |
|
143 beliebigen Stelle im System abgelegt werden, solang diese Dateien für den |
|
144 Nutzer, mit dem JBoss-Server gestartet wird, gelesen werden kann. |
|
145 |
|
146 Bei Änderungen an der Konfigurationsdatei muss der Server nicht neu gestartet |
|
147 werden. Es reicht ein erneutes Laden der Anwendung durch den Client. |
|
148 Vorbereitete und vollständige Konfigurationsdateien sind in dem Ordner |
|
149 'config' zu finden. |
|
150 |
|
151 Importer |
|
152 -------- |
|
153 Der Pfad an dem diese Konfigurationsdatei zu finden ist wird in einer JBoss |
|
154 Konfigurationsdatei "standalone.xml" abgelegt. Diese Datei findet sich im JBoss |
|
155 Ordner ($JBOSSHOME/standalone/configuration/standalone.xml). |
|
156 |
|
157 In dieser Datei wird der Pfad in Form einer Property abgelegt: |
|
158 |
|
159 <server xmlns="urn:jboss:domain:1.2"> |
|
160 ... |
|
161 |
|
162 <system-properties> |
|
163 <property name="de.intevation.lada.importconfig" |
|
164 value="/pfad/zur/konfigurations/datei/des/importers.json"/> |
|
165 </system-properties> |
|
166 |
|
167 ... |
|
168 </server> |
|
169 |
|
170 Flexible Suche |
|
171 -------------- |
|
172 Der Pfad an dem diese Konfigurationsdatei zu finden ist wird in einer JBoss |
|
173 Konfigurationsdatei "standalone.xml" abgelegt. Diese Datei findet sich im JBoss |
|
174 Ordner ($JBOSSHOME/standalone/configuration/standalone.xml). |
|
175 |
|
176 In dieser Datei wird der Pfad in Form einer Property abgelegt: |
|
177 |
|
178 <server xmlns="urn:jboss:domain:1.2"> |
|
179 ... |
|
180 |
|
181 <system-properties> |
|
182 ... |
|
183 <property name="de.intevation.lada.sqlconfig" |
|
184 value="/pfad/zur/konfigurations/datei/der/abfragen.json"/> |
|
185 </system-properties> |
|
186 |
|
187 ... |
|
188 </server> |
|
189 |
|
190 Einrichtung des Webservers (Apache) |
|
191 =================================== |
|
192 Die folgenden Module des Apache Webserver sind nötig, um die LADA Anwendung zu |
|
193 betreiben: |
|
194 * ldap_module: Authenitfizierung gegen den LDAP |
|
195 * headers_module: Setzten der Header nach der Authenitifizierung |
|
196 * proxy_module: Reverse Proxy des Apache zum Jboss-Server |
|
197 |
|
198 Damit der Client eine Verbindung zu dem Server aufbauen kann, um von dort Daten |
|
199 laden zu können ist es notwendig den Server weiter zu konfigurieren. |
|
200 |
|
201 togglesebool httpd_can_network_connect |
|
202 service httpd restart |
|
203 |
|
204 Dies erlaubt dem Apache grundsätzlich sich an einen anderen Dienst zu verbinden. |
|
205 |
|
206 Nun muss noch ein Reverse-Proxy eingerichtet werden. Dieser ist nur für |
|
207 bestimmte Adressen aktiv |
|
208 |
|
209 Folgende Datei sollte unter "/etc/httpd/conf.d/lada.conf" angelegt werden: |
|
210 |
|
211 <VirtualHost *:80> |
|
212 ServerAdmin webmaster@localhost |
|
213 #ServerName dummy-host.example.com |
|
214 ErrorLog logs/lada-error_log |
|
215 CustomLog logs/lada-access_log common |
|
216 |
|
217 # Set multiple Proxys |
|
218 ProxyPass /lada/server http://localhost:8080/lada |
|
219 ProxyPassReverse /lada/server http://localhost:8080/lada |
|
220 </VirtualHost> |
|
221 |
|
222 Alles Anfragen an die Adresse "/lada/service" werden nun an den JBoss |
|
223 weitergeleitet. |
|
224 |
|
225 Authentifizierung |
|
226 |
|
227 Die Authentifizierung geschieht gegen einen LDAP-Server. |
|
228 |
|
229 <Location /lada> |
|
230 AuthType basic |
|
231 AuthName "test" |
|
232 AuthBasicProvider ldap |
|
233 AuthLDAPURL "ldap://ike.polyhedra.intevation.de:389/cn=users,dc=icosahedron,dc=polyhedra,dc=intevation,dc=de?uid,memberof??(&(objectClass=inetOrgPerson)(memberOf=*))" |
|
234 Require valid-user |
|
235 </Location> |
|
236 |
|
237 <Location /lada/server> |
|
238 RequestHeader unset Authorization |
|
239 RequestHeader set X-LDAP-User "%{AUTHENTICATE_uid}e" |
|
240 RequestHeader set X-LDAP-Groups "%{AUTHENTICATE_memberof}e" |
|
241 </Location> |
|
242 |
|
243 Sofern gewünscht ist die Authentifizierung für Testzwecke zu deaktivieren muss |
|
244 trotz allem die entsprechenden Header gesetzt werden, da der Server diese |
|
245 derzeit erwartet. |
|
246 |
|
247 # Set Headers to simulate Authentification. |
|
248 <Location /lada/server> |
|
249 RequestHeader set X-LDAP-User "mst_06010" |
|
250 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" |
|
251 </Location> |
|
252 |
|
253 Dokumentation |
|
254 ============= |
|
255 Eine HTML-Dokumenation des Quellcodes(Javadoc) ist in dem Ordner 'doc' hinterlegt und |
|
256 kann über einen Webserver (z.B. Apache WebServer) bereitgestellt werden. |