Obtenez de l'instance de AuthenticationManager Manuellement

Je suis en train de mettre en œuvre les ci-dessous, mais mon authenticationManager instance jette le ci-dessous exception et n'est pas autocâblés. Comment puis-je obtenir une instance de Printemps manuellement? Je ne suis pas à l'aide d'un ressort manette, je suis en utilisant un JSF la portée de la requête bean. Je reçois le ci-dessous exception lors de l'exécution lorsque le conteneur essaie de autowire la authenticationManager. Le requestCache vient in fine. Je ne comprends pas pourquoi j'ai deux instances...

config:

<authentication-manager>
        <authentication-provider user-service-ref="userManager">
                <password-encoder ref="passwordEncoder" />
        </authentication-provider>
    </authentication-manager>

Injection de autocâblés dépendances a échoué; nested exception est org.springframework.les haricots.usine.BeanCreationException: ne Peut pas autowire champ: protégé org.springframework.de sécurité.l'authentification.AuthenticationManager com.dc.web.actions.SignUpDetail.authenticationManager; nested exception est org.springframework.les haricots.usine.NoSuchBeanDefinitionException: Pas unique bean de type [org.springframework.de sécurité.l'authentification.AuthenticationManager] est défini: unique correspondant bean, mais trouvé 2: [org.springframework.de sécurité.l'authentification.ProviderManager#0, org.springframework.de sécurité.authenticationManager]
javax.des visages.webapp.FacesServlet.service(FacesServlet.java:325)

@Controller
public class SignupController
{

    @Autowired
    RequestCache requestCache;

    @Autowired
    protected AuthenticationManager authenticationManager;

    @RequestMapping(value = "/account/signup/", method = RequestMethod.POST)
    public String createNewUser(@ModelAttribute("user") User user, BindingResult result,  HttpServletRequest request, HttpServletResponse response)
    {
        //After successfully Creating user
            authenticateUserAndSetSession(user, request);

        return "redirect:/home/";
    }

    private void authenticateUserAndSetSession(User user,
        HttpServletRequest request)
    {
        UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(
                user.getUsername(), user.getPassword());

        //generate session if one doesn't exist
        request.getSession();

        token.setDetails(new WebAuthenticationDetails(request));
        Authentication authenticatedUser = authenticationManager.authenticate(token);

        SecurityContextHolder.getContext().setAuthentication(authenticatedUser);
    }

}
Arr-vous dire que l' authenticationManager champ est null? Est requestCache filaire OK?
merci pour la réponse, j'ai mis à jour mes questions un peu avec quelques infos. Ce que j'ai posté avant n'était pas correct, ce n'est pas null. Le conteneur dit que j'ai deux instances de la authenticationManager mais je ne vois pas comment. J'ai collé ma config ci-dessus, des idées? Je suis juste essayer de faire une connexion automatique après le succès de l'enregistrement. Ai-je besoin de l'utilisateur de mon userManager à connexion automatique? userManager ne dispose pas d'une méthode qui prend un UsernamePasswordAuthenticationToken

OriginalL'auteur c12 | 2011-03-24