Tôi muốn thêm muối như:Xuân An muối cho UserDetails tùy chỉnh
PasswordEncoder encoder = new ShaPasswordEncoder();
userDetails.setPassword(encoder.encodePassword(userDetails.getPassword(),saltSource.getSalt(userDetails));
như xa userDetails
được thể hiện của lớp tùy chỉnh UserDetail
của tôi, tôi buộc phải bỏ nó vào lớp mùa xuân này: UserDetails , nhưng như nó một cách logic mong đợi tôi đã nhận trong Runtime:
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>
Làm cách nào để định cấu hình chính xác muối trong trường hợp này?
+1 cho 'BCryptPasswordEncoder' – Roadrunner
@Luke, như tôi đã hiểu từ bài đăng được liên kết của bạn,' BCrypt' đã chứa Muối. Tôi có thể định cấu hình Muối trong trường hợp này như thế nào? Có thể cấu hình ở tất cả, khi sử dụng 'BCrypt'? Có nói:" Điều này tự động tạo ra một muối và nối nó với giá trị băm trong một chuỗi " – sergionni
@sergionni: thông báo thay đổi API trong Spring Security! Trong 3.0.x, [PasswordEncoder] (http://static.springsource.org/spring-security/site/docs/3.0.x/apidocs/org/springframework/security/authentication/encoding/PasswordEncoder.html) sử dụng muối để mã hóa mật khẩu. Nhưng trong 3.1.x [PasswordEncoder] (http://static.springsource.org/spring-security/site/docs/3.1.x/apidocs/org/springframework/security/crypto/password/PasswordEncoder.html) doesn ' t sử dụng muối. Lời khuyên của Luke chỉ dành cho phiên bản 3.1.x ** **. – Roadrunner