You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@sling.apache.org by sam lee <sk...@gmail.com> on 2011/02/15 15:55:12 UTC

getting ResourceResolver from JCR Session

Hey,

I have  Session object and ResourceResolverFactory object.

How can I get ResourceResolver?

I tried:

map.put(ResourceResolverFactory.USER_IMPERSONATION, session.getUserID());
resolver = resourceResolverFactory.getAdministrativeResourceResolver(map);

map.put(ResourceResolverFactory.USER_IMPERSONATION, session.getUserID());
resolver = resourceResolverFactory.getResourceResolver(map);



But the resolver has too much privilege. I want the resolver to have same
privilege as the current logged in user.

I also tried:

map.put(ResourceResolverFactory.USER, session.getUserID());
resolver = resourceResolverFactory.getResourceResolver(map);

resolver = resourceResolverFactory.getResourceResolver(null);

But these give too little privilege.


1. How can I get password from JCR Session so that I can try
getResourceResolver(map)  with USER and PASSWORD?
2. Or, how can I get ResourceResolver that has same privilege as currently
logged in user.

There was JcrResourceResolverFactory that took Session.. but it is now
deprecated.


Thanks.

Re: getting ResourceResolver from JCR Session

Posted by Ian Boston <ie...@tfd.co.uk>.
Ahh Ok, 
I cant really help you on that.
I have heard there are some CQ5 lists, but on of the Day/Adobe committers will be able to help.
Sorry.
Ian
On 15 Feb 2011, at 15:14, sam lee wrote:

