[Domino]Java访问Domino必需配置的服务器设置
编写者 | 日期 | 关键词 |
郑昀@ultrapower | 2005-6-30 | Java Domino Configuration |
应用场景
我们需要通过Java远程访问IBM Lotus Domino R6和R5服务器,从中获取用户邮箱的邮件信息等关键数据。我们不需要提供每一个用户密码以及ID文件。
我们的具体做法是,通过Domino ORB,来使得Domino Server与Java远程交互,双方使用IIOP来交互和交换对象数据。
访问的Domino服务器必须配置本文讲述的四个设置,否则会在Domino R6上得到以下错误:
错误日志片段: |
错误代码为4488 lotus.domino.NotesException at lotus.domino.NotesExceptionHelper.read(NotesExceptionHelper.java) at lotus.domino.NotesExceptionHolder._read(NotesExceptionHolder.java) at com.ibm.CORBA.iiop.RepImpl.invoke(RepImpl.java:325) at com.ibm.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:36) at lotus.domino.corba._IObjectServerStub.createSession(_IObjectServerStub.java) at lotus.domino.cso.Session.OREFtoSession(Session.java:829) at lotus.domino.cso.Session.<init>(Session.java:72)<p></p></init> at lotus.domino.cso.Session.createSession(Session.java:40)
|
在Domino R5上则得到如下错误:
错误日志片段: |
错误代码为4536 lotus.domino.NotesException at lotus.domino.NotesExceptionHelper.read(NotesExceptionHelper.java:48) at lotus.domino.NotesExceptionHolder._read(NotesExceptionHolder.java:25) at com.ibm.CORBA.iiop.RepImpl.invoke(RepImpl.java:325) at com.ibm.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:36) at lotus.domino.corba._IObjectServerStub.createSession(_IObjectServerStub.java:154) |
这两个错误都代表“服务器拒绝访问”。
下面列出需要配置的四个安全设置。
DIIOP设置
请实施工程师检查Domino Server的DIIOP设置是否和图1一致。
设置范围:此设置对Domino R5/6都有效。
设置生效:在Domino R5版本中,修改并保存IIOP设置后,必须重新启动Domino Server,否则无法生效。
检查 Domino Directory 中 Server 文档。转至 Ports 选项卡,然后转向 Internet Ports 选项卡。查看 DIIOP 选项卡,“Authentication options”中的“Name & password”应该是Yes,如下图所示。这些部分有用于指定端口号以及启用/禁用端口的字段。下图显示了 Internet Ports--DIIOP 选项卡:
<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 330.75pt; HEIGHT: 232.5pt" type="#_x0000_t75" alt=""><imagedata src="file:///C:%5CDOCUME~1%5CVICTOR~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.jpg" o:href="cid:909011003@29062005-2A7F"><font size="3"></font></imagedata></shape>
图 1 IIOP设置
特别要注意的是,在Domino R5版本中,修改并保存IIOP设置后,应该重新启动Domino Server,否则无法生效。即使命令tell diiop refresh强制刷新,也不能使修改生效。
而在Domino R6版本中,改进了这一功能,不需要重启服务器也不需要强制刷新,即可使这项IIOP设置修改生效!
各项参数的具体含义是:
No. | Items | Descriptions |
1 | Name and Password | DIIOP 验证需要名称和密码 |
2 | Anonymous | DIIOP 验证不需要名称和密码 |
3 | Enforce server access settings | DIIOP 使用 Security 选项卡下的 Server Access 设置 |
Access Server设置
请实施工程师检查Domino Server的Access Server设置是否和图2一致。
设置范围:此设置对Domino R5/6都有效。
检查 Domino Directory 中 Server 文档。转至Security 选项卡,然后查看 “Server Access”中的“Access Server”应该是“All users can access this server”,如下图所示。
<shape id="_x0000_i1026" style="WIDTH: 329.25pt; HEIGHT: 179.25pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CVICTOR~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image002.png" o:title=""></imagedata></shape>
图 2 Access Server设置
Programmability Restrictions设置
请实施工程师检查Domino Server的Programmability Restrictions设置是否和图3或者图4一致。
设置范围:此设置对Domino R5和R6是有区别的。
设置生效:在Domino R5版本中,修改并保存此设置后,必须命令tell diiop refresh强制刷新,否则无法生效。
检查 Domino Directory 中 Server 文档。转至Security 选项卡,然后查看 “Programmability Restrictions”。
对于Domino R6,总共需要2处权限设置为“*”
请找到以下2个设置:
l Run unrestricted methods and operations:
l Sign agents to run on behalf of someone else:
请您为这些设置输入“*”,表示允许所有用户。
作了修改之后,保存并退出。
然后还需要在服务器命令行界面上输入命令“tell diiop refresh”,强制diiop刷新策略。
那么最终的效果应该如下图所示:
<shape id="_x0000_i1027" style="WIDTH: 262.5pt; HEIGHT: 300.75pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CVICTOR~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image004.png" o:title=""><font size="3"></font></imagedata></shape>
图3 R6 Programmability Restrictions设置
如果没有允许用户“Run unrestricted methods and operations”,那么当用户发送邮件要Sign时可能会遇到如下异常:
错误日志片段: |
错误代码为4165 NotesException: You must have permission to sign documents for server based agents at lotus.domino.NotesExceptionHelper.read(Unknown Source) at lotus.domino.NotesExceptionHolder._read(Unknown Source) |
此种情况下,“Sign agents to run on behalf of someone else”权限并非必要。
在Domino R6版本中,修改并保存了这一设置之后,并不需要强制刷新,即可使这项编程限制设置修改立即生效!
对于Domino R5,总共需要2处权限设置为“*”
请找到以下2个设置:
l Run restricted Java/Javascript/COM:
l Run unrestricted Java/Javascript/COM:
请您为这些设置输入“*”,表示允许所有用户。
作了修改之后,保存并退出。
然后还需要在服务器命令行界面上输入命令“tell diiop refresh”,强制diiop刷新策略。
那么最终的效果应该如下图所示:
<shape id="_x0000_i1028" style="WIDTH: 405pt; HEIGHT: 342.75pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CVICTOR~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image006.png" o:title=""><font size="3"></font></imagedata></shape>
图4 R5 Programmability Restrictions设置
特别要注意的是,在Domino R5版本中,修改了本编程限制设置后,应该命令tell diiop refresh强制刷新,才能使修改生效。
而在Domino R6版本中,改进了这一功能,不需要强制刷新,即可使这项编程限制设置修改生效!
HTTP设置
请实施工程师检查Domino Server的HTTP设置是否和图5或者图6一致。
设置范围:此设置对Domino R5和R 6是有区别的。
检查 Domino Directory 中 Server 文档。转至 Internet Protocols选项卡,然后查看HTTP 选项卡,找到“Allow HTTP clients to browse databases:”(或者为“允许HTTP客户浏览数据库”)设置。
Domino R6的图形界面
这是R6的图形界面:
<shape id="_x0000_i1029" style="WIDTH: 282pt; HEIGHT: 300.75pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CVICTOR~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image008.png" o:title=""></imagedata></shape>
图5 R6 HTTP设置
Domino R5的图形界面
这是R5的图形界面:
<shape id="_x0000_i1030" style="WIDTH: 222.75pt; HEIGHT: 257.25pt" type="#_x0000_t75" alt=""><imagedata src="file:///C:%5CDOCUME~1%5CVICTOR~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image010.jpg" o:href="cid:611395803@30062005-00E4"><font size="3"></font></imagedata></shape>
图6 R5 HTTP设置
安装R5时,默认这个设置是No(否),所以请实施工程师设置它为Yes(是)。
编写者 | 日期 | 关键词 |
郑昀@ultrapower | 2005-6-30 | Java Domino Configuration |