Author: imario Date: Thu May 12 13:09:06 2005 New Revision: 169878 URL: http://svn.apache.org/viewcvs?rev=169878&view=rev Log: Documentation how to setup a VFS testserver. On the way found some problems with the webdav provider. Might be due to new apache?
Added: jakarta/commons/sandbox/vfs/trunk/src/test-data/basedir/file%.txt (with props) jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.jar (with props) jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.tar (with props) jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.tbz2 (with props) jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.tgz (with props) jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.zip (with props) jakarta/commons/sandbox/vfs/trunk/src/test-data/test.jar (with props) jakarta/commons/sandbox/vfs/trunk/src/test-data/test.tar (with props) jakarta/commons/sandbox/vfs/trunk/src/test-data/test.tbz2 (with props) jakarta/commons/sandbox/vfs/trunk/src/test-data/test.tgz (with props) jakarta/commons/sandbox/vfs/trunk/src/test-data/test.zip (with props) jakarta/commons/sandbox/vfs/trunk/xdocs/testserver.xml (with props) Modified: jakarta/commons/sandbox/vfs/trunk/maven.xml jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/webdav/WebdavFileObject.java jakarta/commons/sandbox/vfs/trunk/src/test/org/apache/commons/vfs/provider/sftp/test/SftpProviderTestCase.java Modified: jakarta/commons/sandbox/vfs/trunk/maven.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/maven.xml?rev=169878&r1=169877&r2=169878&view=diff ============================================================================== --- jakarta/commons/sandbox/vfs/trunk/maven.xml (original) +++ jakarta/commons/sandbox/vfs/trunk/maven.xml Thu May 12 13:09:06 2005 @@ -8,6 +8,10 @@ <copy todir="${test.basedir}/read-tests"> <fileset dir="${test.data.src}/basedir"/> </copy> + <copy todir="${test.basedir}/"> + <fileset dir="${test.data.src}" includes="nested.*,test.*"/> + </copy> + <!-- Compile the code for the class loader test --> <javac @@ -24,7 +28,8 @@ <mkdir dir="${test.basedir}/read-tests/emptydir"/> - <!-- Create a zip file --> + <!-- Create a zip file - its not possible to create tgz, tar and tbz2 so we provide + the whole set for download now <zip zipfile="${test.basedir}/test.zip"> <zipfileset dir="${test.basedir}"> <include name="read-tests/**"/> @@ -50,6 +55,7 @@ jarfile="${test.basedir}/nested.jar" basedir="${test.basedir}" includes="test.jar"/> + --> </postGoal> </project> Modified: jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/webdav/WebdavFileObject.java URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/webdav/WebdavFileObject.java?rev=169878&r1=169877&r2=169878&view=diff ============================================================================== --- jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/webdav/WebdavFileObject.java (original) +++ jakarta/commons/sandbox/vfs/trunk/src/java/org/apache/commons/vfs/provider/webdav/WebdavFileObject.java Thu May 12 13:09:06 2005 @@ -31,6 +31,7 @@ import org.apache.webdav.lib.methods.DepthSupport; import org.apache.webdav.lib.methods.OptionsMethod; import org.apache.webdav.lib.methods.XMLResponseMethodBase; +import org.apache.webdav.lib.methods.DeleteMethod; import org.apache.webdav.lib.properties.ResourceTypeProperty; import java.io.ByteArrayOutputStream; @@ -90,6 +91,12 @@ } } + /** + * set the davResource + * @param resource + * @param bCheckExists might be removed soon + * @throws Exception + */ private void setDavResource(WebdavResource resource, boolean bCheckExists) throws Exception { redirectionResolved = false; @@ -109,7 +116,7 @@ this.resource = resource; - if (bCheckExists) + // if (bCheckExists) { /* now fill the dav properties */ final OptionsMethod optionsMethod = new OptionsMethod(getName().getPath()); @@ -213,7 +220,7 @@ if (status >= 200 && status <= 299) { setAllowedMethods(optionsMethod.getAllowedMethods()); - resource.getHttpURL().setPath(optionsMethod.getPath()); + resource.getHttpURL().setEscapedPath(optionsMethod.getPath()); redirectionResolved = true; } } @@ -327,7 +334,9 @@ */ protected void doDelete() throws Exception { - final boolean ok = resource.deleteMethod(getName().getPathDecoded() /*url.getPath()*/); + resolveRedirection(); + // final boolean ok = resource.deleteMethod(getName().getPathDecoded() /*url.getPath()*/); + final boolean ok = resource.deleteMethod(); if (!ok) { throw new FileSystemException("vfs.provider.webdav/delete-file.error", resource.getStatusMessage()); Added: jakarta/commons/sandbox/vfs/trunk/src/test-data/basedir/file%.txt URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/src/test-data/basedir/file%25.txt?rev=169878&view=auto ============================================================================== --- jakarta/commons/sandbox/vfs/trunk/src/test-data/basedir/file%.txt (added) +++ jakarta/commons/sandbox/vfs/trunk/src/test-data/basedir/file%.txt Thu May 12 13:09:06 2005 @@ -0,0 +1 @@ +This is a test file. \ No newline at end of file Propchange: jakarta/commons/sandbox/vfs/trunk/src/test-data/basedir/file%.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: jakarta/commons/sandbox/vfs/trunk/src/test-data/basedir/file%.txt ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Propchange: jakarta/commons/sandbox/vfs/trunk/src/test-data/basedir/file%.txt ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.jar URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.jar?rev=169878&view=auto ============================================================================== Binary file - no diff available. Propchange: jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.jar ------------------------------------------------------------------------------ svn:mime-type = application/java-archive Added: jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.tar URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.tar?rev=169878&view=auto ============================================================================== Binary file - no diff available. Propchange: jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.tar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.tbz2 URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.tbz2?rev=169878&view=auto ============================================================================== Binary file - no diff available. Propchange: jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.tbz2 ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.tgz URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.tgz?rev=169878&view=auto ============================================================================== Binary file - no diff available. Propchange: jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.tgz ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.zip URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.zip?rev=169878&view=auto ============================================================================== Binary file - no diff available. Propchange: jakarta/commons/sandbox/vfs/trunk/src/test-data/nested.zip ------------------------------------------------------------------------------ svn:mime-type = application/zip Added: jakarta/commons/sandbox/vfs/trunk/src/test-data/test.jar URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/src/test-data/test.jar?rev=169878&view=auto ============================================================================== Binary file - no diff available. Propchange: jakarta/commons/sandbox/vfs/trunk/src/test-data/test.jar ------------------------------------------------------------------------------ svn:mime-type = application/java-archive Added: jakarta/commons/sandbox/vfs/trunk/src/test-data/test.tar URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/src/test-data/test.tar?rev=169878&view=auto ============================================================================== Binary file - no diff available. Propchange: jakarta/commons/sandbox/vfs/trunk/src/test-data/test.tar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: jakarta/commons/sandbox/vfs/trunk/src/test-data/test.tbz2 URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/src/test-data/test.tbz2?rev=169878&view=auto ============================================================================== Binary file - no diff available. Propchange: jakarta/commons/sandbox/vfs/trunk/src/test-data/test.tbz2 ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: jakarta/commons/sandbox/vfs/trunk/src/test-data/test.tgz URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/src/test-data/test.tgz?rev=169878&view=auto ============================================================================== Binary file - no diff available. Propchange: jakarta/commons/sandbox/vfs/trunk/src/test-data/test.tgz ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: jakarta/commons/sandbox/vfs/trunk/src/test-data/test.zip URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/src/test-data/test.zip?rev=169878&view=auto ============================================================================== Binary file - no diff available. Propchange: jakarta/commons/sandbox/vfs/trunk/src/test-data/test.zip ------------------------------------------------------------------------------ svn:mime-type = application/zip Modified: jakarta/commons/sandbox/vfs/trunk/src/test/org/apache/commons/vfs/provider/sftp/test/SftpProviderTestCase.java URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/src/test/org/apache/commons/vfs/provider/sftp/test/SftpProviderTestCase.java?rev=169878&r1=169877&r2=169878&view=diff ============================================================================== --- jakarta/commons/sandbox/vfs/trunk/src/test/org/apache/commons/vfs/provider/sftp/test/SftpProviderTestCase.java (original) +++ jakarta/commons/sandbox/vfs/trunk/src/test/org/apache/commons/vfs/provider/sftp/test/SftpProviderTestCase.java Thu May 12 13:09:06 2005 @@ -57,6 +57,7 @@ final String uri = System.getProperty("test.sftp.uri"); FileSystemOptions fileSystemOptions = new FileSystemOptions(); + SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(fileSystemOptions, "no"); SftpFileSystemConfigBuilder.getInstance().setUserInfo(fileSystemOptions, new TrustEveryoneUserInfo()); return manager.resolveFile(uri, fileSystemOptions); Added: jakarta/commons/sandbox/vfs/trunk/xdocs/testserver.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/vfs/trunk/xdocs/testserver.xml?rev=169878&view=auto ============================================================================== --- jakarta/commons/sandbox/vfs/trunk/xdocs/testserver.xml (added) +++ jakarta/commons/sandbox/vfs/trunk/xdocs/testserver.xml Thu May 12 13:09:06 2005 @@ -0,0 +1,209 @@ +<document> + <properties> + <title>Setup a Testserver</title> + <author email="[EMAIL PROTECTED]">Mario Ivankovits</author> + </properties> + + <body> + <section name="Testserver"> + <p> + This documentation describes how to setup a VFS testserver needet during development for the junit + tests. + </p> + <p> + I tried to simplify things as good as I can, e.g. this setup uses for all server the same vfs work + directory. + Thus it is needet to setup apache to use user 'vfsusr' instead of 'wwwrun'. + <br/> + Based on this description it should be possible for you to avoid this "insecurity" if needet. + </p> + <p> + I created it during setup a fresh server based on the following components: + + <ol> + <li>SuSE Linux 9.3 Minimal Installation</li> + <li>Apache 2 Webserver (apache2-2.0.53)</li> + <li>Samba 3 (samba-3.0.12)</li> + <li>ssh (openssh-3.9p1)</li> + <li>vsftp (vsftpd-2.0.2-3)</li> + </ol> + </p> + + + <subsection name="System setup"> + <ol> + <li>You need maven to build the local test-data structure. This is done automatically during build of VFS.</li> + <li>Create a user 'vfsusr' with password 'vfsusr' and home directory '/home/vfsusr' + <br/> + <code><![CDATA[ +useradd -p vfsusr -m vfsusr</code> + ]]></code> + </li> + <li>Create the directories + <ol> + <li>/vfstest</li> + <li>/vfstest/write-tests</li> + </ol> + and copy from your local 'target/test-data' the directories + <code>code,read-tests</code> into it.<br /> + Now your structure looks like this:<br /> + <code><![CDATA[ +/vfstest +/vfstest/write-tests +/vfstest/read-tests +/vfstest/read-tests/emptydir +/vfstest/read-tests/file1.txt +/vfstest/read-tests/dir1 +/vfstest/read-tests/dir1/file1.txt +/vfstest/read-tests/dir1/file2.txt +/vfstest/read-tests/dir1/file3.txt +/vfstest/read-tests/dir1/subdir1 +/vfstest/read-tests/dir1/subdir1/file1.txt +/vfstest/read-tests/dir1/subdir1/file2.txt +/vfstest/read-tests/dir1/subdir1/file3.txt +/vfstest/read-tests/dir1/subdir2 +/vfstest/read-tests/dir1/subdir2/file1.txt +/vfstest/read-tests/dir1/subdir2/file2.txt +/vfstest/read-tests/dir1/subdir2/file3.txt +/vfstest/read-tests/dir1/subdir3 +/vfstest/read-tests/dir1/subdir3/file1.txt +/vfstest/read-tests/dir1/subdir3/file2.txt +/vfstest/read-tests/dir1/subdir3/file3.txt +/vfstest/read-tests/empty.txt +/vfstest/read-tests/file%.txt +/vfstest/code +/vfstest/code/sealed +/vfstest/code/sealed/AnotherClass.class +/vfstest/code/ClassToLoad.class + ]]></code> + </li> + <li>Setup a symbolic link to '/vfstest'<br /> + <code><![CDATA[ +ln -s /vfstest /home/vfsusr/vfstest + ]]></code> + </li> + <li>Set permissions + <br/> + <code><![CDATA[ +find /vfstest -print0 | xargs -0 chown vfsusr.users + ]]></code> + </li> + <li>After setup the server ensure they are installed and running + <br/> + <code><![CDATA[ +insserv apache2 +insserv smb +insserv nmb +/etc/rc.d/apache2 restart +/etc/rc.d/smb restart +/etc/rc.d/nmb restart + ]]></code> + </li> + </ol> + </subsection> + + <subsection name="Apache 2 Webserver"> + <ol> + <li>Create a file named '/etc/apache2/conf.d/vfstest.conf' with this content<br /> + <code><![CDATA[ +# +# VFSTEST +# +Alias /vfstest /vfstest/ + +DAVLockDB /var/lib/apache2/dav.lockDB +DAVMinTimeout 600 + +<Directory /vfstest> + Options None + AllowOverride None + Order allow,deny + Allow from all +</Directory> + +<Location /> + DAV On + Options Indexes MultiViews + AllowOverride None + + AuthType Basic + AuthName vfstest_zone + AuthUserFile /etc/apache2/passwd + <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> + Require user vfsusr + </Limit> +</Location> + ]]></code> + </li> + <li>change the permission on + <code><![CDATA[ +chown vfsusr.users /var/lib/apache2 + ]]></code> + </li> + <li>Activate the WebDAV module by adding 'dav' and 'dav_fs' to the list of modules in '/etc/sysconfig/apache2'. e.g <br/> + <code><![CDATA[ +APACHE_MODULES="access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir php4 php5 dav dav_fs" + ]]></code> + </li> + <li>Setup the webserver to use user-id 'vfsusr' and group 'users'. This can be done by changing the file '/etc/apache2/uid.conf'<br /> + <code><![CDATA[ +User vfsusr +Group users + ]]></code> + </li> + <li>Create the VFS user to access the Webdav resource<br /> + <code><![CDATA[ +htpasswd2 -cmb /etc/apache2/passwd vfsusr vfsusr + ]]></code> + </li> + </ol> + </subsection> + + <subsection name="Samba 3"> + <ol> + <li>Create a share 'vfsusr'<br /> + <code><![CDATA[ +[vfsusr] + comment = VFS Test Directory + path = /home/vfsusr + guest ok = yes + writable = yes + ]]></code> + </li> + <li>Setup a 'vfsusr' with password 'vfsusr'<br /> + <code><![CDATA[ +smbpasswd -a vfsusr + ]]></code> + </li> + </ol> + </subsection> + + <subsection name="ssh"> + <ol> + <li>In '/etc/ssh/sshd_config' ensure<br /> + <code><![CDATA[ +PasswordAuthentication yes + ]]></code> + </li> + </ol> + </subsection> + + <subsection name="vsftp"> + <ol> + <li>Ensure the server is not disabled in the xinetd configuration<br /> + Set <code>disable=no</code> in '/etc/xinetd.d/vsftpd' + </li> + + <li>Setup the server config: '/etc/vsftpd.conf'<br/> + <code> +write_enable=YES +local_enable=YES + </code> + + </li> + </ol> + </subsection> + + </section> + </body> +</document> \ No newline at end of file Propchange: jakarta/commons/sandbox/vfs/trunk/xdocs/testserver.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: jakarta/commons/sandbox/vfs/trunk/xdocs/testserver.xml ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Propchange: jakarta/commons/sandbox/vfs/trunk/xdocs/testserver.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]