|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 8 ![]() |
Bonjour à tous,
Cela fait déjà plusieurs jours que je cherche une solution a mon problème. Est-il possible à partir d'un code javascript mis en local, remplir le champs Identifiant et Mot de passe puis "cliquer" sur Connexion du site web https://cas.univ-lyon1.fr/cas/login ? J'ai déjà testé plusieurs code mais rien ne marche. Merci d'avance pour votre aide |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : avril 2004 Messages : 4 795 ![]() |
bonjour,
deux sites hébergés sur deux serveurs différents ne peuvent pas s'échanger d'informations. Que veux-tu faire précisément ? |
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 872 ![]() |
tout comme Auteur, je trouve la question plutôt floue.
tu veux avoir un script sur ta machine qui rempli les champs ? si c'est bien ça, tu utilises une extension user-script. et tu fais un truc du genre : Code :
|
||
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 8 ![]() |
Tout d'abord merci pour les réponses.
On a crée une application android à partir duquel on voudrait se connecter sur le site de notre université. Vu que le site de notre université utilise la méthode CAS de jasig, on ne peut pas s’authentifier avec la méthode classique d'android. C'est pour cela que j'ai pensé utiliser javascript pour que quand l'étudiant marque son nom d'utilisateur et son mot de passe, ces deux valeur soit renvoyé dans les cases "Identifiant" et "Mot de passe" du site et ensuite on doit "cliquer" sur connections pour finaliser l'authentification. Est-ce possible? |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 872 ![]() |
j'ignore si tu peux injecteur du javascript dans une page via une app android. (probablement) et donc si tu as accès au document, il te suffit d'utiliser les 3 lignes de code que je t'ai proposé.
mais à mon avis il doit y avoir encore plus simple sans générer de page, avec une app. tu devrais être assez libre que pour envoyer une requête au serveur, récupérer le variables de session (probablement généré par ton jasig) et envoyer une seconde requête au serveur avec tes identifiants et cette variable. je ne m'y connais pas du tout en application, je te conseillerai donc de mander de l'aide sur le forum android. |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 8 ![]() |
Je vais essayer de voir sur le forum android, mais en faite dans notre application on a un webview (c'est a dire c'est comme une sorte de navigateur web) à travers duquel je pensais exécuter le code de javascript.
J'ai pas très bien compris la méthode avec document "document.forms['login_form'].elements". Est-ce que ce dernier permet de créer une sorte de bot? Ce qu'on a c'est juste une URL, un username et un password. |
|
|
00
|
|
|
#7 | |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 872 ![]() |
Citation:
mais si tu peux exécuter du javascript dans la page, tu peux simplement récupérer les éléments du document et donc du formulaire et y injecter tes valeurs. une fois cela fait, déclencher la validation (submit) du formulaire. en regardant le code source de la page https://cas.univ-lyon1.fr/cas/login , tu peux remarquer que le formulaire porte comme attribut "name" la valeur "login_form" et que le champs où tu tapes ton ID porte pour valeur de name "username". donc on peut y accèder de la sorte : Code :
document.forms['login_form'].elements['username'] tu peux tester ce que je dis en te rendant sur la page https://cas.univ-lyon1.fr/cas/login à l'aide de n'importe quel navigateur et en tapant dans la barre d'adresse ceci : Code :
javascript:document.forms['login_form'].elements['username'].value = 'ton_id';void 0; |
|
|
|
00
|
|
|
#8 | ||
|
Membre actif
![]() Inscription : juin 2004 Messages : 152 ![]() |
Bonjour,
Nous avons eu besoin de faire quelque chose de similaire pour gérer une connexion automatique à un serveur d'authentification CAS. Une des solutions (je crois qu'il en existe plusieurs sur le wiki de JASIG/CAS) est d'utiliser javascript au niveau de la page de connexion de ton serveur CAS. Je m'explique, il faut que tu fournisses les paramètres de connexion (login/password) en paramètres à la page de login de ton serveur CAS. Sur cette page, tu peux récupérer ces paramètres et utiliser un javascript qui va remplir automatiquement les champs et soumettre le formulaire. Ex : Code :
De cette façon, si tu fournis des paramètres "username" et "password" à la page, il y a une connexion automatique, sinon, c'est l'utilisateur qui doit remplir manuellement les champs. La ligne avec le paramètre "lt" est lié au ticket généré pour valider la session, et je crois que c'est pour éviter que ça tourne en boucle (le code a été fait il y a un moment déjà et ma mémoire commence à flancher...). A+ |
||
|
|
00
|
|
|
#9 | |||||||||||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 872 ![]() |
Citation:
Code :
Code :
![]() sans parler de la forme abrégée (mais déconseillé? pour certains (très?) vieux navigateurs) Code :
Code :
donc pour garder la version jQuery : Code :
|
|||||||||||
|
|
00
|
|
|
#10 | ||||
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 8 ![]() |
Merci beaucoup Willpower et BaBeuH pour vos réponses
J'ai oublié de préciser que je suis nouveau en programmation orienté web. Pour charger la page web j'utilise <form name= "statsform" action= "https://cas.univ-lyon1.fr/cas/login" method= "post"> Mon code à exécuter ressemble donc à Code :
Code :
|
||||
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 872 ![]() |
en fait, tu dois faire 2 requêtes, la première pour récupérer la valeur de "lt" (ticket de session) et la seconde pour fournir tes paramètres avec.
si BaBeuH a déjà résolu le problème pour lui, demande-lui le reste de son code. |
|
|
00
|
|
|
#12 | ||||
|
Membre actif
![]() Inscription : juin 2004 Messages : 152 ![]() |
Le code complet que tu as posté est-il complet ? car je ne vois pas de champs pour s'authentifier dans ton formulaire (<input type="text" />)...
Petite précision que je n'ai pas indiquée dans mon précédent post, il est préférable d'exécuter le script une fois la page chargée (et donc que les champs <input /> sont présents dans la page). A la manière de jQuery : Code :
Code :
Code :
https://cas.univ-lyon1.fr/cas/login?username=toto&password=titi A+ |
||||
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 8 ![]() |
Le truc que je ne comprends pas c'est pourquoi j'aurais besoin d'un ticket, si je veux juste avoir un fichier html (qui se trouve sur mon pc) qui rempli la case "Identifiant" et "Mot de passe". Par la suite c'est la page et le serveur qui s'occupe de tout le processus de l'authentification?
Imaginons que ce n'est pas "Identifiant" et "Mot de passe" c'est juste écrire un message et appuyer sur le bouton "Connexion", comment cela marcherai? |
|
|
00
|
|
|
#14 |
|
Membre éprouvé
![]() Yvan Consultant informatique Inscription : août 2006 Messages : 360 ![]() |
Je crois que plutôt que je chercher du côté de JavaScript pour remplir ton formulaire, tu devrais te pencher sur les API de CAS et jouer l'authentification directement depuis ton application.
http://www.jasig.org/cas/client-integration
__________________
|
|
|
01
|
|
|
#15 |
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 8 ![]() |
Merci yjuliet, j'avais déjà vu cette page mais c'est assez dur de les intégrer dans android. Mais je vais me rediriger dans cette direction.
Cependant, s'il y en a qui ont la réponse à ma question, elle seront la bienvenu ;-) |
|
|
00
|
|
|
#16 | |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 872 ![]() |
Citation:
c'est à cause de cette variable que tu ne peux pas bêtement créer un formulaire sur une autre page qui post tes données vers la bonne adresse. si tu peux injecter du javascript sur la page en question, tu n'as qu'a ouvrir la page, remplir tes champs automatiquement à l'aide du javascript injecté et valider le formulaire automatiquement. c'est la solution qu'on te proposait, mais celle de passer par une API de CAS comme te l'a proposé yjuliet est meilleure. (je ne peux t'en dire plus car ça sort du domaine de mes connaissances). |
|
|
|
00
|
|
|
#17 |
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 8 ![]() |
Ok cette fois la c'est claire
Merci Willpower |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com