ClearQuest中修改正在使用系统用户的密码
 

2009-12-18 作者:thehenry 来源:thehenry札记

 

[IBM Rational ClearQuest]
[ClearQuest.AdminSession]
[ClearQuest.Session]

当我们利用ClearQuest开发完一个平台之后,在试运行与正式运行期间,会有部分用户已经使用了系统中的功能,在正式运行之前我们必须确保使用系统用户数据的安全问题。这时我们可以选择强制性将所有用户的密码重置为特定的初始密码,或者只对将未修改密码用户初始化密码。

现在我们就面临两个问题:

1、如果只对未修改密码用户初始化密码,如何判断用户是否已经修改了自己的密码。

2、用户数比较多的情况下,必须通过程序自动去初始化用户的密码,如何去做。

第一个问题,摸索了很久,也无法判断,因为在CQ系统中,用户的密码是以加密的方式存储在数据库中,不同的login_name,均未设置密码,其加密之后的密文也是不同的,那就只能对该密文进行解密,这部分的资料在IBM网站上基本上没有任何有用的帮助信息,那就只有用不是办法的办法,对于每个用户我们可以用初始密码(也就是密码为空)进行试登录,如果成功,则说明用户未修改密码;否则将跳过这个用户不进行处理。

第二个问题,只能通过写一个外部的应用程序来进行试登录,修改的操作。

下面是以在Excel中通过vbscript为例的脚本示例片断:

    Set admin_so = CreateObject("ClearQuest.AdminSession")
    Set test_so = CreateObject("ClearQuest.Session")
    admin_so.Logon uc, pc, mc
   
    Dim ci, pv
    ci = 1
    pv = new_init_pwd
   
    For i = 1 To rowCounts
        'login name
        Set c1 = wsDataUser.Cells(i, 1)
        'full name
        Set c2 = wsDataUser.Cells(i, 2)
        'phone
        Set c3 = wsDataUser.Cells(i, 3)
       
        DoEvents
       
        test_so.UserLogon c1.Value, old_init_pwd, udbc, 2, mc
       
        DoEvents
       
        If Err.Number > 0 Then
            '登录失败,确认用户密码已经被修改
            '跳过该用户,不修改该用户密码
        Else
            '用户密码未修改,强制修改该用户密码
            If isExistUser(admin_so, c1.Value) Then
                Set curUser = admin_so.getUser(c1.Value)
                curUser.SetLoginName c1.Value, pv
                curUser.UpgradeInfo
                wsSql.Cells(ci, 1) = "Insert Into filemanager.hhty_sms (Id,receive_man,receive_mobile,sms_contents) Values ((Select NVL((Max(Id)+1),1) From filemanager.hhty_sms),'" & c2.Value & "','" & c3.Value & "','您好,您的开发管理平台帐号已经开通,初始帐号密码为:" & c1.Value & "/" & pv & ",请您及时更改自己的密码!'"
                ci = ci + 1
            End If
        End If 
        Err.Clear
        DoEvents
    Next
   
    MsgBox ("初始化用户密码结束!")
    Set test_so = Nothing
    Set admin_so = Nothing

详细的示例可查看附件中的详细实现。附件中的Excel的功能是自动登录CQ,逐个检查试登录,修改用户的密码,并生成特定的SQL语句,执行该SQL语句将在短信系统中自动插入要发送的内容。

另外这始终不是最好的方法,依照笔者的理解,对于CQ中的密码管理最好采用LADP或者WindowsNT域的方式,用户的组管理必须放在CQ的系统中处理,总的感觉不是很方便。

文件: S_Modify_ClearQuest_Users_PWD.rar
大小: 10KB
下载: 下载
火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。

资源网站: UML软件工程组织