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" <ludovic(a)xwiki.org>
To: "XWiki Developers" <devs(a)xwiki.org>
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+Specificati…
.
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
devs(a)xwiki.org
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
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs