2014-07-25 42 views
1

我擔心通過使用Apache化學庫的CMIS連接到Sharepoint 2013。CmisUnauthorizedException:未經授權 - 使用Apache化學庫連接到Sharepoint 2013的錯誤

我正在收到未經授權的錯誤,但我使用的憑證(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(); 
} 

有關完整的異常堆棧跟蹤,請參閱以下內容:

異常線程「main」 組織.apache.chemistry.opencmis.commons.exceptions.CmisUnauthorizedException: 未授權在 org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertSt atusCode(AbstractAtomPubService.java:466) 在 org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.read(AbstractAtomPubService.java:619) 在 org.apache.chemistry.opencmis.client。 bindings.spi.atompub.AbstractAtomPubService.getRepositoriesInternal(AbstractAtomPubService.java:782) 在 org.apache.chemistry.opencmis.client.bindings.spi.atompub.RepositoryServiceImpl.getRepositoryInfos(RepositoryServiceImpl.java:65) 在 組織。 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)

+1

您是否嘗試過把域名名字在用戶名前? –

+0

您好弗洛裏安,我已經試圖把用戶名上的域名,仍然無法正常工作。例如(字符串用戶名=「域名/ notTobeShown」或字符串用戶名=「[email protected]」;) fyi,當我嘗試在瀏覽器中做Odata時,我得到Atom響應,但是在代碼中我無法獲取會話。 – bbd224

+0

我想如果URL si也正確訪問資源? – bbd224

回答

0

點擊站點頁面右上方的齒輪圖標。轉到網站設置 - >管理「網站操作」下的網站功能。在這個'CMIS生產者'必須積極。

0

確保「CMIS生產者」設置爲打開SharePoint站點激活如果仍然問題仍然存在,你可以嘗試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); 
相關問題