更改默认密码加密

创建或更新用户密码会被加密。CloudStack允许你定义管理员和用户登录的默认密码和授权机制。这两种配置列表都已经介绍过了—userPasswordEncoders 和 userAuthenticators。userPasswordEncoders允许你配置优先顺序进行密码编码,而userAuthenticators允许你配置的调用身份验证方案来验证用户密码。

此外,纯文本的用户认证方已经修改为:在检查数据库记录之前,不对获取的密码进行md5值校验。仅对提供的登录密码执行检索。 由于客户端不再对密码进行散列(hash),所以不再对比存储的密码散列值和获取的密码的哈希值。下面的方法决定用于用户创建或修改过程中提供的密码进行编码时使用什么编码方案。

在创建新用户时,用户密码是按照``ComponentContext.xml`` 或 nonossComponentContext.xml 文件中 UserPasswordEncoders 属性中指定的顺序对有效的编码器进行编码。该文件中的 UserAuthenticators 属性也指定了认证方案的顺序。如果使用了Non-OSS(非开源软件)组件,例如要部署VMware环境,修改 nonossComponentContext.xml 文件中的 UserPasswordEncodersUserAuthenticators 列表。针对OSS(开源软件),例如XenServer和KVM,则修改 ComponentContext.xml 文件。建议对这两个文件做统一的修改。当添加新的认证器和解释器时,你可以添加至该列表。做的过程中,确保已经在这些文件中指定认证器和解释器。管理员可以更改这两个属性的排序和计划作为首选的排列顺序。如果适用的话,在 client/tomcatconf/nonossComponentContext.xml.inclient/tomcatconf/componentContext.xml.in 文件中修改下面的列表中可用的属性的顺序:

  1. <property name="UserAuthenticators">
  2. <list>
  3. <ref bean="SHA256SaltedUserAuthenticator"/>
  4. <ref bean="MD5UserAuthenticator"/>
  5. <ref bean="LDAPUserAuthenticator"/>
  6. <ref bean="PlainTextUserAuthenticator"/>
  7. </list>
  8. </property>
  9. <property name="UserPasswordEncoders">
  10. <list>
  11. <ref bean="SHA256SaltedUserAuthenticator"/>
  12. <ref bean="MD5UserAuthenticator"/>
  13. <ref bean="LDAPUserAuthenticator"/>
  14. <ref bean="PlainTextUserAuthenticator"/>
  15. </list>
  16. </property>

在上述排序中,SHA256Salt首次使用 UserPasswordEncoders.如果这个模块已经找到并且编码后返回一个有效值,编码密码存储在用户表密码列中。如果因某些原因失败,接下来将尝试MD5UserAuthenticator,并按照规定继续。对于 UserAuthenticators, SHA256Salt授权首先被使用。如果成功,用户将登陆进入管理服务器。如果失败,下一步将尝试md5,并继续尝试直到成功。如果他们没起作用,用户将返回一个无效的确认信息。