1

我担心使用 Apache Chemistry 库通过 CMIS 连接到 Sharepoint 2013。

我收到Unauthorized error,但我使用的凭据 (U/P) 是正确的。

我用它来登录 Sharepoint Online,所以它应该在我的代码上工作。

希望有人能帮我解决这个问题。谢谢!

请参阅下面我用来创建到 Sharepoint 的会话的代码:

public Session fillParams()    {//define some values for the connection string
    String rest_base = "http://<server>/sites/_api/web/";
    String repository_id = "c013ab76-4821-489f-9a1c-1d43bfce1c32";
    String atompub_url = rest_base + "/" + repository_id + "";
    String username ="notTobeShown";
    String password = "notTobeShown";
    SessionFactory factory = SessionFactoryImpl.newInstance();
    Map<String, String> parameter = new HashMap<String,String>();

    parameter.put(SessionParameter.ATOMPUB_URL, rest_base);
    parameter.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
    parameter.put(SessionParameter.AUTH_HTTP_BASIC, "true");
    parameter.put(SessionParameter.USER, username);
    parameter.put(SessionParameter.PASSWORD, password);
    System.out.println("Pfft");
    List<Repository> repositories = factory.getRepositories(parameter);
    System.out.println("repositories: " + repositories.size());
    return repositories.get(0).createSession();
}

有关完整的异常堆栈跟踪,请参见下文:

线程“主” org.apache.chemistry.opencmis.commons.exceptions.CmisUnauthorizedException中的异常 :未经授权 在 org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:466) 在 org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.read(AbstractAtomPubService. java:619) 在 org.apache.chemistry.opencmis.client.bindings.spi.atompub.RepositoryServiceImpl 的 org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.getRepositoriesInternal(AbstractAtomPubService.java:782)。 getRepositoryInfos(RepositoryServiceImpl.java:65) at org.apache.chemistry.opencmis.client.bindings.impl.RepositoryServiceImpl.getRepositoryInfos(RepositoryServiceImpl.java:88) at org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories( SessionFactoryImpl.java:133) 在 org.apache.chemistry.opencmis.client.runtime。SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:111) 在 sample.CMISConnect.fillParams(CMISConnect.java:35) 在 sample.CMISConnect.main(CMISConnect.java:42)

4

2 回答 2

0

单击站点页面右上角的齿轮图标。转到“站点操作”下的站点设置 -> 管理站点功能。在此“CMIS 生产者”必须处于活动状态。

于 2015-10-16T06:33:52.500 回答
0

确保 SharePoint 网站上的“Cmis Producer”设置处于活动状态。如果问题仍然存在,您可以尝试 NTLM 身份验证。您可以考虑以下代码:

String atompub_url = "http://<your site>/_vti_bin/cmis/rest/<repository id>?getRepositoryInfo";

//put everything into a HashMap
Map<String, String> parameter = new HashMap<String,String>();
parameter.put(SessionParameter.USER,<username>);
parameter.put(SessionParameter.PASSWORD, <password>);
parameter.put(SessionParameter.ATOMPUB_URL, atompub_url);
parameter.put(SessionParameter.BINDING_TYPE,BindingType.ATOMPUB.value());
parameter.put(SessionParameter.AUTHENTICATION_PROVIDER_CLASS, CmisBindingFactory.NTLM_AUTHENTICATION_PROVIDER);
parameter.put(SessionParameter.REPOSITORY_ID, <repository id>);

SessionFactory factory = SessionFactoryImpl.newInstance();
session = factory.createSession(parameter);
于 2016-05-24T07:45:19.057 回答