Hi Markus,

On Jul 28, 2008, at 12:17 PM, Markus Lanthaler wrote:

> Hi Ludovic,
>
> I just created a class OpenIDHelper which has a static method
> findOpenIDUser(). That method is called in the already existent class
> MyFormAuthenticator which I extended a bit. Shouldn't the component  
> manager
> be set up already in that "context"? Do you need any other details?

If you're using the default xwiki servlet (the struts one) then yes it  
should be already set. If you have created your own entry point  
(servlet, other) then you'll need to set it up as described by Thomas.

Thanks
-Vincent

>> I think it's "prop.value =:identifier" (not ':identifier') otherwise
>> hibernate will consider you use the value ":identifier" and will not
>> replace it.
>
> OK Thomas, I fixed that. Thanks!
>
>
> ----- Original Message -----
> From: "Ludovic Dubost" <[EMAIL PROTECTED]>
> To: "XWiki Developers" <[email protected]>
> Sent: Monday, July 28, 2008 11:53 AM
> Subject: [gsoc] Re: [xwiki-devs] Problems creating a query using the
> QueryManager
>
>
>>
>> Hi Markus,
>>
>> Line 73 of AbstractQueryManager
>>
>>   query = (Query) componentManager.lookup(Query.ROLE, language);
>>
>> Your componentManager is null.. This probably means that you have   
>> not
>> activated the component manager from plexus properly.
>> Probably Vincent can help, but he will probably need to know how you
>> have build your code.
>>
>> Ludovic
>>
>> Markus Lanthaler wrote:
>>> Hi,
>>>
>>> I'm currently implementing the last things to finish OpenID
>>> authentication
>>> support but I have some problems with the query manager. I'm  
>>> trying to
>>> get
>>> the document (should be only one) which an attached OpenIdIdentifier
>>> object
>>> whose "identifier" string property's value has some specific  
>>> value. I
>>> didn't
>>> found any documentation apart
>>> http://markmail.org/message/jt6m2huqr4r6hvk6
>>> and
>>> http://dev.xwiki.org/xwiki/bin/view/Design/XWiki+Query+Language+Specification
>>>  
>>> .
>>>
>>> I tried to achieve this by the following code:
>>>
>>>    public static String findOpenIDUser(String openid_identifier,
>>> XWikiContext context) throws XWikiException
>>>    {
>>>        XWiki xwiki = context.getWiki();
>>>
>>>        QueryManager qm = xwiki.getStore().getQueryManager();
>>>        Query search_user;
>>>
>>>        if (qm.hasLanguage(Query.HQL)) {
>>>            search_user =
>>>                qm.createQuery(", BaseObject as obj, StringProperty  
>>> as
>>> prop
>>> where doc.fullName = obj.name and obj.className =
>>> 'XWiki.OpenIdIdentifier'
>>> and obj.id=prop.id.id and prop.id.name='identifier' and prop.value =
>>> ':identifier'", Query.HQL);
>>>        } else if (qm.hasLanguage(Query.XPATH)) {
>>>            search_user =
>>> qm.createQuery("/*/*[obj/XWiki/OpenIdIdentifier/@xp:identifier =
>>> ':identifier'] ", Query.XPATH);
>>>        } else
>>>            throw new RuntimeException();
>>>
>>>        search_user.bindValue("identifier", openid_identifier);
>>>
>>>        List<XWikiDocument> found_users =
>>> search_user.setLimit(1).execute();
>>>        if (found_users.size() > 0) {
>>>            if (log.isDebugEnabled()) {
>>>                log.debug("OpenID " + openid_identifier + " already
>>> registered.");
>>>            }
>>>            return found_users.get(0).getFullName();
>>>        }
>>>
>>>        return null;
>>>    }
>>>
>>>
>>> but all I get is a NullPointerException when qm.createQuery(...,
>>> Query.HQL)
>>> is called. What's wrong with my code?
>>>
>>> java.lang.NullPointerException
>>> at
>>> com 
>>> .xpn 
>>> .xwiki 
>>> .store 
>>> .query.AbstractQueryManager.createQuery(AbstractQueryManager.java: 
>>> 73)
>>> at
>>> com 
>>> .xpn 
>>> .xwiki 
>>> .user.impl.openid.OpenIDHelper.findOpenIDUser(OpenIDHelper.java:109)
>>> at
>>> com 
>>> .xpn 
>>> .xwiki 
>>> .user 
>>> .impl 
>>> .xwiki.MyFormAuthenticator.processLogin(MyFormAuthenticator.java: 
>>> 201)
>>> at
>>> com 
>>> .xpn 
>>> .xwiki 
>>> .user 
>>> .impl 
>>> .xwiki.MyFormAuthenticator.processLogin(MyFormAuthenticator.java: 
>>> 178)
>>> at
>>> com 
>>> .xpn 
>>> .xwiki 
>>> .user 
>>> .impl 
>>> .xwiki.XWikiAuthServiceImpl.checkAuth(XWikiAuthServiceImpl.java:205)
>>> at com.xpn.xwiki.XWiki.checkAuth(XWiki.java:3518)
>>> at
>>> com 
>>> .xpn 
>>> .xwiki 
>>> .user 
>>> .impl 
>>> .xwiki 
>>> .XWikiRightServiceImpl.checkAccess(XWikiRightServiceImpl.java:139)
>>> at com.xpn.xwiki.XWiki.checkAccess(XWiki.java:3526)
>>> at com.xpn.xwiki.XWiki.prepareDocuments(XWiki.java:4432)
>>> at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:190)
>>> at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:115)
>>> at
>>> org 
>>> .apache 
>>> .struts 
>>> .action 
>>> .RequestProcessor.processActionPerform(RequestProcessor.java:431)
>>> at
>>> org 
>>> .apache 
>>> .struts.action.RequestProcessor.process(RequestProcessor.java:236)
>>> at
>>> org.apache.struts.action.ActionServlet.process(ActionServlet.java: 
>>> 1196)
>>> at  
>>> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java: 
>>> 432)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>>> at
>>> org 
>>> .apache 
>>> .catalina 
>>> .core 
>>> .ApplicationFilterChain 
>>> .internalDoFilter(ApplicationFilterChain.java:290)
>>> at
>>> org 
>>> .apache 
>>> .catalina 
>>> .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 
>>> 206)
>>> at
>>> com 
>>> .xpn 
>>> .xwiki 
>>> .web 
>>> .SavedRequestRestorerFilter 
>>> .doFilter(SavedRequestRestorerFilter.java:287)
>>> at
>>> org 
>>> .apache 
>>> .catalina 
>>> .core 
>>> .ApplicationFilterChain 
>>> .internalDoFilter(ApplicationFilterChain.java:235)
>>> at
>>> org 
>>> .apache 
>>> .catalina 
>>> .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 
>>> 206)
>>> at
>>> com 
>>> .xpn 
>>> .xwiki 
>>> .web 
>>> .SetCharacterEncodingFilter 
>>> .doFilter(SetCharacterEncodingFilter.java:112)
>>> at
>>> org 
>>> .apache 
>>> .catalina 
>>> .core 
>>> .ApplicationFilterChain 
>>> .internalDoFilter(ApplicationFilterChain.java:235)
>>> at
>>> org 
>>> .apache 
>>> .catalina 
>>> .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 
>>> 206)
>>> at
>>> org 
>>> .apache 
>>> .catalina 
>>> .core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>> at
>>> org 
>>> .apache 
>>> .catalina 
>>> .core.StandardContextValve.invoke(StandardContextValve.java:175)
>>> at
>>> org 
>>> .apache 
>>> .catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>>> at
>>> org 
>>> .apache 
>>> .catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>> at
>>> org 
>>> .apache 
>>> .catalina.core.StandardEngineValve.invoke(StandardEngineValve.java: 
>>> 109)
>>> at
>>> org 
>>> .apache 
>>> .catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>>> at
>>> org 
>>> .apache.coyote.http11.Http11Processor.process(Http11Processor.java: 
>>> 844)
>>> at
>>> org.apache.coyote.http11.Http11Protocol 
>>> $Http11ConnectionHandler.process(Http11Protocol.java:583)
>>> at
>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java: 
>>> 447)
>>> at java.lang.Thread.run(Thread.java:619)
>>>
>>> _______________________________________________
>>> devs mailing list
>>> [email protected]
>>> http://lists.xwiki.org/mailman/listinfo/devs
>>>
>>>
>>
>>
>> -- 
>> Ludovic Dubost
>> Blog: http://blog.ludovic.org/
>> XWiki: http://www.xwiki.com
>> Skype: ldubost GTalk: ldubost
>>
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to