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]>

Reply via email to