java - Custom password salts with Spring security -
मुझे हश करना चाहिए & amp;
निजी स्ट्रिंग ईमेल; निजी स्ट्रिंग हैशेड पासवर्ड; निजी स्ट्रिंग नमक; // मैं इस नमक का उपयोग करना चाहता हूँ निजी बूलियन सक्षम; // गेटर्स और amp; Setters}यहाँ मैं कैसे अपने स्वयं के नमक के साथ नए उपयोगकर्ता बनाते हैं:
@ ट्रांसिजनल पब्लिक उपयोगकर्ता बना (स्ट्रिंग ईमेल, स्ट्रिंग पासवर्ड) {उपयोगकर्ता उपयोगकर्ता = नए उपयोगकर्ता (); user.setSalt (BCrypt.gensalt (12)); // नमक user.setEnabled उत्पन्न (सच); user.setEmail (ईमेल); User.setHashedPassword (BCrypt.hashpw (पासवर्ड, user.getSalt ())); वापसी dao.persist (उपयोगकर्ता); }
और यहां स्प्रिंग कॉन्फिगरेशन है:
& lt; सेम: बीन आईडी = "उपयोगकर्ता सेवा" वर्ग = "com.mycompany.service.UserService" / & gt; & Lt; सेम: बीन आईडी = "myCustomUserDetailService" वर्ग = "com.mycompany.service.MyCustomUserDetailService" / & gt; & Lt; सेम: बीन आईडी = "बीसीआरिपएएनकोडर" वर्ग = "org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" / & gt; & Lt; सेम: बीन आईडी = "नमक स्रोत" वर्ग = "org.springframework.security.authentication.dao.ReflectionSaltSource" & gt; & Lt; सेम: प्रॉपर्टी नाम = "यूजरप्रॉपर्टीटू यूस्" मान = "नमक" / & gt; & Lt; / सेम: सेम & gt; & LT; प्रमाणीकरण-प्रबंधक & gt; & Lt; प्रमाणीकरण-प्रदाता उपयोगकर्ता-सेवा-रिफ = "myCustomUserDetailService" & gt; & Lt; पासवर्ड-एन्कोडर रेफरी = "बीसीआरप्पन एन्कोडर" & gt; & Lt; नमक-स्रोत रेफरी = "नमक स्रोत" / & gt; & Lt; / पासवर्ड से एनकोडर & gt; & Lt; / प्रमाणीकरण प्रदाता & gt; & Lt; / प्रमाणीकरण-प्रबंधक & gt;
इस विन्यास में, मैं संकेत करता हूं कि PasswordEncoder
को User.getSalt ()
;
< मजबूत> समस्या : मुझे निम्नलिखित त्रुटि 500 मिलता है:
क्रिप्टो मॉड्यूल पासवर्ड एन्कोडर के साथ उपयोग किए जाने पर नमक मूल्य शून्य होना चाहिए।
स्टैकहोवरफ्लो को देखने के बाद, ऐसा लगता है कि नमक होना चाहिए क्योंकि BCryptPasswordEncoder अपने स्वयं के सॉल्टसोर का उपयोग करता है।
- क्या मेरे कोड> SaltSource ?
- कौन सा विश्वसनीय एल्गोरिथम मेरे
SaltSource
?
धन्यवाद
BCryptPasswordEncoder के पास नमक स्रोत है ()।
तो BCryptPasswordEncoder को अन्य नमक स्रोत का उपयोग करने के लिए बाध्य करना संभव नहीं है । कभी-कभी, आप इसे उप-वर्ग की कोशिश कर सकते हैं, और कस्टम नमक संपत्ति जोड़ सकते हैं।
Comments
Post a Comment