• [Domino]Java访问Domino必需配置的服务器设置



     


    应用场景
    我们需要通过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)


     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 选项卡:




    图 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”,如下图所示。




    图 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刷新策略。


    那么最终的效果应该如下图所示:




    图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刷新策略。


    那么最终的效果应该如下图所示:




    图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的图形界面:




    图5 R6 HTTP设置


    Domino R5的图形界面
    这是R5的图形界面:




    图6 R5 HTTP设置


    安装R5时,默认这个设置是No(否),所以请实施工程师设置它为Yes(是)。
  • 相关阅读:
    机器学习经验帖
    C++面试问题收集
    js事件
    js数据类型
    js鼠标拖拽事件
    BOM事件浏览器滚动条
    IIS发布.netcore需要安装dotnethosting
    电脑访问小米路由器
    win11设置默认浏览器(适用于「按链接」和「按文件类型」,可解决从阿里旺旺中打开时用edge打开页面的问题)
    uniapp自定义基座或发行中出现SDK版本不匹配弹框处理
  • 原文地址:https://www.cnblogs.com/baiduligang/p/4247291.html
Copyright © 2020-2023  润新知