> Actually, I am writing Day CQ workflow:
> 
> public void execute(WorkItem item, WorkflowSession workflowSession,
> MetaDataMap map) throws WorkflowException {
> 
> I get Session like:
> 
> final Session session = workflowSession.getSession();
> 
> 
> Maybe this is Day specific. I'll open a customer support ticket on Day side.
> 
> 
> On Tue, Feb 15, 2011 at 10:01 AM, Ian Boston <ie...@tfd.co.uk> wrote:
> 
>> How did you get hold of the Session ?
>> 
>> If you are processing  a request, then the normal way of getting a
>> ResourceResolver is to do
>> 
>> ResourceResolver resourceResolver = request.getResourceResolver();
>> 
>> Or are you doing some low level re-wiring of the Resolver mechanism that
>> means you need to create the ResourceResolver from scratch ?
>> 
>> Ian
>> 
>> On 15 Feb 2011, at 14:55, sam lee wrote:
>> 
>>> Hey,
>>> 
>>> I have  Session object and ResourceResolverFactory object.
>>> 
>>> How can I get ResourceResolver?
>>> 
>>> I tried:
>>> 
>>> map.put(ResourceResolverFactory.USER_IMPERSONATION, session.getUserID());
>>> resolver =
>> resourceResolverFactory.getAdministrativeResourceResolver(map);
>>> 
>>> map.put(ResourceResolverFactory.USER_IMPERSONATION, session.getUserID());
>>> resolver = resourceResolverFactory.getResourceResolver(map);
>>> 
>>> 
>>> 
>>> But the resolver has too much privilege. I want the resolver to have same
>>> privilege as the current logged in user.
>>> 
>>> I also tried:
>>> 
>>> map.put(ResourceResolverFactory.USER, session.getUserID());
>>> resolver = resourceResolverFactory.getResourceResolver(map);
>>> 
>>> resolver = resourceResolverFactory.getResourceResolver(null);
>>> 
>>> But these give too little privilege.
>>> 
>>> 
>>> 1. How can I get password from JCR Session so that I can try
>>> getResourceResolver(map)  with USER and PASSWORD?
>>> 2. Or, how can I get ResourceResolver that has same privilege as
>> currently
>>> logged in user.
>>> 
>>> There was JcrResourceResolverFactory that took Session.. but it is now
>>> deprecated.
>>> 
>>> 
>>> Thanks.
>> 
>> 


Re: getting ResourceResolver from JCR Session

Posted by Carsten Ziegeler <cz...@apache.org>.
Alexander Klimetschek  wrote
> On 15.02.11 17:43, "Carsten Ziegeler" <cz...@apache.org> wrote:
> 
>> If you're using Sling API 2.2.0 you can put the session into the
>> authentication map:
>>
>> map.put( "user.jcr.session", session);
>>
>> and then call
>>
>> getResourceResolver(map) on the ResourceResolverFactory.
> 
> Cool, didn't know that. Would probably be useful if this would be noted in
> the deprecated notice of the JcrResourceResolverFactory class.
> 
Good idea - just did that.

Thanks
Carsten

-- 
Carsten Ziegeler
cziegeler@apache.org

Re: getting ResourceResolver from JCR Session

Posted by Alexander Klimetschek <ak...@adobe.com>.
On 15.02.11 17:43, "Carsten Ziegeler" <cz...@apache.org> wrote:

>If you're using Sling API 2.2.0 you can put the session into the
>authentication map:
>
>map.put( "user.jcr.session", session);
>
>and then call
>
>getResourceResolver(map) on the ResourceResolverFactory.

Cool, didn't know that. Would probably be useful if this would be noted in
the deprecated notice of the JcrResourceResolverFactory class.

Regards,
Alex

-- 
Alexander Klimetschek
Developer // Adobe (Day) // Berlin - Basel





Re: getting ResourceResolver from JCR Session

Posted by Carsten Ziegeler <cz...@apache.org>.
If you're using Sling API 2.2.0 you can put the session into the
authentication map:

map.put( "user.jcr.session", session);

and then call

getResourceResolver(map) on the ResourceResolverFactory.

Carsten

Alexander Klimetschek  wrote
> On 15.02.11 16:14, "sam lee" <sk...@gmail.com> wrote:
> 
>> Actually, I am writing Day CQ workflow:
>>
>> public void execute(WorkItem item, WorkflowSession workflowSession,
>> MetaDataMap map) throws WorkflowException {
>>
>> I get Session like:
>>
>> final Session session = workflowSession.getSession();
>>
>>
>> Maybe this is Day specific. I'll open a customer support ticket on Day
>> side.
> 
> Not really, workflows are a background scenario where you have no request
> and thus pre-defined resource resolver available.
> 
> Unless the Sling guys have a replacement for it (i.e. wrapping an existing
> jcr session), I would continue to use the JcrResourceResolverFactory at
> the moment.
> 
> Regards,
> Alex
> 


-- 
Carsten Ziegeler
cziegeler@apache.org

Re: getting ResourceResolver from JCR Session

Posted by Alexander Klimetschek <ak...@adobe.com>.
On 15.02.11 16:14, "sam lee" <sk...@gmail.com> wrote:

>Actually, I am writing Day CQ workflow:
>
>public void execute(WorkItem item, WorkflowSession workflowSession,
>MetaDataMap map) throws WorkflowException {
>
>I get Session like:
>
>final Session session = workflowSession.getSession();
>
>
>Maybe this is Day specific. I'll open a customer support ticket on Day
>side.

Not really, workflows are a background scenario where you have no request
and thus pre-defined resource resolver available.

Unless the Sling guys have a replacement for it (i.e. wrapping an existing
jcr session), I would continue to use the JcrResourceResolverFactory at
the moment.

Regards,
Alex

-- 
Alexander Klimetschek
Developer // Adobe (Day) // Berlin - Basel





Re: getting ResourceResolver from JCR Session

Posted by sam lee <sk...@gmail.com>.
Actually, I am writing Day CQ workflow:

public void execute(WorkItem item, WorkflowSession workflowSession,
MetaDataMap map) throws WorkflowException {

I get Session like:

final Session session = workflowSession.getSession();


Maybe this is Day specific. I'll open a customer support ticket on Day side.


On Tue, Feb 15, 2011 at 10:01 AM, Ian Boston <ie...@tfd.co.uk> wrote:

> How did you get hold of the Session ?
>
> If you are processing  a request, then the normal way of getting a
> ResourceResolver is to do
>
> ResourceResolver resourceResolver = request.getResourceResolver();
>
> Or are you doing some low level re-wiring of the Resolver mechanism that
> means you need to create the ResourceResolver from scratch ?
>
> Ian
>
> On 15 Feb 2011, at 14:55, sam lee wrote:
>
> > Hey,
> >
> > I have  Session object and ResourceResolverFactory object.
> >
> > How can I get ResourceResolver?
> >
> > I tried:
> >
> > map.put(ResourceResolverFactory.USER_IMPERSONATION, session.getUserID());
> > resolver =
> resourceResolverFactory.getAdministrativeResourceResolver(map);
> >
> > map.put(ResourceResolverFactory.USER_IMPERSONATION, session.getUserID());
> > resolver = resourceResolverFactory.getResourceResolver(map);
> >
> >
> >
> > But the resolver has too much privilege. I want the resolver to have same
> > privilege as the current logged in user.
> >
> > I also tried:
> >
> > map.put(ResourceResolverFactory.USER, session.getUserID());
> > resolver = resourceResolverFactory.getResourceResolver(map);
> >
> > resolver = resourceResolverFactory.getResourceResolver(null);
> >
> > But these give too little privilege.
> >
> >
> > 1. How can I get password from JCR Session so that I can try
> > getResourceResolver(map)  with USER and PASSWORD?
> > 2. Or, how can I get ResourceResolver that has same privilege as
> currently
> > logged in user.
> >
> > There was JcrResourceResolverFactory that took Session.. but it is now
> > deprecated.
> >
> >
> > Thanks.
>
>

Re: getting ResourceResolver from JCR Session

Posted by Ian Boston <ie...@tfd.co.uk>.
How did you get hold of the Session ?

If you are processing  a request, then the normal way of getting a ResourceResolver is to do

ResourceResolver resourceResolver = request.getResourceResolver();

Or are you doing some low level re-wiring of the Resolver mechanism that means you need to create the ResourceResolver from scratch ?

Ian

On 15 Feb 2011, at 14:55, sam lee wrote:

> Hey,
> 
> I have  Session object and ResourceResolverFactory object.
> 
> How can I get ResourceResolver?
> 
> I tried:
> 
> map.put(ResourceResolverFactory.USER_IMPERSONATION, session.getUserID());
> resolver = resourceResolverFactory.getAdministrativeResourceResolver(map);
> 
> map.put(ResourceResolverFactory.USER_IMPERSONATION, session.getUserID());
> resolver = resourceResolverFactory.getResourceResolver(map);
> 
> 
> 
> But the resolver has too much privilege. I want the resolver to have same
> privilege as the current logged in user.
> 
> I also tried:
> 
> map.put(ResourceResolverFactory.USER, session.getUserID());
> resolver = resourceResolverFactory.getResourceResolver(map);
> 
> resolver = resourceResolverFactory.getResourceResolver(null);
> 
> But these give too little privilege.
> 
> 
> 1. How can I get password from JCR Session so that I can try
> getResourceResolver(map)  with USER and PASSWORD?
> 2. Or, how can I get ResourceResolver that has same privilege as currently
> logged in user.
> 
> There was JcrResourceResolverFactory that took Session.. but it is now
> deprecated.
> 
> 
> Thanks.