1

我正在使用 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 加密密码,并将相应的插入到数据库中。不幸的是,这些用户都无法登录。

acegi 安全插件是否使用 MD5 加密?

似乎是它正在使用其他东西。不幸的是,我在文档中没有找到任何东西。

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

谢谢!

路易斯

4

2 回答 2

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>
于 2009-09-24T15:43:26.663 回答
0

或者您可以使用 authenticateService.encodePassword("password")。例如看插件的RegisterController的save方法

于 2010-06-02T16:53:46.717 回答