【问题标题】:NTLM authentication with Apache VFS使用 Apache VFS 进行 NTLM 身份验证
【发布时间】:2016-08-03 09:38:21
【问题描述】:

我正在尝试使用 Apache VFS 读取安装为网络驱动器的 SharePoint 2013 内的文件。我使用以下代码

        try {
        StandardFileSystemManager manager = new StandardFileSystemManager();
        manager.addProvider("http", new WebdavFileProvider());
        manager.setCacheStrategy(CacheStrategy.ON_CALL);
        manager.setFilesCache(new SoftRefFilesCache());
        FileObject fileObject = manager.resolveFile("http://sp2013w2k12r2/PuneetsLibrary/");
        System.out.println(fileObject.getFileSystem().hasCapability(Capability.LIST_CHILDREN));
        System.out.println(fileObject.isFolder());
    } catch (FileSystemException e) {
        e.printStackTrace();
    }

但我收到以下错误

org.apache.commons.httpclient.auth.AuthChallengeProcessor selectAuthScheme 信息:已选择 ntlm 身份验证方案 2016 年 8 月 3 日下午 5:29:55 org.apache.commons.httpclient.HttpMethodDirector 进程WWWAuthChallenge 信息:没有可用于 NTLM @sp2013w2k12r2:80 的凭据 org.apache.commons.vfs2.FileSystemException:无法确定文件“http://sp2013w2k12r2/PuneetsLibrary”的类型。 在 org.apache.commons.vfs2.provider.AbstractFileObject.getType(AbstractFileObject.java:1526) 在 org.apache.commons.vfs2.provider.AbstractFileObject.isFolder(AbstractFileObject.java:1726) 在 org.apache.commons.vfs2.impl.DecoratedFileObject.isFolder(DecoratedFileObject.java:211) 在 SharePointVFSMain.main(SharePointVFSMain.java:18) 原因:org.apache.commons.vfs2.FileSystemException:带有代码“未经授权”的未知消息。 在 org.apache.commons.vfs2.provider.webdav.ExceptionConverter.generate(ExceptionConverter.java:88) 在 org.apache.commons.vfs2.provider.webdav.ExceptionConverter.generate(ExceptionConverter.java:41) 在 org.apache.commons.vfs2.provider.webdav.WebdavFileObject.execute(WebdavFileObject.java:594) 在 org.apache.commons.vfs2.provider.webdav.WebdavFileObject.getProperties(WebdavFileObject.java:632) 在 org.apache.commons.vfs2.provider.webdav.WebdavFileObject.getProperties(WebdavFileObject.java:620) 在 org.apache.commons.vfs2.provider.webdav.WebdavFileObject.getProperty(WebdavFileObject.java:664) 在 org.apache.commons.vfs2.provider.webdav.WebdavFileObject.getProperty(WebdavFileObject.java:671) 在 org.apache.commons.vfs2.provider.webdav.WebdavFileObject.isDirectory(WebdavFileObject.java:716) 在 org.apache.commons.vfs2.provider.webdav.WebdavFileObject.doGetType(WebdavFileObject.java:405) 在 org.apache.commons.vfs2.provider.AbstractFileObject.getType(AbstractFileObject.java:1517) ... 3 更多

【问题讨论】:

    标签: sharepoint-2013 webdav ntlm apache-commons-httpclient apache-commons-vfs


    【解决方案1】:

    我意识到必须做些什么。如果使用具有 SharePoint 网站权限的用户的凭据运行 java 进程,则能够读取文档。

    【讨论】:

      猜你喜欢
      • 2018-04-29
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多