You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-fr@cocoon.apache.org by Montier Patrick <pa...@montier.com> on 2005/02/23 17:27:47 UTC

Form-validator et ma variable de session disparait...

Bonjour,

 

Content de voir qu’il existe une communauté cocoon francaise.

Voila mon problème : 

 

A chaque form-validation (utilisation de    <map:act type="form-validator">)
, toutes les infos de session stockées auparavant (<session:set-attribute
name="xxxxx) disparaissent !!

 

Je dois absolument stocker une variable de session, qui n’à rien avoir avec
une validation, or chaque validation vire la variable. Dois-je quand même
préciser cette variable dans le fichier descriptor ?

 

Quelqu’un a-t-il une idée ?

 

Merci d’avance

 

Le bloc (qui marche bien d’ailleurs)

 

<map:match pattern="asp*/*/do-login">

        <!-- first validate whether submitted values are ok -->

        <map:act type="form-validator">

          <map:parameter name="descriptor"
value="context://sample/descriptors/params.xml"/>

          <map:parameter name="validate" value="login,password"/>

          <!-- now try to log in -->

          <map:act type="db-authenticator">

            <map:parameter name="descriptor"
value="context://sample/descriptors/auth.xml"/>

            <!-- now go to protected area -->

            <map:redirect-to uri="login_ok.htm"/>

          </map:act>

        </map:act>

        <!-- something was wrong, try it again -->

        <map:redirect-to uri="login_nok.htm"/>

      </map:match>


Re: Form-validator et ma variable de session disparait...

Posted by Sylvain Wallez <sy...@apache.org>.
Montier Patrick wrote:

>Merci d'avoir répondu à mon problème.
>
>J'utilise effectivement Tomcat et aussi apache pour cacher les url du port
>8080 mais le problème n'arrive que pendant le
>form-validator/db-authenticator et en cas de succès (vérification login et
>pwd ok), après ou avant être authentifié ou en cas de non validation du
>login, mot de passe, je n'ai aucune perte de session.
>
>Peut être cela vient t'il du db-authenticator ? dois-je déclarer ma variable
>dans le descriptor, même si celle-ci ne sert pas à la validation ?
>  
>

J'ai été voir le code de db-authenticator son fonctionnement est à mon 
avis un peu curieux...

Si on veut conserver des choses en session (comportement par défaut ou 
s'il y a <parameter name="create-session" value="true"/> dans la 
configuration), on commence par détruire la session courante 
(session.invalidate()) avant de la recréer.

Et si on met <parameter name="create-session" value="false"/> alors on 
ne fait que contrôler l'authentification sans rien conserver en session.

Bref, en l'état actuel, passer par db-authenticator vide forcément la 
session...

Ca serait bien d'ouvrir un bug, pour qu'on puisse discuter d'un éventuel 
changement de ce comportement.

Sylvain

-- 
Sylvain Wallez                                  Anyware Technologies
http://www.apache.org/~sylvain           http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }


---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


RE: Form-validator et ma variable de session disparait...

Posted by Montier Patrick <pa...@montier.com>.
Merci d'avoir répondu à mon problème.

J'utilise effectivement Tomcat et aussi apache pour cacher les url du port
8080 mais le problème n'arrive que pendant le
form-validator/db-authenticator et en cas de succès (vérification login et
pwd ok), après ou avant être authentifié ou en cas de non validation du
login, mot de passe, je n'ai aucune perte de session.

Peut être cela vient t'il du db-authenticator ? dois-je déclarer ma variable
dans le descriptor, même si celle-ci ne sert pas à la validation ?

Merci pour votre aide

Patrick Montier

-----Message d'origine-----
De : users-fr-return-160-patrick=montier.com@cocoon.apache.org
[mailto:users-fr-return-160-patrick=montier.com@cocoon.apache.org] De la
part de Sylvain Wallez
Envoyé : dimanche 27 février 2005 23:31
À : users-fr@cocoon.apache.org
Objet : Re: Form-validator et ma variable de session disparait...

Montier Patrick wrote:

>Bonjour,
>
> 
>
>Content de voir qu’il existe une communauté cocoon francaise.
>
>Voila mon problème : 
> 
>
>A chaque form-validation (utilisation de    <map:act
type="form-validator">)
>, toutes les infos de session stockées auparavant (<session:set-attribute
>name="xxxxx) disparaissent !!
>  
>

Curieux, parce que le form-validator ne fait que valider. Est-ce qu'il 
n'y aurait pas un autre problème qui ferait qu'une nouvelle session 
serait créée à chaque requête ? Un classique pour cela est un moteur de 
servlet (tomcat, jetty) placé derrière un serveur httpd, le préfixe 
d'URL externe de l'application (présent sur le navigateur) étant 
différent du préfixe sur le moteur de servlets.

>Je dois absolument stocker une variable de session, qui n’à rien avoir avec
>une validation, or chaque validation vire la variable. Dois-je quand même
>préciser cette variable dans le fichier descriptor ?
>
> 
>
>Quelqu’un a-t-il une idée ?
>
> 
>
>Merci d’avance
> 
>
>Le bloc (qui marche bien d’ailleurs)
> 
>
><map:match pattern="asp*/*/do-login">
>        <!-- first validate whether submitted values are ok -->
>        <map:act type="form-validator">
>          <map:parameter name="descriptor"
>value="context://sample/descriptors/params.xml"/>
>          <map:parameter name="validate" value="login,password"/>
>          <!-- now try to log in -->
>          <map:act type="db-authenticator">
>            <map:parameter name="descriptor"
>value="context://sample/descriptors/auth.xml"/>
>            <!-- now go to protected area -->
>            <map:redirect-to uri="login_ok.htm"/>
>  
>

Houla ! Et que se passe-t-il si on tape directement "login_ok.htm" dans 
le navigateur ? Est-ce qu'on passe quand même par la phase 
d'authenfication ?

Par ailleurs, form-validator est bien vieux maintenant (ça n'a pas bougé 
depuis 2001) et le scénario de login est quelque chose qui se traite 
extrèment bien avec un petit bout de flowscript !

Sylvain

-- 
Sylvain Wallez                                  Anyware Technologies
http://www.apache.org/~sylvain           http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }


---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org




---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Re: Form-validator et ma variable de session disparait...

Posted by Sylvain Wallez <sy...@apache.org>.
Montier Patrick wrote:

>Bonjour,
>
> 
>
>Content de voir qu’il existe une communauté cocoon francaise.
>
>Voila mon problème : 
> 
>
>A chaque form-validation (utilisation de    <map:act type="form-validator">)
>, toutes les infos de session stockées auparavant (<session:set-attribute
>name="xxxxx) disparaissent !!
>  
>

Curieux, parce que le form-validator ne fait que valider. Est-ce qu'il 
n'y aurait pas un autre problème qui ferait qu'une nouvelle session 
serait créée à chaque requête ? Un classique pour cela est un moteur de 
servlet (tomcat, jetty) placé derrière un serveur httpd, le préfixe 
d'URL externe de l'application (présent sur le navigateur) étant 
différent du préfixe sur le moteur de servlets.

>Je dois absolument stocker une variable de session, qui n’à rien avoir avec
>une validation, or chaque validation vire la variable. Dois-je quand même
>préciser cette variable dans le fichier descriptor ?
>
> 
>
>Quelqu’un a-t-il une idée ?
>
> 
>
>Merci d’avance
> 
>
>Le bloc (qui marche bien d’ailleurs)
> 
>
><map:match pattern="asp*/*/do-login">
>        <!-- first validate whether submitted values are ok -->
>        <map:act type="form-validator">
>          <map:parameter name="descriptor"
>value="context://sample/descriptors/params.xml"/>
>          <map:parameter name="validate" value="login,password"/>
>          <!-- now try to log in -->
>          <map:act type="db-authenticator">
>            <map:parameter name="descriptor"
>value="context://sample/descriptors/auth.xml"/>
>            <!-- now go to protected area -->
>            <map:redirect-to uri="login_ok.htm"/>
>  
>

Houla ! Et que se passe-t-il si on tape directement "login_ok.htm" dans 
le navigateur ? Est-ce qu'on passe quand même par la phase 
d'authenfication ?

Par ailleurs, form-validator est bien vieux maintenant (ça n'a pas bougé 
depuis 2001) et le scénario de login est quelque chose qui se traite 
extrèment bien avec un petit bout de flowscript !

Sylvain

-- 
Sylvain Wallez                                  Anyware Technologies
http://www.apache.org/~sylvain           http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }


---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org