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 Attachment
31473 Views
Average (1 Vote)
The average rating is 5.0 stars out of 5.
Comments
Threaded Replies Author Date
I am not able to configure it. It gives me... Amit Doshi May 8, 2012 5:19 AM
Hi, I am also getting the same error as Amit.... Pranay R Patadiya June 5, 2012 5:09 AM
Ditto, the previous 2 comments. It could at... Paul Solecki August 1, 2012 3:53 AM
Has somebody successfully integrated LogicalDOC? Nicholas John Koch February 10, 2013 2:29 AM
Hi everyone I had the same problem when I had... Angelos Varvitsiotis August 6, 2014 3:32 AM

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?
Posted on 5/8/12 5:19 AM.
Hi, I am also getting the same error as Amit.
Any help ??
Posted on 6/5/12 5:09 AM.
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.
Posted on 8/1/12 3:53 AM.
Has somebody successfully integrated LogicalDOC?
Posted on 2/10/13 2:29 AM.
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.
Posted on 8/6/14 3:32 AM.