मैं चाहूँगा की तरह नमक जोड़ने के लिए:कस्टम UserDetails के लिए स्प्रिंग सुरक्षा नमक
PasswordEncoder encoder = new ShaPasswordEncoder();
userDetails.setPassword(encoder.encodePassword(userDetails.getPassword(),saltSource.getSalt(userDetails));
जहाँ तक userDetails
अपने कस्टम UserDetail
वर्ग के उदाहरण, मैं इस वसंत वर्ग के लिए यह कास्ट करने के लिए बाध्य है: UserDetails , लेकिन जैसा कि यह तार्किक उम्मीद है मैं क्रम में मिला:
java.lang.ClassCastException: model.UserDetails cannot be cast to org.springframework.security.core.userdetails.UserDetails
config:
<beans:bean id="saultSource" class="org.springframework.security.authentication.dao.ReflectionSaltSource">
<beans:property name="userPropertyToUse" value="username"/>
</beans:bean>
<authentication-manager alias="authenticationManager">
<authentication-provider>
<password-encoder hash="sha">
<salt-source user-property="username"/>
</password-encoder>
<jdbc-user-service data-source-ref="dataSource"/>
</authentication-provider>
</authentication-manager>
मैं इस मामले में नमक को सही तरीके से कैसे कॉन्फ़िगर कर सकता हूं?
'BCryptPasswordEncoder' – Roadrunner
@Luke के लिए +1, जैसा कि मैं आपके लिंक किए गए पोस्ट से समझता हूं, 'बीसीआरपीटी' में पहले से ही नमक है। मैं इस मामले में नमक कैसे कॉन्फ़िगर कर सकता हूं? क्या यह 'बीसीआरपीटी' का उपयोग करते समय कॉन्फ़िगर करने योग्य है? वहां कहा गया: "यह स्वचालित रूप से एक नमक उत्पन्न करता है और इसे एक स्ट्रिंग में हैश मान के साथ जोड़ता है" – sergionni
@sergionni: स्प्रिंग सुरक्षा में एपीआई परिवर्तन देखें! 3.0.x में [passwordEncoder] (http://static.springsource.org/spring-security/site/docs/3.0.x/apidocs/org/springframework/security/authentication/encoding/PasswordEncoder.html) नमक का उपयोग करता है पासवर्ड एन्कोड करने के लिए। लेकिन 3.1.x में [पासवर्डएन्कोडर] (http://static.springsource.org/spring-security/site/docs/3.1.x/apidocs/org/springframework/security/crypto/password/PasswordEncoder.html) नहीं ' नमक का उपयोग नहीं करते हैं। ल्यूक की सलाह संस्करण 3.1.x ** केवल ** के लिए है। – Roadrunner