Printemps de Sécurité Java Config - custom AuthenticationProvider et UserDetailsService
Je utiliser java configuration pour configurer la Sécurité Printemps, et j'ai personnalisé AuthenticationProvider et personnalisé UserDetailsService, pour ajouter un champ de connexion suivants
http://forum.spring.io/forum/spring-projects/security/95715-extra-login-fields
J'ai de la difficulté à ajouter des Classes personnalisées dans le Printemps du cadre de la Sécurité à l'aide de java configuration.
Comme java doc de AuthenticationProvider#authenticationProvider décrit:
Ajouter une authentification basée sur la coutume AuthenticationProvider que
est passé. Depuis le AuthenticationProvider mise en œuvre est
inconnu, toutes les personnalisations doivent être fait à l'extérieur et la
AuthenticationManagerBuilder est immédiatement retourné.Cette méthode ne permet PAS de s'assurer que le UserDetailsService est disponible
pour le getDefaultUserDetailsService() la méthode.
Donc ma question est quelle est la démarche pour définir UserDetailsService dans ce cas?
OriginalL'auteur wgui | 2014-08-13
Vous devez vous connecter pour publier un commentaire.
Voici un exemple de personnalisé AuthenticationProvider et personnalisé UserDetailsService:
customAuthenticationProvider
etcustomUserDetailsService
manuellement, n'est-il pas préférable de@Autowired
directement à eux?@Autowired
est utilisé dans@Configuration
classe lorsque vous êtes câblage à l'extérieur de haricots. Dans ce code,customAuthenticationProvider
etcustomUserDetailsService
les haricots sont déclarées dans la même classe et donc il n'y a pas de cas d'utilisation pour@Autowired
. Notez également queAuthenticationManagerBuilder
est déclaré quelque chose et donc c'est ok pour utiliser@Autowired
.impl.setUserDetailsService(customUserDetailsService()); // cela ne fonctionne pas, - la AuthenticationProvider interface n'a pas de setUserDetailsService() la méthode.
Depuis c'est une coutume AuthenticationProvider mise en œuvre, vous pouvez ajouter cette méthode (après tout, tout fournisseur d'authentification aurait besoin d'un mécanisme pour charger les détails de l'utilisateur). Voir les implémentations de
AuthenticationProvider
tels que DaoAuthenticationProvider, qui a lasetUserDetailsService
méthode.OriginalL'auteur Ritesh