0

我正在尝试从我的 Java Web 应用程序连接 Lotus Notes(8.5.1) 数据库(在数据库 ACL 中默认使用编辑器访问)。我按照此说明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 Anonymous cannot open database 错误。我也尝试添加我的用户名和密码,但我得到了 NotesException: Invalid user name/password。我也看到有人发布了同样的问题,但还没有解决方案。顺便说一句,Domino 目录上服务器文档上的 DIIOP 选项卡将匿名选项设置为是,有人可以帮助如何使连接正常工作吗?理想情况下,我不想在 createSession 上添加用户 ID 和密码。但是如果没有选项,那么我会使用,但是现在,无论有没有用户名和密码都不起作用。请让我知道我应该在多米诺服务器部分或 java 部分上设置的任何地方。谢谢

4

1 回答 1

2

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

用户匿名与任何其他用户一样:

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

在大多数 domino 服务器上,匿名用户可以访问大量数据库,并且具有不低于普通用户的权限。

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

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

于 2015-12-15T15:28:41.437 回答