I would not try to pass the xsp through an xsl transformation.. it is not needed. just serialize the xsp as xml...

<xsp:page>
<authentication>
<!-- esql here -->
<authentication>

If you have no database results, the empty <authentication> is all thats needed to fail a login attempt.

That said, I use woody and flow, but here is the relevant snippet:

<map:match pattern="doLogin.xml">
<map:act type="auth-loggedIn">
<map:parameter name="handler" value="userhandler"/>
<map:redirect-to uri="loggedin.xml"/>
</map:act>
<map:act type="auth-login">
<map:parameter name="handler" value="userhandler"/>
<map:parameter name="username" value="{request:username}"/>
<map:parameter name="password" value="{request:password}"/>
<map:redirect-to uri="{request:contextPath}"/>
</map:act>
<map:generate src="xml/LoginFailed.xml"/>
<map:transform src="xsl/basic2document.xsl"/>
<map:serialize/>
</map:match>


This assumes your form inputs are named username and password.

Also, I notice you are using the sunrise components. I do not how many changes have been made, but this may be a factor. I use the auth-fw components from the current 2.1 cvs head.

JD

Philippe Guillard wrote:
JD and Flavio,

I found interesting these lines you sent to generate a user XML file for
the auth-handler.I tested XSP generation in a separate sample to
guaranty i have the right result needed by the auth handler (i suggest
Flavio to do this cause i think your code doesn't render exactly this) :

<authentication>
    <ID>any_value</ID>
    <role>guest</role>
    <data></data>
</authentication>

But i still have a big problem : i'm still really bad with parameters
and the data entered in the login is not passed to my XSP/ESQL. Can you
tell me how you wrote your sitemap or tell me what is wrong in mine ?

May Tanks !

Phil


-----------------------------------------------------


This is mine, the sunrise part :

<map:pipeline internal-only="true">
<map:match pattern="sunrise-authuser">
<!-- ====== ORIGINAL PIPE from 2.1.3 same in 2.1.4-dev====== -->
<!-- <map:generate src="esql.xsp" type="serverpages">
<map:parameter name="use-request-parameters" value="true"/>
<map:parameter name="parameter_name"
value="{request-param:name}"/> </map:generate>
<map:transform src="sql2html.xsl">
<map:parameter name="use-request-parameters" value="true"/>
<map:parameter name="servletPath"
value="{request:servletPath}"/>
<map:parameter name="sitemapURI"
value="{request:sitemapURI}"/>
<map:parameter name="contextPath"
value="{request:contextPath}"/>
<map:parameter name="file" value=".xsp"/>
</map:transform>
<map:serialize type="xml"/> -->
<!-- ========== PIPE MODIFIED========= -->
<map:generate src="esql.xsp" type="serverpages">
<map:parameter name="use-request-parameters" value="true"/>
</map:generate>
<map:transform src="sql2html.xsl">
<map:parameter name="use-request-parameters" value="true"/>
<map:parameter name="servletPath"
value="{request:servletPath}"/>
<map:parameter name="sitemapURI"
value="{request:sitemapURI}"/>
<map:parameter name="contextPath"
value="{request:contextPath}"/>
<map:parameter name="file" value=".xsp"/>
</map:transform>
<map:serialize type="xml"/>


</map:match>


And this is my XSP esql.xsp : ---------------------------

<?xml version="1.0" encoding="ISO-8859-1"?>

<!-- CVS: $Id: esql.xsp,v 1.3 2003/04/17 20:47:30 haul Exp $ -->

<xsp:page language="java"
          xmlns:xsp="http://apache.org/xsp";
          xmlns:esql="http://apache.org/cocoon/SQL/v2";>
           xmlns:xsp-request="http://apache.org/xsp/request/2.0";
           xmlns:util="http://apache.org/xsp/util/2.0";
    >
<authentication>
   <esql:connection>

     <esql:pool>goother</esql:pool>
       <esql:execute-query>
         <esql:query>select id,email from member where
email=<xsp-request:get-parameter name="name"/></esql:query>
         <esql:results>
              <esql:row-results>
                 <ID><esql:get-int column="id"/></ID>
                 <role>guest</role>
                 <data></data>
              </esql:row-results>
          </esql:results>
          <esql:no-results>
          </esql:no-results>
       </esql:execute-query>

   </esql:connection>
</authentication>
</xsp:page>

and this is my sql2html.xsl
-----------------------------

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:sql="http://apache.org/cocoon/SQL/2.0";>
<xsl:template match="authentication">
<authentication><xsl:apply-templates/></authentication>
</xsl:template>
<xsl:template match="ID">
<ID><xsl:apply-templates/></ID>
</xsl:template>
<xsl:template match="role">
<role><xsl:apply-templates/></role>
</xsl:template>
<xsl:template match="data">
<data><xsl:apply-templates/></data>
</xsl:template>
</xsl:stylesheet>



On Wed, 2004-02-04 at 06:22, JD Daniels wrote:


I believe the list frowns upon attachments :-)

It doesn't matter what you use to generate your user xml. As long as it has
the required <authentication> and <ID> elements, the auth-fw can use it. The
sample uses xsl transformations, and i use a simple xsp with esql.
This makes a bunch of assumptions... ie i have a table for users, and a
table for roles. you need a connection pool set up in cocoon.xconf, and you
have some method of adding users and roles to your database. The write
source at the end is just how i log people logging in.

