2010-12-15 132 views
2

J'utilise Spring Security (2.0.6) pour effectuer l'authentification HTTP BASIC. J'ai écrit une classe de fournisseur d'authentification personnalisée que j'utilise pour valider les noms d'utilisateur et les mots de passe dans ma base de données. Le problème que j'ai est que certains utilisateurs n'ont pas de mots de passe. Ces utilisateurs reçoivent un message "Accès refusé". J'ai débogué le code et trouvé que mon fournisseur d'authentification personnalisé n'est pas appelé lorsque le mot de passe de l'utilisateur est vide. Est-ce que quelqu'un sait comment contourner cela? Je dois autoriser certains utilisateurs à avoir des mots de passe vides.Comment faire une authentification de base avec mot de passe vide en utilisant la sécurité de printemps?

+0

donc si quelqu'un n'a pas de mot de passe votre sécurité est vaincue, si vous rectifiez cela. – Woot4Moo

+0

C'est une exigence d'affaires que je dois impelement. Oui, cela peut sembler fou, mais il y a des cas d'affaires où vous avez parfois besoin de certains comptes pour pouvoir vous connecter sans mot de passe. –

+1

Comment soumettre une demande avec un mot de passe vide, par ex. curl -u utilisateur: url? – gigadot

Répondre

2

Au lieu de cela, pas de mot de passe avez-vous essayé de définir le mot de passe dans un filtre avant le AuthenticationProvider à un défaut comme "NOPASSWORD"? Je pense que l'un des filtres pré-auth fait un simple 'if (password == null)' et échoue et c'est votre problème.