如何通过JAVA CORBA DIIOP与匿名ID连接Lotus Notes数据库?

时间:2015-01-16 14:16:37

标签: java eclipse lotus domino-designer-eclipse

我想从我的Java Web应用程序连接Lotus Notes(8.5.1)数据库(在数据库ACL中默认使用Editor访问)。我按照这条指令http://www.ibm.com/developerworks/lotus/library/ls-Java_access_2/通过CORBA DIIOP远程连接Lotus Notes数据库。基本上我将NCSO.jar添加到我的eclipse的java路径中,并按照说明中的说明设置服务器文档。这是我从开始的java源代码:     import lotus.domino。*;      公共类CORBAconnect {

public static void main(String[] args) {

    try {
            String host = "devs2:63148";
        Session s = NotesFactory.createSession(host);
        //I also tried this with userid and password below, the userid and password is not valid.
        //Session s = NotesFactory.createSession(host, "jsmith", "js4533");//
        String p = s.getCommonUserName();
        System.out.println(p);
        Database db = s.getDatabase("devs2", "apps/dev/market.nsf");

        System.out.println(db.getFilePath() );
    } catch(Exception e) {
        e.printStackTrace();
    }

}

}
在我运行java代码之后,我可以看到Anonymous是在eclipse控制台上打印的,但是我得到了NotesException:User Anomynous无法打开数据库错误。我还试图添加我的用户名和密码,但我得到了NotesException:无效的用户名/密码。我也看到有人发布了同样的问题,但尚未解决。顺便说一句,Domino目录上的服务器文档上的DIIOP选项卡将Anonymous选项设置为Yes,任何人都可以帮助如何使连接工作?理想情况下,我不想在createSession上添加用户标识和密码。但是如果没有选项,那么我会使用,但是现在,无论是否有用户名和密码都无效。如果我应该在多米诺骨牌服务器部分或java部分设置任何地方,请告诉我。感谢

1 个答案:

答案 0 :(得分:2)

Anonymous是domino中的预定义用户。它用于不同的过程,如:

匿名用户就像任何其他用户一样:

  • 匿名可以包含在群组中
  • Anonymous是通配符“*”
  • 的一部分
  • 如果匿名条目不存在,匿名将获得默认ACL权限

在大多数多米诺骨牌服务器上,匿名用户可以访问大量数据库,并且权限不低于普通用户。

在您的情况下,具有密码的功能用户要好得多!因为匿名用户的权限不比功能用户少。但是,即使您必须将密码放在不安全的环境(如Java jar中的静态字符串)中,来自功能用户的密码也会受到一点保护。可能的攻击者必须找到密码,并且在没有任何密码的情况下没有相同的权限(匿名)。

我不建议在“运行受限制的Java / javascript / COM”中添加匿名。只有管​​理员和签名者ID才具有此权限。