Je suis novice en programmation web, je viens d'un environnement de développement de jeux vidéo (C++), et je commence vraiment à ressentir une surcharge d'information. Il y a tellement de bibliothèques concurrentes qui choisissent toutes quelque chose qu'elles n'aiment pas dans une autre bibliothèque, et qui construisent une toute nouvelle façon de faire la même chose! Je suis sûr qu'il y a de bonnes raisons à cela, et je ne veux pas me plaindre, alors je vais expliquer mon problème. Pour faciliter mon voyage, j'ai décidé de commencer à apprendre Google App Engine + GWT + Java. Je l'aime parce que c'est une architecture de serveur distribuée prête à l'emploi, et j'ai choisi Java à cause de mon arrière-plan C++. Pour commencer j'ai écrit une petite application de type Twitter car elle teste différents aspects du développement web, à savoir: REST, analyse/création JSON, communication AJAX et génération HTML. Il ne m'a pas fallu trop longtemps pour créer un petit site permettant à un utilisateur d'entrer son nom et son mot de passe dans la page du navigateur, d'envoyer les données à mon application, de me connecter en leur nom, de récupérer leur liste d'amis et d'émettre retour au client sous JSON, où je l'analyse et l'affiche.Connexion au site Web dans Java + Google App Engine
Assez simple. Donc, l'étape suivante était que je n'aimais pas envoyer le mot de passe que l'utilisateur a entré sur le réseau en texte clair (évidemment). Cela m'a fait penser à toute la plomberie dont j'avais besoin:
- Authentifier les utilisateurs contre ma propre base de données, pas celle de Google. (Connexion/Mot de passe perdu/Déconnexion)
- Entrer/quitter (suivre) une session (connecté/déconnecté).
- Stockez les données utilisateur dans la base de données de mon application Google.
Toutes les jolies choses standard qui existe depuis toujours. Eh bien, j'ai commencé à chercher une bibliothèque d'authentification Java et il y avait de grandes bibliothèques monolithiques avec des courbes d'apprentissage énormes, et certaines sont anciennes ou pas plus en faveur ... Je me sens comme un programmeur débutant! Je veux juste avoir une page de connexion! :)
Alors j'ai commencé à lire sur la façon dont la plomberie de l'authentification fonctionne, et il y a énormément de choses à prendre en compte. Apparemment, il est assez courant que les gens roulent (non sécurisés). Je préfère prendre une solution qui existe et qui est solide. Donc, la question devient, que font les gens à ce sujet? Twitter prend en charge HTTP et HTTPS, mais par défaut HTTP pour son API REST, est-ce que cela signifie que les mots de passe des gens volent autour de non protégés, prêts à être interceptés par des hacks de type «homme au milieu»?
J'ai également regardé OAuth, qui a l'air excellent, mais il n'a pas de cas pour juste un bon vieux "Je ne veux pas savoir ou je me soucie de ce qu'est OpenID". Les personnes non techniques que j'ai montré à OpenID sont comme "wha? Je veux juste mettre mon nom d'utilisateur/mot de passe".
En remarque, quelqu'un a-t-il eu de la chance avec Spring.Security sur Google App Engine?
En tout cas, je me déchaîne. Je veux juste savoir ce que les gens font (pas en Python, Rails etc, mais en bon vieux Java). J'aimerais avoir une page de connexion comme Digg, même avec une option un jour pour :)
OpenIDCheers, Shane
Merci pour vos commentaires, je vais creuser plus profond. Une chose, est-ce que je dois prendre tout le cadre de Spring, ou est-ce que je peux juste prendre le côté de la sécurité? C'est juste que je ne veux pas avoir à apprendre une grande bibliothèque pour en utiliser une partie. Si je dois le faire, alors qu'il en soit ainsi, mais je me demande juste à l'avance. – Shane
Vous pouvez choisir parmi les différentes bibliothèques de framework Spring. Ils jouent généralement bien les uns avec les autres, ou la plupart des autres bibliothèques que j'ai vues. Ma compréhension est que vous pouvez superposer Spring Security avec d'autres frameworks, et nous le faisons localement (techniquement, nous sommes toujours sur Acegi, mais peu importe), et ça marche bien. –