我想从我的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部分设置任何地方,请告诉我。感谢
答案 0 :(得分:2)
Anonymous是domino中的预定义用户。它用于不同的过程,如:
匿名用户就像任何其他用户一样:
在大多数多米诺骨牌服务器上,匿名用户可以访问大量数据库,并且权限不低于普通用户。
在您的情况下,具有密码的功能用户要好得多!因为匿名用户的权限不比功能用户少。但是,即使您必须将密码放在不安全的环境(如Java jar中的静态字符串)中,来自功能用户的密码也会受到一点保护。可能的攻击者必须找到密码,并且在没有任何密码的情况下没有相同的权限(匿名)。
我不建议在“运行受限制的Java / javascript / COM”中添加匿名。只有管理员和签名者ID才具有此权限。