मैं नीचे लागू करने की कोशिश कर रहा हूं, लेकिन मेरा प्रमाणीकरण प्रबंधक उदाहरण नीचे अपवाद फेंकता है और स्वचालित नहीं है। मैं वसंत से मैन्युअल रूप से इसका उदाहरण कैसे प्राप्त करूं? मैं एक वसंत नियंत्रक का उपयोग नहीं कर रहा हूं, मैं एक जेएसएफ अनुरोध scoped बीन का उपयोग कर रहा हूँ। जब मैं कंटेनर प्रमाणीकरण प्रबंधक को स्वत: करने की कोशिश करता है तो मुझे रनटाइम पर निम्न अपवाद मिलता है। अनुरोध कैश ठीक में आता है। मुझे समझ नहीं आता क्यों मुझे दो उदाहरणों की क्या ज़रूरत है ...प्रमाणीकरण प्रबंधक का उदाहरण प्राप्त करें मैन्युअल
config:
<authentication-manager>
<authentication-provider user-service-ref="userManager">
<password-encoder ref="passwordEncoder" />
</authentication-provider>
</authentication-manager>
autowired निर्भरता इंजेक्शन में विफल रहा है; नेस्टेड अपवाद है org.springframework.beans.factory.BeanCreationException: ऑटोवायर फ़ील्ड नहीं कर सका: संरक्षित org.springframework.security.authentication.AuthenticationManager com.dc.web.actions.SignUpDetail.authenticationManager; नेस्टेड अपवाद है org.springframework.beans.factory.No.SuchBeanDefinitionException: प्रकार का कोई अनोखा बीन [org.springframework.security.authentication.AuthenticationManager] परिभाषित किया गया है: अपेक्षित एकल मिलान बीन लेकिन पाया 2: [org.springframework.security.authentication.ProviderManager # 0, org.springframework.security.authenticationManager] javax.faces.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);
}
}
क्या आप कह रहे हैं कि 'प्रमाणीकरण प्रबंधक' फ़ील्ड शून्य है? क्या 'अनुरोध कैश' ठीक है? – skaffman
@skaffman उत्तर के लिए धन्यवाद, मैंने कुछ और जानकारी के साथ अपने प्रश्नों को थोड़ा सा अद्यतन किया। जो मैंने पहले पोस्ट किया वह सही नहीं था, यह शून्य नहीं है। कंटेनर का कहना है कि मेरे पास प्रमाणीकरण प्रबंधक के दो उदाहरण हैं लेकिन मैं नहीं देखता कि कैसे। मैंने उपरोक्त मेरी कॉन्फ़िगरेशन को भी चिपकाया, कोई विचार? मैं सफल पंजीकरण के बाद बस एक ऑटो लॉगिन करने की कोशिश कर रहा हूँ। क्या मुझे अपने उपयोगकर्ता प्रबंधक को स्वत: लॉगिन करने के लिए उपयोगकर्ता की आवश्यकता है? userManager में कोई विधि नहीं है जो उपयोगकर्ता नाम पासवर्ड लेता है प्रमाणीकरण टोकन – c12