3

我可以使用以下属性作为 InitialContext 的环境参数从 JNDI 客户端获取 Weblogic InitialContext

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 指定为明文但可能作为散列值?

4

2 回答 2

1

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

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

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

于 2009-03-05T23:56:20.637 回答
0

简单地散列密码并没有真正增加安全价值。由于您的密码无论如何都驻留在客户端上。

最大的收获是首先使用 t3s 在您的频道上使用 SSL 加密,其次是使用权限最少的用户而不是管理员用户“weblogic”。

于 2009-02-26T06:43:23.703 回答