Greetings,
I discovered the reason for the Slide user password caching problem. It is because my
client code reinitializes the domain, thus creating new Stores. I use the following
code to initialize the domain from my client app:
Domain.init(/path/to/config/file);
Domain.accessNamespace();
This means that Slide has one StandardStore instance for caching and my application
has another StandardStore instance for caching. Thus, the user password update did
not stick because my client code was updating the password in one cache and the
SlideRealm/WebDAV client was checking the password from another cache. Since I don't
have much time to investigate further, I'm going to turn off caching in Slide by
forcing AbstractServiceBase -> cacheResults() to always returns false. I'm using
Slide version 1.0.16 which has hardcoded caching so it is always on. My question now
is how do you write a client application that hooks into the Domain that is
initialized on Slide startup?
Thanks,
Tom
-----Original Message-----
From: Tom Keeney
Sent: Wednesday, May 29, 2002 6:59 PM
To: [EMAIL PROTECTED]
Subject: Update user password
Hi All,
I'm building a client application that adds and updates users in Slide. So far, I've
been able to add a user and update the "password" property in the JDBCDescriptorStore.
When I add a user, the WebDAV client "propgetall" shows that the user properties are
correctly set. However, when I update the user "password", the new property value
shows up in the database, but a WebDAV "propgetall" does not return the new
"password". How do I update the "password" so that it is updated from a WebDAV client?
Here's the code I use to add a user. This code works fine:
// create object
ObjectNode node = new slideroles.basic.UserRoleImpl(uri);
// create object's properties
NodeRevisionDescriptor revision = new NodeRevisionDescriptor(0);
NodeProperty property = new NodeProperty("resourcetype", "<collection/>",
true);
revision.setProperty(property);
Date date = new Date();
revision.setCreationDate(date);
revision.setLastModified(date);
property = new NodeProperty("getcontentlength", "0", true);
revision.setProperty(property);
property = new NodeProperty("source", "", true);
revision.setProperty(property);
property = new NodeProperty("password", password,
NodeProperty.SLIDE_NAMESPACE);
revision.setProperty(property);
// store object
structure.create(st, node, uri);
content.create(st, uri, revision, null);
Here's code that updates the user "password" in the database but does not update the
WebDAV property:
<snippet>
// create object's properties
NodeRevisionDescriptor revision = new NodeRevisionDescriptor(0);
NodeProperty property = new NodeProperty("password", password,
NodeProperty.SLIDE_NAMESPACE);
revision.setProperty(property);
content.create(st, uri, revision, null);
</snippet>
Any help with the above <snippet> is appreciated!
Thanks,
Tom Keeney
Novus Consulting Group
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>