Details

    • Type: New Feature New Feature
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 1.0, 1.1
    • Fix Version/s: None
    • Labels:
      None

      Description

      The Slide Webdav lib supports encrypted HTTPS connections. So it should be possible to add https support to vfs too. currently the webdav provider creates http urls (in WebdavClientFactory.java).

      maybe some provider like 'webdavs' could be added to switch to HttpsUrl.

      regards

      werner

      1. VFS-180.patch
        2 kB
        James William Dumay
      2. VFS-180.patch
        16 kB
        James William Dumay
      3. VFS-180.patch
        6 kB
        James William Dumay
      4. patch_180_vfs2.txt
        11 kB
        Jose Juan Montiel
      5. patch_180_vfs2.txt
        11 kB
        Jose Juan Montiel

        Activity

        Hide
        Matt Benson added a comment -

        I'll be needing this in the near future and might be able to spare some cycles to work on it.

        Show
        Matt Benson added a comment - I'll be needing this in the near future and might be able to spare some cycles to work on it.
        Hide
        Joerg Schaible added a comment -

        Since Slide has officially been retired, you may also have a short look at the alternative jackrabbit implementation as replacement.

        Show
        Joerg Schaible added a comment - Since Slide has officially been retired, you may also have a short look at the alternative jackrabbit implementation as replacement.
        Hide
        Werner Mueller added a comment -

        maybe i've read the docs wrong. but the jackrabbit implementation is based on rmi? and the jackrabbit webdav client seems to exist mostly of interfaces. it seems to add something to httpclient. but i could not find any docs or examples. no docs no features - to be a bit polemic

        indeed slide is retired but quite some tools rely on slide webdavlib. so that code maybe worth saving. anyhow vfs may be able to use wither slide or jackrabbit.

        i simply dont know anything about slide/jackrabbit/webdav plans at apache.

        in the end i would like to point to the webdav/ssl support feature

        Show
        Werner Mueller added a comment - maybe i've read the docs wrong. but the jackrabbit implementation is based on rmi? and the jackrabbit webdav client seems to exist mostly of interfaces. it seems to add something to httpclient. but i could not find any docs or examples. no docs no features - to be a bit polemic indeed slide is retired but quite some tools rely on slide webdavlib. so that code maybe worth saving. anyhow vfs may be able to use wither slide or jackrabbit. i simply dont know anything about slide/jackrabbit/webdav plans at apache. in the end i would like to point to the webdav/ssl support feature
        Hide
        Joerg Schaible added a comment -

        > in the end i would like to point to the webdav/ssl support feature

        Same here. When slide was retired the webdav implementation of jackrabbit was explicitly mentioned as replacement. So I thought it would be a little more than just some interfaces. However, I did not have a look yet, but wanted to prevent anyone from striking a dead horse.

        Note, that slide was also retired because no developer was there to fix security issues and therefore the retirement was the better alternative. Although I really like to have the webdav support in VFS, as a release manager it would scare me to include it into a final VFS release with open security issues :-/

        Show
        Joerg Schaible added a comment - > in the end i would like to point to the webdav/ssl support feature Same here. When slide was retired the webdav implementation of jackrabbit was explicitly mentioned as replacement. So I thought it would be a little more than just some interfaces. However, I did not have a look yet, but wanted to prevent anyone from striking a dead horse. Note, that slide was also retired because no developer was there to fix security issues and therefore the retirement was the better alternative. Although I really like to have the webdav support in VFS, as a release manager it would scare me to include it into a final VFS release with open security issues :-/
        Hide
        Werner Mueller added a comment -

        well the slide retirement was a good decision. painfull but in the end the situatiion will improve.

        i've seen the latest slide security issue (lock eploit?) was fixed in trunk and a retirement branch.

        in any case slide should get a fresh start somewhere. maybe httpclient-webdav. so vfs could depend on that.

        well these things should be discussed somewhere else

        i would agree vfs 1.1 should no longer use the current slide-2.1 lib.

        Show
        Werner Mueller added a comment - well the slide retirement was a good decision. painfull but in the end the situatiion will improve. i've seen the latest slide security issue (lock eploit?) was fixed in trunk and a retirement branch. in any case slide should get a fresh start somewhere. maybe httpclient-webdav. so vfs could depend on that. well these things should be discussed somewhere else i would agree vfs 1.1 should no longer use the current slide-2.1 lib.
        Hide
        Jason Harrop added a comment -

        I've created a project on sourceforge to maintain/enhance the webdav client component of slide.

        See https://sourceforge.net/projects/webdavclient4j

        Show
        Jason Harrop added a comment - I've created a project on sourceforge to maintain/enhance the webdav client component of slide. See https://sourceforge.net/projects/webdavclient4j
        Hide
        James William Dumay added a comment -

        Patch provides a https enabled Webdav(s)FileProvider. Seems to work just fine with my Apache httpd webdav repositories.

        Show
        James William Dumay added a comment - Patch provides a https enabled Webdav(s)FileProvider. Seems to work just fine with my Apache httpd webdav repositories.
        Hide
        James William Dumay added a comment -

        I uploaded the wrong patch before - here is a complete https implementation. Not sure how well this works right now but its a good start.

        Show
        James William Dumay added a comment - I uploaded the wrong patch before - here is a complete https implementation. Not sure how well this works right now but its a good start.
        Hide
        Ralph Goers added a comment -

        I tried applying the patch and then running "mvn clean -P webdav test -Dtest=WebdavProviderTestCase". It fails with a StackOverflow.

        java.lang.StackOverflowError
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperty(WebdavFileObject.java:402)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.isDirectory(WebdavFileObject.java:382)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.doGetType(WebdavFileObject.java:112)
        at org.apache.commons.vfs.provider.AbstractFileObject.getType(AbstractFileObject.java:441)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.urlString(WebdavFileObject.java:504)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.urlString(WebdavFileObject.java:484)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperties(WebdavFileObject.java:438)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperties(WebdavFileObject.java:417)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperty(WebdavFileObject.java:410)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperty(WebdavFileObject.java:402)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.isDirectory(WebdavFileObject.java:382)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.doGetType(WebdavFileObject.java:112)
        at org.apache.commons.vfs.provider.AbstractFileObject.getType(AbstractFileObject.java:441)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.urlString(WebdavFileObject.java:504)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.urlString(WebdavFileObject.java:484)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperties(WebdavFileObject.java:438)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperties(WebdavFileObject.java:417)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperty(WebdavFileObject.java:410)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperty(WebdavFileObject.java:402)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.isDirectory(WebdavFileObject.java:382)
        at org.apache.commons.vfs.provider.webdav.WebdavFileObject.doGetType(WebdavFileObject.java:112)
        at org.apache.commons.vfs.provider.AbstractFileObject.getType(AbstractFileObject.java:441)

        Show
        Ralph Goers added a comment - I tried applying the patch and then running "mvn clean -P webdav test -Dtest=WebdavProviderTestCase". It fails with a StackOverflow. java.lang.StackOverflowError at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperty(WebdavFileObject.java:402) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.isDirectory(WebdavFileObject.java:382) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.doGetType(WebdavFileObject.java:112) at org.apache.commons.vfs.provider.AbstractFileObject.getType(AbstractFileObject.java:441) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.urlString(WebdavFileObject.java:504) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.urlString(WebdavFileObject.java:484) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperties(WebdavFileObject.java:438) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperties(WebdavFileObject.java:417) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperty(WebdavFileObject.java:410) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperty(WebdavFileObject.java:402) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.isDirectory(WebdavFileObject.java:382) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.doGetType(WebdavFileObject.java:112) at org.apache.commons.vfs.provider.AbstractFileObject.getType(AbstractFileObject.java:441) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.urlString(WebdavFileObject.java:504) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.urlString(WebdavFileObject.java:484) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperties(WebdavFileObject.java:438) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperties(WebdavFileObject.java:417) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperty(WebdavFileObject.java:410) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperty(WebdavFileObject.java:402) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.isDirectory(WebdavFileObject.java:382) at org.apache.commons.vfs.provider.webdav.WebdavFileObject.doGetType(WebdavFileObject.java:112) at org.apache.commons.vfs.provider.AbstractFileObject.getType(AbstractFileObject.java:441)
        Hide
        Ralph Goers added a comment -

        Why are all the changes required? I would have thought it could be done simpler by changing the hardcoded "http" in WebdavFileProvider to getScheme() as you did and then defining a WebdavFileProvider with

        public class WebdavsFileProvider extends WebdavFileProvider
        {
        public WebdavsFileProvider()

        { super(); setFileNameParser(WebdavsFileNameParser.getInstance()); }

        protected String getScheme()

        { return "https"; }

        }
        Then define WebdavsFileNameParser to be pretty much like WebdavFileNameParser but have it extend HttpsFileNameParser. Is there something I am missing?

        These should go into a webdavs package, not be comingled in the webdav package.

        Show
        Ralph Goers added a comment - Why are all the changes required? I would have thought it could be done simpler by changing the hardcoded "http" in WebdavFileProvider to getScheme() as you did and then defining a WebdavFileProvider with public class WebdavsFileProvider extends WebdavFileProvider { public WebdavsFileProvider() { super(); setFileNameParser(WebdavsFileNameParser.getInstance()); } protected String getScheme() { return "https"; } } Then define WebdavsFileNameParser to be pretty much like WebdavFileNameParser but have it extend HttpsFileNameParser. Is there something I am missing? These should go into a webdavs package, not be comingled in the webdav package.
        Hide
        James William Dumay added a comment -

        Sorry about that Ralph ill clean this patch up and resubmit.

        Show
        James William Dumay added a comment - Sorry about that Ralph ill clean this patch up and resubmit.
        Hide
        James William Dumay added a comment -

        Sorry, I got confused on the way this should be done. Ive tested this against Apache 2.0.52 and it works fine.

        Show
        James William Dumay added a comment - Sorry, I got confused on the way this should be done. Ive tested this against Apache 2.0.52 and it works fine.
        Hide
        Jose Juan Montiel added a comment -

        Hi, seems this was fogotten... i would like to "resubmit" a patch patch_180_vfs2 for vfs2.

        I try to do the best, but couldn't find better elegant way...

        In methods WebdavFileObject.urlString and WebdavFileObject.hrefString use the inconmig URLFileName to determine

        String httpMethod = name.getScheme().equals("webdav") ? "http" : "https";

        to sustitute "http" for httpMethod.

        And WebdavFileProvider.doCreateFileSystem the same with FileName.

        And create the classes

        WebdavsFileProvider
        WebdavsFileNameParser exetending HttpsFileNameParser

        And add in providers.xml.

        And soon a "test"... (contains changes related to VFS-412).

        Show
        Jose Juan Montiel added a comment - Hi, seems this was fogotten... i would like to "resubmit" a patch patch_180_vfs2 for vfs2. I try to do the best, but couldn't find better elegant way... In methods WebdavFileObject.urlString and WebdavFileObject.hrefString use the inconmig URLFileName to determine String httpMethod = name.getScheme().equals("webdav") ? "http" : "https"; to sustitute "http" for httpMethod. And WebdavFileProvider.doCreateFileSystem the same with FileName. And create the classes WebdavsFileProvider WebdavsFileNameParser exetending HttpsFileNameParser And add in providers.xml. And soon a "test"... (contains changes related to VFS-412 ).
        Hide
        Gary Gregory added a comment - - edited

        None of the patches attached have been granted license to the ASF, therefore we cannot use them. Granting is performed when the patch is submitted by selecting a radio button.

        Show
        Gary Gregory added a comment - - edited None of the patches attached have been granted license to the ASF, therefore we cannot use them. Granting is performed when the patch is submitted by selecting a radio button.
        Hide
        Jose Juan Montiel added a comment -

        I think i check "Grant license to ASF..." but i do it again.

        Show
        Jose Juan Montiel added a comment - I think i check "Grant license to ASF..." but i do it again.
        Hide
        Gary Gregory added a comment -

        You're right! The feather logo does not show up in the main view for me I see it only in the manage attachements view!

        Show
        Gary Gregory added a comment - You're right! The feather logo does not show up in the main view for me I see it only in the manage attachements view!
        Hide
        Ralph Goers added a comment -

        This patch seems reasonable to me.

        Show
        Ralph Goers added a comment - This patch seems reasonable to me.
        Hide
        Dan Tran added a comment - - edited

        Any chance this get committed to VFS 2.1-SNAPSHOT soon?

        Thanks

        Show
        Dan Tran added a comment - - edited Any chance this get committed to VFS 2.1-SNAPSHOT soon? Thanks
        Hide
        Gary Gregory added a comment -

        The last time I looked at this I had some testing issues. I'll take a look this week at some point.

        Show
        Gary Gregory added a comment - The last time I looked at this I had some testing issues. I'll take a look this week at some point.

          People

          • Assignee:
            Unassigned
            Reporter:
            Werner Mueller
          • Votes:
            3 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

            • Created:
              Updated:

              Development