I'm using the authentication framework in version 2.1 of cocoon.
I can get the system to authenticate a user and then re-direct to
the correct page based on whether they were authenticated or
not.
However, I'm having a problem trying to retrieve information from
the 'authentication' context of the session when the user is accepted.
I get a context does not exist error when I try and access the context
in login_ok.xml.
If I switch logging to DEBUG level I get the following error before the
user is authenticated.
[NamespaceNormalizingDOMStreamer] Encountered a
DOM Element without a localName. DOM Level 1 trees
are not supported by this DOMStreamer.
I think it occurs when the Authentication system
attempts to write the <authentication> node that I return from check.xsp
to the log file.
What am I missing ???
Also is it possible to access the information stored in the 'authentication'
context via 'xsp-session' in an XSP.
Thanks
Tony
====================== sitemap.xmap =========================================
<map:pipelines>
<map:component-configurations>
<authentication-manager>
<handlers>
<handler name="global">
<redirect-to uri=
<authentication uri=< font size=2 color=#008000 face="Courier New">"cocoon:raw://check"/>
</handler>
</handlers>
</authentication-manager>
</map:component-configurations>
<map:pipeline>
<map:match pattern="check">
<map:generate type="serverpages" src="">"check.xsp"/>
<map:serialize type="xml"/>
</map:match>
<map:match pattern="login_page">
<map:read mime-type="text/xhtml" src="">"login_page.html"/>
</map:match>
<map:match pattern="login_ok">
<map:generate src="">"login_ok.xml"/>
<map:transform type="session"/>
<map:serialize type="xml"/>
</map:match>
<map:match pattern="login">
<map:act type="auth-login">
<map:parameter name="handler" value="global"/>
<map:parameter name="parameter_userid" value="{request-param:name}"/>
<map:parameter name="parameter_password" value="{request-param:password}&quo t;/>
<map:redirect-to uri="login_ok"/>
</map:act>
<map:read mime-type="text/html" src="">"login_failed.html"/>
</map:match>
<map:match pattern="logout">
<map:act type="auth-logout">
<map:parameter name="handler" value="global"/>
<map:redirect-to uri="login_page"/>
</map:act>
</map:match>
</map:pipeline>
</map:pipelines>
========================== login_ok.xml =============================================================
<?xml version="1.0" encoding="UTF-8"?>
<page xmlns:session="http://cocoon.apache.org/sessi on/1.0" >
<session:getxml context="authentication" path="/authentication/ID" />
</page>
========================= check.xsp ================================================================
<?xml version="1.0" encoding="UTF-8"?>
<?cocoon-process type="xsp"?>
<?cocoon-process type="xsl"?>
<xsp:page language="jav a"
xmlns:xsp="http://apach e.org/xsp"
xmlns:esql="http://apac he.org/cocoon/SQL/v2"
xmlns:xsp-request="http ://apache.org/xsp/request/2.0"
xmlns:log="http://apach e.org/xsp/log/2.0" >
<authentication>
<esql:connection>
<esql:pool>web</esql:pool>
<esql:execute-query>
<esql:query>
select id, site from users where username = '<xsp- request:get-parameter name="userid" />' and password = '<xsp-request:get-parameter name="password" />'
</esql:query>
<esql:results>
<esql:row-results>
<ID><esql:get-in t column="id" /></ID>
<data><esql:get- string column="site" /></data>
</esql:row-results>
</esql:results>
<esql:no-results>
<data>No match found - <xsp-request:get-query-string as=" ;string" /></data>
</esql:no-results>
</esql:execute-query>
</esql:connection>
</authentication>
</xsp:page>