Hi,
Rory Douglas schrieb:
> 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();
Just a small remark: The PooledJackrabbitSession is not visible, rather
check for JackrabbitSession as in:
if(session instanceof JackrabbitSession) {
userManager = ((JackrabbitSession)session).getUserManager();
Regards
Felix
> } 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
>>
>