I have "successfully" written my own custom content store that integrates
with an existing custom Content Management Application.  My CMA exposes
methods via an API that I have hooked into under the relevant store methods
like retrieveRevisionDescriptor() and retrieveRevisionContent() etc.  I put
"successfully" in quotes because right now all if the method calls to my
Content Management API have a hard coded username variable that's required
for each call. 

I'm using a third party Servlet filter wrapped around the WebDAV Servlet
that's able to put the Windows Active Directory username into the
HttpServletRequest Principal object.  This works perfectly and wholly
unrelated to Slide.  I know that it works because the Slide WebDAV Servlet
logger writes out the value of
HttpServletRequest.getUserPrincipal().getName() to the logs.

My final issue is this...How can I get at that User Principal name value
when making my content store method calls?

I see that the NodeStore, RevisionDescriptorStore, etc objects all extend
the Service interface, and in fact my custom store implementation is
extending AbstractSimpleService.  I see a method in the Service Interface
connect(CredentialsToken crdtoken) which is close to what I need.  I know
that you can get at the name of the User Principal from that class.
However, unlike a store implementation built on top of a database, my
existing API methods do not really have a connect(), isConnected()
equivalent.

I do not have a requirement to implement varying access control levels.
Either the user specified in the Principal object has full access or none at
all on a given URI.  I've tried playing around with <auto-create-users> tag
in Domain.xml but am still not sure how to get at the value when making the
retrieveRevisionDescriptor() and retrieveRevisionContent() methods that make
the eventual API calls.  And since I'm dealing with a user base of ~1000
people with constantly changing access rights at the existing Content
Management Application level, configuring usernames within the Domain.xml is
not feasible.

Any help is appreciated.

Thanks

Jonathan

Reply via email to