不会不安全!因为它的用户名和密码是配在WEB服务器的配置文件里的!只有在这个WEB上下文中才可以访问到的!

解决方案 »

  1.   

    to snyy20 
    我是在一个应用中去访问另一台不同机器的jndi的服务,根本就不用用户名密码就可以.
      

  2.   

    我用的是weblogic
    我把服务a部署在机器1上,把b(jndi所在的应用)部署在机器2上,
    服务a是这样调用jndi的:
    Properties contextProp = new Properties();
                contextProp.setProperty(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
                contextProp.setProperty(Context.PROVIDER_URL, url);context= new InitialContext(contextProp);
                    Object obj = context.lookup(jndi);在contextProp 中,我并没有设置用户名和密码,一样可以访问jndi.
      

  3.   

    楼主可以在EJB容其中配置访问权限  。(默认是不限的)不过JNDI这种方式确实是不安全的。因此不推荐远程使用 。建议局域网集群 。如果要远程使用可以考虑安全检测 。话说回来,即使用用户名和密码配置了,也不够安全 。