Hi:
I kown this ,I used to realize it with the method , and in order to realize
it ,
I have to create a project only for runing a jackrabbit server with my needed
repository.xml,
However I want to use sling's jackrabbit server ,and now sling's repository.xml
is not support
user so well for user manage . As a result , I want to get a way ,use
sling's jackrabbit
server and can realize user management .
2009-01-09
yanshaozhiGmail
发件人: Rory Douglas
发送时间: 2009-01-09 01:01:51
收件人: sling-dev
抄送:
主题: Re: Since sling is support ing for jackrabbit 1.5 why doesn't
providehttpapi for user manager?
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"