CmisUnauthorizedException:Unauthorized - 使用Apache Chemistry库连接到Sharepoint 2013时出错 [英] CmisUnauthorizedException: Unauthorized - error using Apache Chemistry library interfacing to Sharepoint 2013

查看:204
本文介绍了CmisUnauthorizedException:Unauthorized - 使用Apache Chemistry库连接到Sharepoint 2013时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm having concern connecting to Sharepoint 2013 via CMIS using Apache Chemistry library.

我收到未经授权的错误,但凭据(U / P)我使用的是正确的。

I am receiving Unauthorized error, but the credentials (U/P) I used are correct.

我用它来登录Sharepoint Online,所以它应该处理我的代码。

I used it to login to the Sharepoint Online so it should be working on my code.

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

Hope someone could help me solving this. Thanks!

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

See my code below I am using to create a session to 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();
}

有关完整的异常堆栈跟踪,请参阅以下内容:

For the complete exception stacktrace, please see below:


线程main中的异常
org.apache.chemistry.opencmis.commons.exceptions.CmisUnauthorizedException:
未经授权
at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:466)
at
org.apache.chemistry.opencmis。 client.bindings.spi.atompub.AbstractAtomPubService.read(AbstractAtomPubService.java:619)
at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.getRepositoriesInternal(AbstractAtomPubService.java) :782)
at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.RepositoryServiceImpl.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)
at
org.apache.chemistry.opencmis.client .runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:111)
at sample.CMISConnect.fillParams(CMISConnect.java:35)at
sample.CMISConnect.main(CMISConnect.java:42)

Exception in thread "main" org.apache.chemistry.opencmis.commons.exceptions.CmisUnauthorizedException: Unauthorized at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:466) at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.read(AbstractAtomPubService.java:619) at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.getRepositoriesInternal(AbstractAtomPubService.java:782) at org.apache.chemistry.opencmis.client.bindings.spi.atompub.RepositoryServiceImpl.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) at org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:111) at sample.CMISConnect.fillParams(CMISConnect.java:35) at sample.CMISConnect.main(CMISConnect.java:42)


推荐答案

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

Make sure that the 'Cmis Producer" setting is active on SharePoint site. If still the problem persists, you can try NTLM authentication. You can consider the below code :

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);

这篇关于CmisUnauthorizedException:Unauthorized - 使用Apache Chemistry库连接到Sharepoint 2013时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