cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lint <lintl...@gmail.com>
Subject Authentification : Auth-fw et MySQL
Date Mon, 24 Oct 2005 10:14:18 GMT
Bonjour
Je débute tout juste avec Cocoon et j'aimerais effectuer une
authentification par rapport a une base SQL, j'ai donc modifié le code de
l'exemple auth-fw pour consulter ma base SQL à la place du fichier xml
fourni. Le driver MySQL est bien installé et la connection est ouverte lors
du lancement du serveur Tomcat (visible dans les logs du serveur sql).
Lorsque je valide l'identifiant, rien n'apparait dans les logs MySQL et je
suis redirigé sur la page de login. Le problème viens surement de
authenticate.xsl mais je vois pas ce que ça peut être :/

Différents liens sur lesquels je me suis basé:
* cocoon + mysql
- http://wiki.apache.org/cocoon/MySQL
* SQL transformer
- http://cocoon.apache.org/2.1/userdocs/transformers/sql-transformer.html
* Auth-fw + SQL
- http://www.mail-archive.com/users@cocoon.apache.org/msg22930.html
- http://www.mail-archive.com/users@cocoon.apache.org/msg27130.html
- http://www.mail-archive.com/users@cocoon.apache.org/msg27185.html


Voici le contenu des fichiers concernés :

Dans cocoon.xconf:
...
<jdbc name="mydb">
<pool-controller min="5" max="10"/>
<dburl>jdbc:mysql://localhost:3306/mydb?autoReconnect=true</dburl>
<user>myuser</user>
<password>mypasswd</password>
</jdbc>
...

Dans sitemap.xmap:
...
<map:pipeline internal-only="true">
<!-- This is the authentication resource -->
<map:match pattern="authenticate">

<map:generate src="docs/userlist-sql.xml"/>
<map:transform type="sql">
<map:parameter name="use-connection" value="mydb"/>
<map:parameter name="show-nr-of-rows" value="true"/>
<map:parameter name="clob-encoding" value="UTF-8"/>
<map:parameter name="parameter_name" value="{request-param:username}"/>
<map:parameter name="use-request-parameters" value="true"/>
</map:transform>
<map:transform src="stylesheets/authenticate-sql.xsl">
<map:parameter name="use-request-parameters" value="true"/>
</map:transform>
<map:serialize type="xml"/>

</map:match>
</map:pipeline>
...

Dans userlist-sql.xml:
<?xml version="1.0" encoding="UTF-8"?>
<authentication>
<execute-query xmlns="http://apache.org/cocoon/SQL/2.0">
<use-connection>mydb</use-connection>
<query name="userslist">
SELECT login from users WHERE login='<substitute-value
name="parameter_name"/>'
</query>
</execute-query>
</authentication>

Dans authenticate-sql.xml:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- Get the name from the request parameter -->
<xsl:param name="login"/>

<xsl:template match="authentication">
<authentication>
<xsl:apply-templates select="rowset"/>
</authentication>
</xsl:template>

<xsl:template match="row">
<!-- Compare the name of the user -->
<xsl:if test="normalize-space(login) = $login">
<!-- found, so create the ID -->
<ID><xsl:value-of select="name"/></ID>
</xsl:if>
</xsl:template>

</xsl:stylesheet>



Si vous avez des idées je suis preneur, merci :)

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message