从Weblogic获取IntialContext而不使用明文密码

时间:2009-02-09 07:39:59

标签: security weblogic jndi

我可以使用以下方法从JNDI Client获取Weblogic InitialContext properties作为InitialContext的Environment参数

Hashtable jndiProps = new Hashtable();
jndiProps.put("java.naming.factory.initial", "t3://localhost:7001");
jndiProps.put("java.naming.provider.url", "weblogic.jndi.WLInitialContextFactory");
jndiProps.put("java.naming.security.principal", "weblogic");
jndiProps.put("java.naming.security.credentials", "weblogic");

InitialContext ctx = new InitialContext(jndiProps);

问题是,有没有办法获取InitialContext而不将security.credentials指定为明文但可能是散列值?

2 个答案:

答案 0 :(得分:1)

您可以使用对称加密,加密密码值并将其存储在属性文件中。然后在创建初始上下文之前,读取属性值,解密它并在将jndiProps对象传递给InitialContext构造函数之前更新属性。

加密密钥仍然在客户端上,但它会阻止某人随便读取属性文件以找出密码。

使用SSL也是保护密码的好主意,因为它在客户端和服务器之间传输。

答案 1 :(得分:0)

简单地哈希密码没有真正增加的安全值。由于您的密码仍然存在于客户端上。

通过首先使用t3s在您的频道上使用SSL加密,然后使用权限最少的用户而不是管理员用户“weblogic”,可以获得最大的收益。