Actually, if you need to, it's simple to access the "security" workspace (if you have the admin credentials):

<%
   Session jcrSession = currentNode.getSession();

SimpleCredentials creds = new SimpleCredentials("admin","admin".toCharArray());
   Session secSession = jcrSession.getRepository().login(creds,"security");
Query secQuery = secSession.getWorkspace().getQueryManager().createQuery("//element(*,rep:User)","xpath");
   QueryResult secResult = secQuery.execute();
%>

That should list all users configured in the repository (as a result of UserManager.createUser() calls, and the admin/anonymous profiles).

yanshaozhiGmail wrote:
HI:

thanks very much for telling me so much , I have another question , if I want to user the user manager in sling, Do I have to change the sling code (sling repository: repository.xml replace the SimpleAccessManager
to DefultAccessManager  and other interface.)


2009-01-08


yanshaozhiGmail


发件人: Rory Douglas 发送时间: 2009-01-08 23:41:11 收件人: sling-dev 抄送: 主题: Re: Since sling is support ing for jackrabbit 1.5 why doesn't providehttp api for user manager? You need to do two things to get access to UserManager/PrincipalManager. First, you should remove the org.apache.sling.jcr.jackrabbit.api bundle. Then download the Jackrabbit 1.5 API bundle & install that instead (it's OSGI-ified). That will export the releveant JSR283 packages. Then you should be able to do the following (in a JSP or anywhere you have a Session):
UserManager userManager = null;
if(session instanceof PooledJackrabbitSession) {
    userManager = ((PooledJackrabbitSession)session).getUserManager();
} else {
    // use reflection since Jackrabbit.core package not exported
    Method m = session.getClass().getMethod("getUserManager");
    userManager = (UserManager)m.invoke(session);
}
This same pattern works for PrincipalManager which is exposed on the JackrabbitSession. If you want the AccessControlManager (to set ACLs), you'll need to use the reflection approach only for now. You don't need to actually access the "security" workspace in order to create & manager users (although there's no good way to list all users right now, so accessing the workspace probably would give you that ability). I've created a utility class that wraps up all this messy code - I'll open an issue & submit the patch now.
Regards,
Rory
yanshaozhiGmail wrote:
HI:

As I know , now sling is support for jackrabbit 1.5 , it will
more powerfull if sling can provide api for user manager .

And is there any way to implement user manage with sling
if I implement it myself ? how can I get ""security" workspace?

It's seems that there isn't "security" workspace in sling's
jackrabbit repository.


2009-01-08


yanjie

--




Rory Douglas | Senior Principal Consultant
Fax: +1-201-604-6428 | Mobile: +1-917-498-5344
Oracle North America Consulting
ORACLE United States | | San Diego, CA
"Please consider your environmental responsibility before printing this e-mail"

Reply via email to