请问
我有一个用户名 user1
还有他的密码 Vadlajioernklgas== 假如这个密码是用sha加密的那么我怎么能建立JNDI连接呢?----------
Hashtable env = new Hashtable(11);
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL,url);
env.put(Context.SECURITY_PRINCIPAL,name);
env.put(Context.SECURITY_CREDENTIALS,password);//如果这里是明文的密码就能建立连接,如果是SHA加密过的,应该怎么办呢?
env.put(Context.SECURITY_AUTHENTICATION,authType);

try{
//initiate the connection
ctx = new InitialDirContext(env);}

解决方案 »

  1.   

    ctx = new InitialDirContext(env);因为这个时候并不去真正的连接.lookup的时候才会真正地连接.
      

  2.   

    如果你是通过jndi连接数据源的话,数据源(Resource)的password也应该要用SHA加密,这样的话就可以通过SHA加密的密码建立JNDI连接了。
      

  3.   

    谢谢楼上的回复,我没有贴出完整代码其实我后面还有一些查询代码的,但是如果用SHA的密码就不能运行这些代码我想知道的问题仍旧是,如何使用SHA加密过的代码?
      

  4.   

    可是SHA的密码能解成明文么?
      

  5.   

    哈哈,我想我这个问题有错误,
    因为我手里的密码是SHA加密过的,ldap上保存的是明文密码
    所以我是没办法去建立连接的,3楼回答正确结贴!