Author: vmassol
Date: 2008-02-07 19:09:23 +0100 (Thu, 07 Feb 2008)
New Revision: 85
Added:
tools/
tools/cryptpasswords/
tools/cryptpasswords/crypt.groovy
tools/cryptpasswords/crypt.sh
tools/cryptpasswords/env.sh
tools/cryptpasswords/hibernate.cfg.xml
tools/cryptpasswords/lib/
tools/cryptpasswords/lib/commons-cli-1.0.jar
Log:
XWIKI-2081: Move cryptpassword tool to the sandbox for now
Added: tools/cryptpasswords/crypt.groovy
===================================================================
--- tools/cryptpasswords/crypt.groovy (rev 0)
+++ tools/cryptpasswords/crypt.groovy 2008-02-07 18:09:23 UTC (rev 85)
@@ -0,0 +1,77 @@
+package xwiki.export;
+
+import com.xpn.xwiki.*;
+import com.xpn.xwiki.objects.classes.*;
+
+println "Starting password encryption"
+println "===== WARNING!!! ====="
+println "This action will encrypt all the plaintext passwords in the database."
+println ""
+println "Depending on the encryption method, you may not be able to restore"
+println " the original passwords, disabling some features like retrieving"
+println " forgot passwords. However, it is recommended to encrypt the
passwords,"
+println " as it increases the security of the wiki."
+
+println "Continue? [y/n]"
+cont = System.in.readLine()
+
+if(cont.toLowerCase().startsWith("n")) {
+ println "Good."
+ System.exit(0);
+}
+
+context = new XWikiContext();
+
+context.setUser("XWiki.superadmin");
+config = new XWikiConfig();
+config.put("xwiki.store.class", "com.xpn.xwiki.store.XWikiHibernateStore");
+config.put("xwiki.store.hibernate.path", "./hibernate.cfg.xml");
+config.put("xwiki.store.hibernate.updateschema", "1");
+config.put("xwiki.virtual", "1");
+println "Starting xwiki"
+xwiki = new XWiki(config, context);
+context.setWiki(xwiki);
+
+db = "xwiki"
+// Change this to export a different database
+// db = "mydb"
+
+println("Encrypting all passwords in database " + db)
+context.setDatabase(db);
+
+classes = xwiki.getClassList(context)
+for(xclassname in classes) {
+ // See if this class has password fields
+ xclass = xwiki.getDocument(xclassname, context).getxWikiClass();
+ props = xclass.getProperties();
+ for(prop in props) {
+ if(prop instanceof com.xpn.xwiki.objects.classes.PasswordClass){
+ sql = ", BaseObject as obj where obj.name=doc.fullName and
obj.className='" + xclassname + "'";
+ results = xwiki.getStore().searchDocumentsNames(sql, context);
+ for(docname in results) {
+ doc = xwiki.getDocument(docname, context);
+ for(obj in doc.getObjects(xclassname)){
+ pwdprop = obj.get(prop.getName());
+ unencryptedPassword = pwdprop.getValue();
+ if(unencryptedPassword.startsWith("hash:") ||
unencryptedPassword.startsWith("crypt:")) {
+ println("Skipping already encrypted password for " +
doc.getFullName());
+ } else {
+ encryptedPassword = prop.getProcessedPassword(unencryptedPassword);
+ println("Encrypting password for " + doc.getFullName());
+ pwdprop.setValue(encryptedPassword);
+ doc.setMetaDataDirty(true);
+ xwiki.saveDocument(doc, context);
+ }
+ }
+ }
+ }
+ }
+}
+/*
+sql = ", BaseObject as obj where obj.name="+ xwiki.getFullNameSQL()+ " and
obj.className='XWiki.XWikiUsers'";
+results = xwiki.getStore().searchDocumentsNames(sql, context);
+results.each { item -> print "${item}-" }
+println "";
+*/
+println "Finished."
+System.exit(0)
\ No newline at end of file
Added: tools/cryptpasswords/crypt.sh
===================================================================
--- tools/cryptpasswords/crypt.sh (rev 0)
+++ tools/cryptpasswords/crypt.sh 2008-02-07 18:09:23 UTC (rev 85)
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+source env.sh
+
+java groovy.lang.GroovyShell crypt.groovy
Property changes on: tools/cryptpasswords/crypt.sh
___________________________________________________________________
Name: svn:executable
+ *
Added: tools/cryptpasswords/env.sh
===================================================================
--- tools/cryptpasswords/env.sh (rev 0)
+++ tools/cryptpasswords/env.sh 2008-02-07 18:09:23 UTC (rev 85)
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+XWIKIHOME=../../xwiki/trunk
+XWIKILIB=${XWIKIHOME}/lib
+TOOLSLIB=./lib
+
+TOOLSPATH="${TOOLSLIB}/commons-cli-1.0.jar"
+
+XWIKIPATH="${XWIKIHOME}/release/xwiki.jar"
+for lib in `ls "${XWIKILIB}"`
+do
+ XWIKIPATH="${XWIKIPATH}:${XWIKILIB}/$lib"
+done
+
+export CP="${TOOLSPATH}:${XWIKIPATH}"
+# For windows + cygwin:
+#export CLASSPATH=`cygpath --path --windows "$CP"`
+export CLASSPATH="${TOOLSPATH}:${XWIKIPATH}"
Property changes on: tools/cryptpasswords/env.sh
___________________________________________________________________
Name: svn:executable
+ *
Added: tools/cryptpasswords/hibernate.cfg.xml
===================================================================
--- tools/cryptpasswords/hibernate.cfg.xml (rev 0)
+++ tools/cryptpasswords/hibernate.cfg.xml 2008-02-07 18:09:23 UTC (rev 85)
@@ -0,0 +1,32 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE hibernate-configuration PUBLIC
+ "-//Hibernate/Hibernate Configuration DTD//EN"
+ "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+<hibernate-configuration>
+<session-factory>
+<property name="show_sql">false</property>
+<property name="use_outer_join">true</property>
+
+<property name="dbcp.defaultAutoCommit">false</property>
+<property name="dbcp.maxActive">50</property>
+<property name="dbcp.maxIdle">5</property>
+<property name="dbcp.maxWait">30000</property>
+<property name="dbcp.whenExhaustedAction">1</property>
+<property name="dbcp.ps.whenExhaustedAction">1</property>
+<property name="dbcp.ps.maxActive">20</property>
+<property name="dbcp.ps.maxWait">120000</property>
+<property name="dbcp.ps.maxIdle">20</property>
+
+<property name="connection.url">jdbc:mysql://localhost/xwiki</property>
+<property name="connection.username">xwiki</property>
+<property name="connection.password">xwiki</property>
+<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
+<property
name="connection.provider_class">com.xpn.xwiki.store.DBCPConnectionProvider</property>
+<property name="connection.pool_size">5</property>
+<property name="statement_cache.size">5</property>
+<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
+<property
name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
+<!-- Mapping files -->
+<mapping resource="xwiki.hbm.xml"/>
+</session-factory>
+</hibernate-configuration>
Added: tools/cryptpasswords/lib/commons-cli-1.0.jar
===================================================================
(Binary files differ)
Property changes on: tools/cryptpasswords/lib/commons-cli-1.0.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications