Hi,
What I'm trying to do: get the DatabaseAuthenticatorAction to...
well, authenticate from the Db. The logs don't seem to have any
information that can tell me what I'm doing wrong.
What I'm using: Tomcat 4.0.1, Cocoon 2.01 (freshly installed),
JVM 1.3.1 and a MySQL database (with its driver class).
My sitemap looks like this:
<map:action name="db-auth" logger="sitemap.action.db-auth"
src="org.apache.cocoon.acting.DatabaseAuthenticatorAction"/>
<!-- snip -->
<map:match pattern="nhd/test">
<map:act type="db-auth">
<map:parameter name="descriptor"
value="file:///docs/samples/xsp/auth-descriptor.xml"/>
<map:parameter name="validate" value="username,password"/>
<map:generate type="serverpages" src="docs/samples/xsp/nhd.xsp"/>
<map:transform src="stylesheets/dynamic-page2html.xsl">
<map:parameter name="view-source"
value="docs/samples/xsp/nhd.xsp"/>
</map:transform>
<map:serialize/>
</map:act>
<map:redirect-to uri="../xsp/simple"/>
</map:match>
What is working: when I access the page and supply the wrong
username and password, I get redirected. Good, that's what's in
my sitemap. So I assume that all the looking up in the db stuff
is working, because...
...when I _do_ supply the right user/pwd, tomcat throws a
NoSuchMethodError with not many clues:
java.lang.NoSuchMethodError
at
org.apache.catalina.session.StandardSession.removeAttribute
(StandardSession.java:1070)
at
org.apache.catalina.session.StandardSession.expire(StandardSession.java:596)
at
org.apache.catalina.session.StandardSession.invalidate(StandardSession.java:
983)
at
org.apache.catalina.session.StandardSessionFacade.invalidate
(StandardSessionFacade.java:211)
at
org.apache.catalina.session.StandardSessionFacade.invalidate
(StandardSessionFacade.java:211)
at
org.apache.cocoon.environment.http.HttpSession.invalidate(HttpSession.java:
232)
at
org.apache.cocoon.acting.DatabaseAuthenticatorAction.act
(DatabaseAuthenticatorAction.java:120)
at
org.apache.cocoon.www.sitemap_xmap.matchN104B2(sitemap_xmap.java:6225)
at org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java:3019)
... and so on ...
The last method (or first one, depending on how you look at it)
is either StandardSession.removeAttribute or
StandardSession.setAttribute, whether it's getting a request
with or without a session cookie.
For info, my auth-descriptor.xml looks like this:
<root>
<connection>dms</connection>
<table name="users">
<select dbcol="usr_login" request-param="username" to-
session="login"/>
<select dbcol="usr_password" request-param="password" nullable="no"/>
</table>
</root>
Any ideas on that big fat obvious thing I'm overlooking? :-)
Thanks in advance!
Andre.
---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail: <[EMAIL PROTECTED]>