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.