Hi Mano,
The CmisUnauthorizedException is thrown when the server returns the
HTTP status code 401.
- Florian
Hi Florian,
Thanks for the response. I will try to investigate the issue some
more at the Alfresco side.
One question though, is the CmisUnauthorizedException used for
authentication and authorization? So both scenarios would then be
possible when getting this error:
- Authentication succeeds, but the query seems to return results
which the user should not receive or the query queries a particular
port of the document tree which is not accessible for the user
launching the query.
- Authentication fails when executing a query.
Thanks.
-- Mano
On Wed, Jan 25, 2012 at 12:48 PM, Florian Müller wrote:
Hi Mano,
That is probably a question for Alfresco.
OpenCMIS provides the credentials. If the repository doesn't accept
them once in a while, OpenCMIS cannot do anything about it.
- Florian
Hi all,
Sorry for the abrupt stop of the previous e-mail. I accidentally
pressed a
hotkey to send it.
Anyhow, the following mail describes the whole problem and like I
said
before, it only occurs sporadicly. Also a refresh of the page
executes the
same call and then works. So it isn't the case that we lost our
authentication context and the user needs to sign in again.
We use CMIS to connect to an Alfresco 3.4 repository. We have
searched te
web for this, but have found nothing.
I hope someone on this mailing list has a clue.
Thanks in advance.
Mano
On Wed, Jan 25, 2012 at 11:06 AM, Mano Swerts wrote:
Hi all,
We have created a JSF 1.2 application for a client which uses
openCMIS
0.5.0. Unfortunately we have an exception sporadicly that we cannot
reproduce.
We see the following stack trace in the logs:
Caused by:
org.apache.chemistry.opencmis.commons.exceptions.CmisUnauthorizedException:
Unauthorized
at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:423)
at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.post(AbstractAtomPubService.java:568)
at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.DiscoveryServiceImpl.query(DiscoveryServiceImpl.java:141)
at
org.apache.chemistry.opencmis.client.runtime.SessionImpl$3.fetchPage(SessionImpl.java:557)
at
org.apache.chemistry.opencmis.client.runtime.util.AbstractIterator.getCurrentPage(AbstractIterator.java:132)
at
org.apache.chemistry.opencmis.client.runtime.util.CollectionIterator.hasNext(CollectionIterator.java:48)
*at
be.idewe.park.repository.impl.EmployeeDocumentRepositoryImpl.findDocuments(EmployeeDocumentRepositoryImpl.java:53)
*
at
be.idewe.park.service.impl.EmployeeDocumentServiceImpl.getDocumentsForUserAssignments(EmployeeDocumentServiceImpl.java:96)
at
be.idewe.park.service.impl.UserAssignmentServiceImpl.fillUserAssignmentsWithDocuments(UserAssignmentServiceImpl.java:201)
at
be.idewe.park.service.impl.UserAssignmentServiceImpl.getUserAssignmentsByDocumentTypes(UserAssignmentServiceImpl.java:191)
at
be.idewe.park.service.impl.UserAssignmentServiceImpl.getUserAssignmentsByDocumentTypes(UserAssignmentServiceImpl.java:175)
at
be.idewe.park.ui.UnreadDocumentsBean.getInboxes(UnreadDocumentsBean.java:166)
at
be.idewe.park.ui.UnreadDocumentsBean.getInbox(UnreadDocumentsBean.java:235)
at
be.idewe.park.ui.UnreadDocumentsBean.getEmployeeInbox(UnreadDocumentsBean.java:227)
at sun.reflect.GeneratedMethodAccessor860.invoke(Unknown
Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
javax.el.BeanELResolver.getValue(BeanELResolver.java:83)
at
javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
at
com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at
org.apache.el.parser.AstValue.getValue(AstValue.java:123)
at
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at
com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
... 69 more
The bold line in the stack trace is the last piece of code written
by us
in the trace and is quite simple:
public List findDocuments(Session cmisSession, Query
query, String language) {
ItemIterable employeeDocuments =
cmisSession.query(query.getQueryString(), false);
for (QueryResult queryResult : employeeDocuments) {
...
}
}
Our CMIS Session is cached on the security context of Spring
Security and
passed to the method.
--
Met vriendelijke groeten,
Kind regards,
Bien à vous,
Mano Swerts
Solution Engineer
_______________________________________________________
ACA IT-Solutions
Ilgatlaan 5C Clovislaan 82
B-3500 Hasselt B-1000 Brussel
Belgium Belgium
T: +32 (0)11 26 50 10 [3] E: [email protected] [4]
F: +32 (0)11 26 50 11 [5] U: www.aca-it.be [6]
M: +32 (0)484 80 81 45 [7]
______________________________________________________
Links:
------
[1] mailto:[email protected]
[2] mailto:[email protected]
[3]
http://webmailer.hosteurope.de/tel:%2B32%20%280%2911%2026%2050%2010
[4] mailto:[email protected]
[5]
http://webmailer.hosteurope.de/tel:%2B32%20%280%2911%2026%2050%2011
[6] http://www.aca-it.be
[7]
http://webmailer.hosteurope.de/tel:%2B32%20%280%29484%2080%2081%2045