我正在使用acegi groovy插件进行用户注册和身份验证。 插件附带的User域类具有以下定义(和注释)。
class User {
static transients = ['pass']
static hasMany = [authorities: Role]
static belongsTo = Role
/** Username */
String username
/** User Real Name*/
String userRealName
/** MD5 Password */
String passwd
/** enabled */
boolean enabled
String email
boolean emailShow
/** description */
String description = ''
...
}
等等。因此我假设密码加密方法是MD5。
我必须注册数千名用户,为每个用户生成一个随机密码。 (已提供用户名)。
我写了一个脚本,它生成随机平面密码和MD5加密密码和 将相应的插入到DB中。 不幸的是,这些用户都无法登录。
使用MD5加密是否插入了acegi安全性?
似乎是在使用别的东西。 不幸的是,我没有在文档中找到任何内容。
有人知道这种加密是如何完成的?
谢谢!
路易斯
答案 0 :(得分:1)
如果您使用DaoAuthenticationProvider
但未设置passwordEncoder
属性,则默认密码编码器为PlaintextPasswordEncoder
。要配置MD5密码编码器,请执行
<bean
id="passwordEncoder"
class="org.acegisecurity.providers.encoding.Md5PasswordEncoder"/>
<bean
id="daoAuthenticationProvider"
class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService"/>
<property name="passwordEncoder" ref="passwordEncoder"/>
</bean>
答案 1 :(得分:0)
或者您可以使用authenticateService.encodePassword(“password”)。请参阅插件的RegisterController的save方法,例如