<?xml version="1.0"?>
<xsp:page language="java"
   xmlns:xsp="http://apache.org/xsp";
   xmlns:esql="http://apache.org/cocoon/SQL/v2";
   xmlns:xsp-request="http://apache.org/xsp/request/2.0";
   xmlns:xsp-session="http://apache.org/xsp/session/2.0";
create-session="true"
   xmlns:source="http://apache.org/cocoon/source/1.0";
   xmlns:util="http://apache.org/xsp/util/2.0";
   >
<authentication>
<esql:connection>
   <esql:pool>dtmanager</esql:pool>
   <esql:execute-query>
       <esql:query>
           SELECT
           users.id,
           users.firstName,
           users.lastName,
           users.emailAddress,
           roles.id AS roleid,
           roles.name AS role
           FROM users
           LEFT JOIN roles ON (users.role=roles.id)
           WHERE
           userName='<xsp-request:get-parameter name="username"/>'
           AND
           password='<xsp-request:get-parameter name="password"/>'
           AND active='Yes'
           LIMIT 1
       </esql:query>
       <esql:results>
           <esql:row-results>
               <ID><esql:get-int column="id"/></ID>
               <role><esql:get-string column="role"/></role>
               <data>
                   <xsp-session:set-attribute
name="userId"><esql:get-string column="id"/></xsp-session:set-attribute>
                   <xsp-session:set-attribute
name="userRole"><esql:get-string column="role"/></xsp-session:set-attribute>
                   <xsp-session:set-attribute
name="userFirstName"><esql:get-string
column="firstName"/></xsp-session:set-attribute>
                   <xsp-session:set-attribute
name="userLastName"><esql:get-string
column="lastName"/></xsp-session:set-attribute>
                   <xsp-session:set-attribute
name="userEmail"><esql:get-string
column="emailAddress"/></xsp-session:set-attribute>
                   <ID><esql:get-int column="id"/></ID>
                   <role><esql:get-string column="role"/></role>
                   <firstname><esql:get-string
column="firstName"/></firstname>
                   <lastname><esql:get-string
column="lastName"/></lastname>
                   <email><esql:get-string column="emailAddress"/></email>
               </data>
               <source:insert>

<source:source>context://module-files/auth/stats/<util:time
format="yyyy/MM/dd"/>.xml</source:source>
                   <source:path>/log</source:path>
                   <source:fragment>
                       <logon>
                           <date><util:time format="yyyy/MM/dd"/></date>
                           <time><util:time format="hh:mm:ss a"/></time>
                           <user-agent><xsp-request:get-header
name="user-agent"/></user-agent>

<remote-addr><xsp-request:get-remote-address/></remote-addr>

<remote-host><xsp-request:get-remote-host/></remote-host>
                           <userFirstName><xsp-session:get-attribute
name="userFirstName"/></userFirstName>
                           <userLastName><xsp-session:get-attribute
name="userLastName"/></userLastName>
                       </logon>
                   </source:fragment>
               </source:insert><esql:error-results><b>Error
Results</b></esql:error-results>
           </esql:row-results>
       </esql:results>
       <esql:no-results>
           <source:insert>
               <source:source>context://module-files/auth/stats/<util:time
format="yyyy/MM/dd"/>.xml</source:source>
               <source:path>/log</source:path>
               <source:fragment>
                   <logonfail>
                       <date><util:time format="yyyy/MM/dd"/></date>
                       <time><util:time format="hh:mm:ss a"/></time>
                       <user-agent><xsp-request:get-header
name="user-agent"/></user-agent>

<remote-addr><xsp-request:get-remote-address/></remote-addr>

<remote-host><xsp-request:get-remote-host/></remote-host>
                       <userFirstName><xsp-session:get-attribute
name="userFirstName"/></userFirstName>
                       <userName><xsp-request:get-parameter
name="username"/></userName>
                   </logonfail>
               </source:fragment>
           </source:insert>
       </esql:no-results>
   </esql:execute-query>
</esql:connection>
</authentication>
</xsp:page>



-----Original Message-----
From: Flavio Palumbo [mailto:[EMAIL PROTECTED]
Sent: 2004-02-03 12:52 AM
To: [EMAIL PROTECTED]
Subject: RE: cocoon authentication and database access


Hi JD,


could you please send the same samples to me (or maybe to the list) ?

I have just depeloped something like this founding some problems not
completely
solved ; i'd like to compare my code with yours.

Thanks a lot

Flavio



I know exactly what you mean :-)

I'll send you a sample xsp file off-list.

JD
-----Original Message-----
From: Anna Bikkina [mailto:[EMAIL PROTECTED]
Sent: 2004-02-02 9:34 AM
To: [EMAIL PROTECTED]
Subject: Re: cocoon authentication and database access


Could you please send me a couple of examples. I am new to xml and related stuff. I am having a tough time getting things together.

Thanks,
Anna.


On Monday 02 February 2004 01:08 pm, JD Daniels wrote:


I use a simple xsp with esql to load my users

JD

-----Original Message-----
From: Anna Bikkina [mailto:[EMAIL PROTECTED]
Sent: 2004-02-02 8:20 AM
To: [EMAIL PROTECTED]
Subject: cocoon authentication and database access


Hi,


I am new to cocoon and trying to build a portal application. I already

have


an
existing application written in JSP and ported in tomcat. How can I change
it
so that it works in cocoon. Are there any examples I can look into to

get


this task done.

Also I have do database authentication when user logs in. All cocoon
examples
show authentication with users in the xml file. Can anyone please direct

me


how to access databases from cocoon during authetication and in other
places.


Thanks, Anna.






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]





--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to