Acegi密码加密

时间:2009-09-24 15:27:21

标签: passwords md5 spring-security

我正在使用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安全性?

似乎是在使用别的东西。 不幸的是,我没有在文档中找到任何内容。

有人知道这种加密是如何完成的?

谢谢!

路易斯

2 个答案:

答案 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方法,例如