~~Title: Konfiguration verschlüsseln~~
Die [[de:jvx:common:setup:dbindependent_config|Konfiguration einer Applikation]] wird im Normalfall vom Source Code getrennt und in die Konfigurationsdatei config.xml ausgelagert. Bei der Datei handelt es sich um eine Standard XML Datei.
Sofern die Datenbank Zugangsdaten darin abgelegt sind, können sowohl Benutzername als auch Passwort ausgelesen werden. Das hat zwar den Vorteil das eine Änderung der Datei jederzeit möglich ist, aber auch den Nachteil das die Daten ohne weiteres auslesbar sind.
Um die Lesbarkeit zu verhindern, unterstützt der XmlWorker eine transparente Verschlüsselung. Sie können ohne Rücksichtnahme während der Entwicklungsphase mit Klartext Dateien arbeiten und bei der Installation am Produktions-System wechseln Sie in den verschlüsselten Modus. Sie müssen dafür Ihren Source Code nicht ändern.
Um eine Konfigurationsdatei zu verschlüsseln kann folgender Source Code verwendet werden:
XmlWorker xmw = new XmlWorker();
xmw.setAutomaticDecrypt(true);
xmw.setEncrypted("/application/securitymanager", true);
xmw.setEncrypted("/application/lifecycle", true);
xmw.setEncrypted("/application/datasource", true);
File fiConfig = new File(sFile);
XmlNode xmn = xmw.read(fiConfig);
xmw.write(fiConfig, xmn);
Es wird ganz einfach festgelegt, welche XML Nodes verschlüsselt werden sollen. Somit können unwesentliche Teile der Datei weiterhin in Klartext bleiben und die wichtigen Daten werden geschützt.
==Beispiel==
Eine sehr einfach lesbare Konfiguration:
com.sibvisions.rad.server.security.DBSecurityManager
org.hsqldb.jdbcDriver
jdbc:hsqldb:hsql://localhost/demodb;ifexists=true
sa
Y
TBL_USERS
CHANGE_PASSWORD
COL_VALID_FROM
COL_VALID_TO
COL_ACTIVE
democopy.Session
democopy.Application
Und nun vor fremden Blicken geschützt:
1f8b08000000000000005d90310ec2300c45774ec109e21d4206c4cac4099cc4b4416903765ae0f6244d111293fdfdfdac2f6b213771c8ef0147ec88cd66bbd52ea28871695012ec1c24a45114a357423c13ab2fa34ec7cbda9e1baea1b1f58ac78c1685aaa89243614de24ef5f288deaa9bb7eeb44c35ac6e5b9d389a6aeedae252760031398c7d920c9e86e4ed3e5ce91524cb21f3441a2ab61e2841471cc80896f15734ef5ef23d137b5842c22fa586ff5f7c00b0e53e381d010000
Y
TBL_USERS
CHANGE_PASSWORD
COL_VALID_FROM
COL_VALID_TO
COL_ACTIVE
1f8b0800000000000000b3c9c94c4b4dae4cce49b5e35250b0c94d2c2e492d2a4e2d2ececccfb34b49cdcd4fce2fa8d40b8608d8e8a3ca8374241614e464262796a0a8774408dae823abe0b2d1475808003864e6777c000000