关于如何修改weblogic用户密码的问题
由于被吉林电科院扫出运监系统的weblogic登录密码是弱口令weblogic,所以要求修改weblogic中间件的登录密码。我首次使用了网上普遍的做法,先在weblogic控制台security Realms修改了weblogic用户的密码,然后停掉服务,在boot文件中将username和password修改成明文形式,然后重启,但是结果当然不是那么美好,weblogic无法将boot文件转化为密文,我即使将servers中的adminserver中ladp目录删除在重启也无济于事。
看来大众的方法是没用了,只好用另一种方法,替换DefaultAuthenticatorInit.ldift文件,既然说了DefaultAuthenticatorInit.ldift那么就来说说WebLogic Authentication Provider(weblogic身份验证程序),weblogic默认的安全领域包括weblogic身份验证程序,weblogic身份验证程序支持对用户名和密码授权以及weblogic服务器安全摘要式的安全认证。它利用嵌入式的 LDAP 服务器来存储用户和组信息。WebLogic Authentication Provider允许您编辑,登记,管理用户和组成员身份。WebLogic Authentication Provider还提供了一组属性,如员工编号与部门编号,您可以分配给用户。所以第二种方法替换DefaultAuthenticatorInit.ldift就有了依据。
首先我们需要在你的域的根目录下执行以下语句(我的是weblogic92):
java -cp /weblogic_gzt/bea/weblogic92/server/lib/weblogic.jar weblogic.security.utils.AdminAccount weblogic weblogic1@jl .(注意后面有个点)
这个语句我原来是按照java -cp $BEA_HOME/wlserver_10.3/server/lib/weblogic.jar weblogic.security.utils.AdminAccount <新用户名> <新密码>.这种形式来做的,但是发现只写$BEA_HOME无法实现该命令,只能将整个路径全部写全才可以。
此时会在你执行该命令的目下生成一个DefaultAuthenticatorInit.ldift文件,我们需要去你的domain域下的security备份好你原来的DefaultAuthenticatorInit.ldift文件以及去域的根目录下备份你的boot文件,然后删除原来的DefaultAuthenticatorInit.ldift文件,将生成的新DefaultAuthenticatorInit.ldiftcopy到security目录中。
执行完上面的一步之后,我们开始修改boot.properties文件,将username与password修改成你命令中的新用户和新密码。
这一步我基本上比较暴力,直接去servers目录中将Adminserver的缓存直接删除,但是应该来说我们需要删除的是data目录中的ladp目录以及 security目录中的boot.properties。
然后就可以启动服务了。
需要注意的是,对于集群来说,需要对两个节点都进行相应的密码修改,如果只修改一个节点,另一个节点起不来(不管你是F5还是weblogic软集群)。而且在启动时,要删除ProxyServer的缓存,要不代理也会起不来,当然应用服务的缓存也需要删除,因为里面也有boot文件。
实质上第一种方法才是真正的修改密码,第二种方法实质是对整个用户和密码的替换重置
7月10日补充:好像找到第一种方法无法启动的原因,需要将adminserver、ms1、ms2、proxyserver的security中的boot文件也进行修改,不必删除然后重启,或许会能正常启动