>> > Vidar is right. In Jackrabbit 1 users used to be stored in the security >> > workspace. In Jackrabbit 2 this has been made a bit more pluggable, but >> > IIRC users are still stored in the security workspace. >> > >> > IIRC the session to access the security workspace is encapsulated in the >> > UserManager.
I can't see that. The UserManager is retrieved from the session established in the CreateUserServlet and operates on that. There doesn't seem to be a call to a security workspace. However I find that the users are actually stored in a /rep:system/rep:userManager path which is mapped to /system/userManager. However I don't get any results either when I listen to this path. >> >> Regardless of where users are actually stored by Jackrabbit, perhaps >> it would make sense to have CreateUserServlet fire an OSGi event (like >> org/apache/sling/api/resource/Resource/ADDED) when adding a user? >> The same would obviously apply to the other servlets under >> o.a.s.jackrabbit.usermanager.impl.post. > > Definitely, I agree, that JCR level events are probably not appropriate > for handling User Management situations because it is the very goal of > the user manager to abstract and hide the actual location of the users. > I liked the idea of using JCR events because it unifies the event handling. And in addition I am more interested in property changes (who has added a user when to which group) then the pure node creations. Something that is covered already by the JCR events. > But then: Not all user management actions go through the servlets and > hence the events would be incomplete. I think the UserManager itself > should actually fire events... Isn't the userManager part of Jackrabbit? Which kind of events will it then fire? Regards, Markus >> > Am Donnerstag, den 27.01.2011, 19:05 +0000 schrieb Vidar Ramdal: >> >> >> On Thu, Jan 27, 2011 at 9:56 AM, Markus Joschko >> >> >> <[email protected]> wrote: >> >> >>> I try to implement an audit mechanism and part of it is to track the >> >> >>> changes that happen in the user and group sections. >> >> >>> However when I use the REST interface of the usermanager, I don't >> >> >>> receive any events when a user is added below /system/userManager/user >> >> >>> >> >> >>> When I add a node there "by hand" I get the notifications >> >> >>> >> >> >>> Any obvious reason for that? >> >> >> >> > On Thu, Jan 27, 2011 at 10:06 AM, Vidar Ramdal <[email protected]> wrote: >> >> >> Just guessing, but I think the user nodes are added to the 'security' >> >> >> workspace, but the event listeners are only listening to events from >> >> >> the 'default' workspace. >> >> >> >> >> >> You could try registering a JCR event listener for the security >> >> >> workspace by repository.login([credentials], >> >> >> "security").getObservationManager().addEventListener(...); >> >> >> >> On Thu, Jan 27, 2011 at 4:59 PM, Markus Joschko >> >> <[email protected]> wrote: >> >> > Hi Vidar, >> >> > that also doesn't work. >> >> > Checking the CreateUserServlet I see that it is using the default >> >> > workspace. >> >> >> >> Hmm, yes, the CreateUserServlet uses a session for the default >> >> workspace to get the UserManager, which in turn is used to create the >> >> user. >> >> But I'm pretty sure that Jackrabbit internally stores users in the >> >> security workspace. >> >> >> >> Maybe you could post the code of your EventListener, and of >> >> ObservationManager.addEventListener call? >> >> >> >> >> > >> > >> > >> >> >> > > >
