मैं वसंत के लिए नया हूँ और मेरी आवश्यकता के साथ प्राधिकरण है कि मैं उपयोगकर्ता नाम और पासवर्ड के साथ उपयोगकर्ता को प्रमाणित नहीं करना चाहती है। उपयोगकर्ता को प्रमाणित कुछ अन्य अनुप्रयोग है और मेरे ऐप folloing विवरण के साथ अनुरोध मिलता है:स्प्रिंग 3.0 सुरक्षा - प्रमाणीकरण
- उपयोगकर्ता नाम
- भूमिकाओं
मैं सिर्फ वसंत सुरक्षा का उपयोग के अनुसार पृष्ठों सुरक्षित करना चाहते हैं अनुरोध में भूमिकाएं। मैंने UserDetailService लिखने के बारे में एक विचार दिया है, लेकिन यह केवल अनुरोध-डेटा जोड़ता है, वसंत अभी भी प्रमाणीकरण जानकारी मांगता है। तो मैं निम्नलिखित की तरह कुछ लिखने के बारे में सोचा:
public class UserLogin {
/*
@Resource(name = "userDetailsService")
private UserDetailsService userDetailsService;
*/
@Resource(name = "authenticationManager")
private AuthenticationManager authenticationManager;
public boolean login(UserEntity user) {
//UserDetails ud = userDetailsService.loadUserByUsername(username);
Collection<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
for (String role : user.getAuthorities()) {
authorities.add(new GrantedAuthorityImpl(role));
}
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(user.getUsername(), user.getPassword(), authorities);
try {
Authentication auth = authenticationManager.authenticate(token);
SecurityContext securityContext = new SecurityContextImpl();
// Places in ThredLocal for future retrieval
SecurityContextHolder.setContext(securityContext);
SecurityContextHolder.getContext().setAuthentication(auth);
} catch (AuthenticationException e) {
return false;
}
return true;
}
}
Am मैं सही दिशा में जा रहा है। यदि हां, तो पूरी चीज को कैसे कॉन्फ़िगर करें .. वसंत-एक्सएमएल में।