Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Stardust/Knowledge Base/SystemAdministration/SystemMonitoring/WebDAVAccessToContentRepository

Introduction

The Stardust Admininstration perspective provides views into the JCR document repository that provide a minimum of functionality needed for process management, e.g. for uploading files. While this may satisfy your requirements there may be a need to gain full access to the document repository for maintenance tasks or to manually edit the repository structure. This article explains how to establish access to the folder structure of the document repository using the WebDAV protocol.

Important information to be noted

  • When using the Stardust portal or the DocumentManagementService, only a part of the whole repository is exposed which corresponds to the "partition" that provides the context for your operations. This fact is hidden by the DocumentManagementService and is transparent to the user. This implies that a document retrieval operation for example using a path like "/invoices/january/bill1.pdf" is internally translated to "/ipp-repository/partitions/<partitionId>/invoices/january/bill1.pdf".
  • When moving documents around via the described methods, the references to these documents are still valid, because Stardust uses the jcrUUID to retrieve them. Nevertheless, certain metadata about the documents is kept in the AuditTrail. Specifically, the path to the document is saved in the AuditTrail and can be used in your process model by passing in the "Document" and "Folder" element attributes to your applications. When moving folders or documents around through a WebDAV browser ('behind the back' of Stardust), the persisted path can become stale and this may lead to problems if this information is important in your processing. The path information is currently stored in the STRUCTURED_DATA_VALUE table.

WebDAV Configuration

The following steps outline the tasks needed to gain access to the document repository using WebDAV:
1. Remove the 'missing-auth-mapping' section from your web.xml jackrabbitJcrWebdavServlet configuration if it exists so that the WebDav client does not default to a specified user.
2. Use a WebDav client, e.g. Windows WebFolders (Windows XP integrates it in 'My Network Places') connect to your deployment with the configured resource-path-prefix e.g. http://localhost:8080/<context-root>/jackrabbit/server/. Another freeware WebDav client is BitKinex (http://www.bitkinex.com/webdavclient/).
3. Enter the username configured as the adminID in your repository.xml e.g./<project-root>/carnot-jackrabbit/WEB-INF/jackrabbit/repository.xml (default is 'admin')
4. Enter no password, (the default jackrabbit login manager does not check for a password)
5. Finally use the WebDav client to access the folders and documents.

Changes in web.xml

<servlet>
                   <display-name>Jackrabbit Repository Servlet (JCR over Webdav)</display-name>
                   <servlet-name>jackrabbitJcrWebdavServlet</servlet-name>
                   <servlet-class>
                   org.apache.jackrabbit.j2ee.JCRWebdavServerServlet</servlet-class>
                   <init-param>
                            <param-name>resource-path-prefix</param-name>
                            <param-value>/jackrabbit/server</param-value>
                   </init-param>
		   <!--remove  <init-param>-->
                   <!--remove  <param-name>missing-auth-mapping</param-name>-->
                   <!--remove  <param-value>anonymous:anonymous</param-value>-->
                   <!--remove  </init-param>-->
                   <load-on-startup>5</load-on-startup>
</servlet>

Optional changes in repository.xml

<Security>
	<LoginModule class="...">
		<!-- anonymous user name ('anonymous' is the default value) -->
		<param name="anonymousId" value="anonymous"/>
		<!-- administrator user id (default value if param is missing is 'admin') -->
		<param name="adminId" value="admin"/>
	</LoginModule>
</Security>

Back to the top