arrow_back history picture_as_pdf This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ~~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: <file java> 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); </file> 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: <file xml config.xml> <?xml version="1.0" encoding="UTF-8"?> <application> <securitymanager> <class>com.sibvisions.rad.server.security.DBSecurityManager</class> <database> <driver>org.hsqldb.jdbcDriver</driver> <url>jdbc:hsqldb:hsql://localhost/demodb;ifexists=true</url> <username>sa</username> <password></password> </database> </securitymanager> <!-- optional database configuration --> <databaseobjects> <yesvalue>Y</yesvalue> <NUSERS>TBL_USERS</NUSERS> <NUSERS_CHANGE_PASSWORD>CHANGE_PASSWORD</NUSERS_CHANGE_PASSWORD> <NUSERS_VALID_FROM>COL_VALID_FROM</NUSERS_VALID_FROM> <NUSERS_VALID_TO>COL_VALID_TO</NUSERS_VALID_TO> <NUSERS_ACTIVE>COL_ACTIVE</NUSERS_ACTIVE> </databaseobjects> <!-- predefined life-cycle object names --> <lifecycle> <mastersession>democopy.Session</mastersession> <application>democopy.Application</application> </lifecycle> </application> </file> Und nun vor fremden Blicken geschützt: <file xml config.xml> <?xml version="1.0" encoding="UTF-8"?> <application> <securitymanager encrypted="true">1f8b08000000000000005d90310ec2300c45774ec109e21d4206c4cac4099cc4b4416903765ae0f6244d111293fdfdfdac2f6b213771c8ef0147ec88cd66bbd52ea28871695012ec1c24a45114a357423c13ab2fa34ec7cbda9e1baea1b1f58ac78c1685aaa89243614de24ef5f288deaa9bb7eeb44c35ac6e5b9d389a6aeedae252760031398c7d920c9e86e4ed3e5ce91524cb21f3441a2ab61e2841471cc80896f15734ef5ef23d137b5842c22fa586ff5f7c00b0e53e381d010000</securitymanager> <!-- optional database configuration --> <databaseobjects> <yesvalue>Y</yesvalue> <NUSERS>TBL_USERS</NUSERS> <NUSERS_CHANGE_PASSWORD>CHANGE_PASSWORD</NUSERS_CHANGE_PASSWORD> <NUSERS_VALID_FROM>COL_VALID_FROM</NUSERS_VALID_FROM> <NUSERS_VALID_TO>COL_VALID_TO</NUSERS_VALID_TO> <NUSERS_ACTIVE>COL_ACTIVE</NUSERS_ACTIVE> </databaseobjects> <!-- predefined life-cycle object names --> <lifecycle encrypted="true">1f8b0800000000000000b3c9c94c4b4dae4cce49b5e35250b0c94d2c2e492d2a4e2d2ececccfb34b49cdcd4fce2fa8d40b8608d8e8a3ca8374241614e464262796a0a8774408dae823abe0b2d1475808003864e6777c000000</lifecycle> </application> </file>