18

मैं अपने वेब एप्लिकेशन के प्रमाणीकरण/प्रमाणीकरण के लिए स्प्रिंग सुरक्षा का उपयोग कर रहा हूं (यह जेडीबीसी आधारित होगा)।वसंत सुरक्षा उपयोगकर्ता खाता पंजीकरण, निर्माण और प्रबंधन

हालांकि, एक मुख्य घटक मेरे परिप्रेक्ष्य से बाहर निकलता प्रतीत होता है। मैं नए उपयोगकर्ताओं को कैसे पंजीकृत/बना सकता हूं? क्या इसके लिए बॉक्स एपीआई से बाहर है?

क्या मुझे स्क्रैच से उपयोगकर्ता पंजीकरण और प्रबंधन लिखने की आवश्यकता है? मुझे जो करने की ज़रूरत है उनमें शामिल हैं: - एक नया उपयोगकर्ता पंजीकृत करना - पासवर्ड रीसेट करना - उपयोगकर्ता को अपने खाते को सक्रिय करने के लिए ईमेल करना - उपयोगकर्ता को अपना खाता रीसेट करने के लिए ईमेल करना।

अग्रिम धन्यवाद।

+0

http://stackoverflow.com/questions/23562266/create-account-forgot-password-and-change-password – OhadR

उत्तर

9

मैं अपनी परियोजना पर वसंत सुरक्षा का उपयोग करता हूं। जैसा कि आपने पूछा था, ढांचे में उपयोगकर्ता निर्माण या पंजीकरण के लिए एक एपीआई नहीं है। वसंत सुरक्षा के लिए सामान्य और कई ढांचे में उपयोग करने योग्य होने के लिए, यह आपको कस्टम कोड लिखने से पहले ही ले जा सकता है। आप वास्तव में उपयोग करने के लिए ढांचे या उपकरण के बारे में अधिक विशिष्ट उत्तर नहीं प्राप्त कर सकते हैं क्योंकि इस बिंदु पर आप केवल उन ढांचे का उपयोग करेंगे जो आप पहले से ही उपयोग कर रहे हैं।

यदि आपने अपने डेटा एक्सेस लेयर से अपने डेटाबेस में उपयोगकर्ताओं और भूमिकाओं का उपयोग करने के लिए इसे सेट अप किया है, तो आप उस तालिका में उपयोगकर्ता तालिका में एक रिकॉर्ड बनाएंगे या पासवर्ड अपडेट करेंगे (अधिमानतः हैश के रूप में संग्रहीत)। और अरविंद ने कहा, वसंत email support प्रदान करता है।

यदि आप वास्तव में ऐसा करने के लिए एक तरीका देखना चाहते हैं: मैं स्प्रिंग एमवीसी, जेएसपी, और हाइबरनेट का उपयोग कर रहा हूं। मैं एक जेएसपी में स्प्रिंग के फॉर्म टैग का उपयोग किसी नए ऑब्जेक्ट फॉर्म को किसी ऑब्जेक्ट ऑब्जेक्ट से बांधने के लिए करता हूं, और मेरी कंट्रोलर विधि उस व्यक्ति को पास करती है जो कि मेरे दाओ को जारी रखती है।

नियंत्रक विधि हस्ताक्षर इस तरह दिखता है ...

@RequestMapping(value = "/newUser", method = RequestMethod.POST) 
public ModelAndView createNewUser(final @Valid @ModelAttribute Person user, 
            final BindingResult result, 
            final SessionStatus status, 
            final @RequestParam(value = "unencodedPassword", required = true) String password) { 
     ... 
     user.getRoles().add(new Role(user, Role.APPLICATION_ROLE.ROLE_USER)); 
     userDao.createNewUser(user); 
     ... 
} 

और मेरे PersonDao की तरह तो

@Transactional 
public void createNewUser(Person user) 
{ 
    Session session = sessionFactory.getCurrentSession(); 
    session.save(user); 
    session.flush(); 
} 
+1

जानकारी के लिए धन्यवाद।हालांकि, क्या आपके पास वसंत के बाहर उपयोगकर्ता निर्माण/पंजीकरण को संभालने के लिए एपीआई/फ्रेमवर्क/टूल पर एक सिफारिश है? या क्या आप सलाह देते हैं कि मैं स्क्रैच से एक लिखूं? –

+2

हां मैं आपको स्क्रैच से लिखने की सलाह देता हूं। आपको एक नया उपयोगकर्ता पंजीकृत करने के लिए आपको कितना लिखना है, यह समझने के लिए कि मेरे पास जेएसपी की एक दर्जन लाइनें हैं, एक स्प्रिंग एमवीसी नियंत्रक में एक दर्जन लाइनें हैं, और डीएओ में कुछ ही पंक्तियां हैं। वसंत सुरक्षा आपको वहां से अधिकतर तरीके से प्राप्त करती है, आपको इसे समाप्त करने के लिए बहुत कम कोड लिखना होगा। वसंत के बाहर उपयोगकर्ता निर्माण को संभालने के लिए कोई एपीआई नहीं है क्योंकि आप जेएसपी या जेएसएफ, और हाइबरनेट या जेडीबीसी जैसी किसी भी तकनीक का उपयोग कर रहे हैं। – Jay

1

जहां तक ​​मुझे पता है, वसंत सुरक्षा नए उपयोगकर्ता निर्माण और पंजीकरण के लिए समर्थन में नहीं बनाई गई है। आपको इसे स्वयं प्रबंधित करना होगा। हालांकि इसमें ईमेलिंग समर्थन है। इस पर और अधिक के लिए here देखें।

+0

जानकारी के लिए धन्यवाद। हालांकि, क्या आपके पास वसंत के बाहर उपयोगकर्ता निर्माण/पंजीकरण को संभालने के लिए एपीआई/फ्रेमवर्क/टूल पर एक सिफारिश है? या क्या आप सलाह देते हैं कि मैं स्क्रैच से एक लिखूं? –

+0

आप JQuery के साथ बनाए गए कुछ अच्छे विजेट प्राप्त कर सकते हैं और इसे स्प्रिंग के साथ इंटरग्रेट कर सकते हैं। आप अपने लॉगिन को ओपनिड पर भी आधार दे सकते हैं लेकिन अंत में कार्यक्षमता में निर्मित कुछ भी नहीं आता है। आपको इसे कोड करना होगा। - अरविंद ए 11 घंटे पहले –

1

मेरा उत्तर here पर एक नज़र डालें उपयोगकर्ता दृढ़ रहना करने के हाइबरनेट का प्रयोग करेंगे।

"मैं इस उपयोग के मामले के लिए एक जावा परियोजना को लागू किया है। यह खुले स्रोत है, वसंत-सुरक्षा पर आधारित है। एक रिलीज़ संस्करण, पर Maven-मध्य है ताकि आप इसे संकलन करने की जरूरत नहीं है, लेकिन इसके बजाय आप इसे अपने प्रोजेक्ट में मेवेन-निर्भरता के रूप में ला सकते हैं! "

<dependency> 
    <groupId>com.ohadr</groupId> 
    <artifactId>authentication-flows</artifactId> 
    <version>1.5.0-RELEASE</version> 
</dependency> 
संबंधित मुद्दे