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+Specificatio... .
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