CMIS Repository

Liferay 6.1 introduced the ability to mount multiple repositories into the Documents and Media portlet (renamed from Document Library portlet).  One of the protocols it uses to mount third-party repositories is CMIS 1.0.

Credentials #

Most configurations are fairly straight forward.  The first thing you need to know is credentials.  In order to log into a CMIS repository, we need to basically pass the credentials you used in Liferay through to CMIS.  So, you need to make sure to set your portal-ext.properties to allow Liferay to store your password in the session:

session.store.password=true

Next, you need to make sure that the means in which you login to Liferay is the same as for your repository.  For most, this means that you need the same screenname.  So, in portal-ext.properties, I have: 

company.security.auth.type=screenName

This can alternatively be configured in the control panel under Portal Settings > Authentication.  Of course, what this means is that if I log into, say Nuxeo using "joeblogs" and "secretpassword", then I have to login to Liferay with those same credentials as well.

Most people would have some kind of an LDAP or something like this anyhow, so that should be fine.  Without the same credentials, obviously, you will have a principal exception and your users will be complaining to you about why they can't see their data.. you don't want that.

Mounting a Repository #

Now, startup your server and login as the administrator.  In the Documents and Media control panel, you will see under the "Add" menu a selection to add a repository.  After selecting that, you will be given a form that looks like you are adding a folder -- but instead, you are adding a new repository.

Select your repository type.  Most people would use CMIS AtomPub, but we have provided CMIS WebServices as well (but it's a pain because of all the different parameters you have to set… go with AtomPub if you can!).  The following are some of the most common AtomPub URLs for various vendor repositories:

Repository AtomPub URL
Alfresco 3.4 http://<host>/alfresco/service/cmis
Alfresco 4.x http://<host>/alfresco/cmisatom
IBM P8 http://<host>/p8cmis/resources/Service
Nuxeo http://<host>/nuxeo/atom/cmis

For CMIS, all of the entries are required with the exception of repositoryId.  If you do not enter a repositoryId, then it will just look for the first repository using the given parameters and set it to that -- many systems only have one.

FAQ #

  • Why do I get a CmisRuntimeException thrown when I search?  In some CMIS servers, you will get a response like this: "Function SCORE() used without matching CONTAINS() function" in their logs.  This is generally a problem with how the vendor is parsing the scoring keyword for search.  There's a workaround in Liferay where you can disable search scoring in your portal-ext.properties by setting the following parameter: index.search.scoring.enabled=false.  If you are using Alfresco 4.0.a, this is fixed in Alfresco 4.0.b.
  • How do I setup SSO with CMIS repositories?  Well, unfortunately, that's not possible.  As of right now, there are many vendor-specific ways of handling SSO, but nothing that is generic enough (e.g., the use of CAS) that we could put in Liferay's OOTB CMIS repository implementation.
  • Why do some files I create in IBM FileNet not seem to show up in Liferay?  This is discussed in the ticket LPS-20509.  Basically, this is a problem with the way IBM FileNet implements the CMIS Query Language which only returns major versions.  Hence, within Liferay, we will only create major versions if the vendor is IBM FileNet.
  • Why doesn't Sharepoint or Documentum work? I thought they support CMIS? In our tests, we have found some inconsistencies in how Sharepoint and Documentum have implemented CMIS. So, in Liferay 6.1 EE we have developed vendor-specific implementations for these two, while leveraging their proprietary APIs.
1 附件
34233 查看
平均 (1 投票)
满分为 5,平均得分为 5.0。
评论
讨论主题回复 作者 日期
I am not able to configure it. It gives me... Amit Doshi 2012年5月8日 上午5:19
Hi, I am also getting the same error as Amit.... Pranay R Patadiya 2012年6月5日 上午5:09
Ditto, the previous 2 comments. It could at... Paul Solecki 2012年8月1日 上午3:53
Has somebody successfully integrated LogicalDOC? Nicholas John Koch 2013年2月10日 上午2:29
Hi everyone I had the same problem when I had... Angelos Varvitsiotis 2014年8月6日 上午3:32
How to configure or get parameters of Liferay... Alexis Arnal 2014年10月15日 下午1:12
Does the setting... Karl Edvard Balto 2014年10月22日 上午5:35

I am not able to configure it. It gives me error message "Please verify your repository configuration parameters. " Can you please let me know what I am missing?
在 12-5-8 上午5:19 发帖。
Hi, I am also getting the same error as Amit.
Any help ??
在 12-6-5 上午5:09 发帖。
Ditto, the previous 2 comments.

It could at least explain why it's failing. I assume it's a 403 error as it's the wrong username/password or something but the error message given is useless.
在 12-8-1 上午3:53 发帖。
Has somebody successfully integrated LogicalDOC?
在 13-2-10 上午2:29 发帖。
Hi everyone

I had the same problem when I had NTLM enabled. In order for CMIS repository to work, it needs the current user's screenName (hence company.security.auth.type=screenName, otherwise Liferay knows you as user@domain) and password (hence session.store.password=true - this stores the password in the session so that Liferay can re-use it for connecting to Alfresco).

If NTLM auth is enabled, the password is not known to Liferay (it is actually supplying a null password to Alfresco) and it fails. Disabling NTLM fixed it in our case.
在 14-8-6 上午3:32 发帖。
How to configure or get parameters of Liferay cmis atompub url or webservice???
I need add Liferay repository to another Liferay Portal. I have 2 Liferay Portal. One is a version 6.1 and another is 6.2.

Thanks
在 14-10-15 下午1:12 发帖。
Does the setting dl.store.impl=com.liferay.portlet.documentlibrary.store.CMISStore in portal properties use the same algorithm? Liferay creates folders as if the CMIS repository is a standard filesystem, and probably use the Liferay filesystem version handling algorithm, instead of using the CMIS repository version handling. I am using Nuxeo as CMIS repository. Is it also possible to use a different root directory when adding repository with the Document and media portlet?
在 14-10-22 上午5:35 发帖。