Le rejeu de formulaire permet d'ouvrir une session dans une application protégée par un formulaire POST sans rien demander à l'utilisateur.
Ce type de mécanisme
SSO n'est pas parfait et peut générer des problèmes tels des blocages de mots-de-passe, sessions locales mal closes, etc...
Il est en général préférable de trouver une autre solution pour protéger les applications avec LL::NG. Ainsi, vérifier si l'application est connue ou essayer d'adapter le code source.
En configurant le rejeu de formulaire avec LL::NG, le handler détecte les formulaires à remplir, ajoute un petit javascript dans la page HTML pour préparer les champs avec de fausses données et les soumettre, le handler intercepte la requête POST et insère les bonnes données dans le corps de la requête.
Les données postées peuvent être des valeurs statiques ou calculées à partir des données de session de l'utilisateur.
Pour envoyer le mot-de-passe utilisateur, il faut activer le
stockage du mot-de-passe. Dans ce cas, la variable
$_password
peut être utilisée dans tous les champs à envoyer.
You should grab some information:
L'
URI de la page qui contient le formulaire
L'
URI vers laquelle le formulaire est envoyé
La page charge-elle jQuery ? Sinon, indiquer une
URL jQuery joignable par l'utilisateur (toute version supérieure à 1.0)
y-a-t-il pluseurs formulaires HTML dans la page ? Si oui, donner un sélecteur à jQuery identifiant le bon formulaire
l'utilsiateur doit-il cliquer sur un bouton, par exemple pour déclencher un script ? Si oui, donner un sélecteur à jQuery pour identifier ce bouton
noms and valeurs des champs à contrôler
Si vous ne connaissez pas les sélecteurs jQuery, sachez juste qu'ils sont similaires aux sélecteurs CSS : par exemple, button#foo pointe sur le bouton dont l'« id » est « foo », and « .bar » identifie tous les éléments HTML de la classe “bar”.
Par exemple :
URI de la page de formulaire : /login.php
URI cible : /process.php (en laissant ce paramètre vide, l'
URI cible est supposée être la même que celle du formulaire)
URL jQuery : http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js (si ce paramètre est vide, jQuery est supposé être déjà chargé ; on peut aussi mettre
default
pour pointer vers l'
URL jQuery du portail
LL::NG)
Sélecteur de formulaire jQuery : #loginForm (si vide, le navigateur prendra un formulaire de la page)
Sélecteur du bouton jQuery : button.validate (si vide, le formulaire sera soumis sans éulation d'un clic de bouton ; si mis à “none”, aucun clic ne sera émulé et le formulaire sera renseigné mais pas soumis)
Champs :
postuid: $uid
postmail: $mail
poststatic: 'static'
Aller dans le manager, “Hôtes virtuels” » virtualhost » “Rejeu de formulaires” et cliquer sur “Nouveau rejeu”.
Renseigner les valeurs ici :
Cliquer ensuite sur Nouvelle variable
et ajouter toutes les noms de champ et leurs valeurs, par exemple:
Il est possible de définir plusieurs
URL de rejeu de formulaires par hôte virtuel.