2010-06-12 9 views
0

Un de mes collègues de l'équipe AQ ​​m'a signalé un bug, le bogue disait qu'il ne pouvait pas changer le mot de passe en minuscules, sinon la connexion était rejetée, l'utilisation du nombre ou de la majuscule était très bien. Le système de connexion a été implémenté en utilisant acegi 1.0 (maintenant appelé Spring Security). C'était un bug très étrange, changer le mot de passe est fait en chiffrant la chaîne d'entrée de l'utilisateur dans la chaîne MD5, je l'ai implémenté sans utiliser quoi que ce soit, je ne sais pas si c'est l'origine du problème. Lorsque la connexion est rejetée, par le débogage, je trouve que l'entrée de l'utilisateur est convertie en majuscule par acegi lors du passage à la logique de comparaison acegi. Au début, je ne croyais pas cela, quand je vérifie la source acegi et le débogage avec elle, je trouve qu'il convertit à la fois le nom d'utilisateur et mot de passe en majuscule (source code line 121), Pouvez-vous me dire pourquoi il fait cela? Cela peut provoquer une incompatibilité d'encodage de mot de passe!Pourquoi acegi (Spring Security) convertit les mots de passe en majuscules avant de les comparer?

+2

Utilisez-vous Siteminder? Le code auquel vous vous êtes connecté est une implémentation spécifique à Siteminder. Si vous ne l'utilisez pas, vous pourriez regarder le mauvais code. –

+0

Non, je vérifie le code source de acegi, et regarde exactement la même chose. C'est ridicule, pourquoi change-t-il le mot de passe en majuscule? Je suppose que ça doit avoir une bonne raison. – Sawyer

Répondre

0

Merci, un gars de mon équipe a choisi l'implémentation Siteminder d'Acegi, qui était la cause de ce problème.

Questions connexes