下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

Java技巧:Java性能优化技巧集锦

作者:课课家教育     来源: http://www.kokojia.com点击数:902发布时间: 2016-02-29 20:03:20

标签: java反编译工具java软件工程师java编程网站

大神带你学编程,欢迎选课

  客户端的程序可以得到什么存取级别取决于createSession 的使用方式和服务器/客户端的设置。访问控制是通过以下两种方式之一实现的:

Java技巧:Java性能优化技巧集锦_java反编译工具_java软件工程师_课课家

  Domino 目录中的用户名及其 Internet 口令。 这种方式对本地调用和远程调用都可以使用。对于本地调用,所访问的必须是 Domino 服务器。 当前 Notes ID (Notes.ini 文件中 KeyFileName 参数所指定的 ID)

  这种方式只在进行本地调用时可以使用。程序所在的计算机上有 Notes 客户端或 Domino 服务器都可以。 通过 Domino 目录访问

  通过 Domino

  Session s = NotesFactory.createSession("myhost.east.acme.com:63148");

  或者:

  Session s = NotesFactory.createSession("myhost.east.acme.com:63148", "", "");

  要以某个 Domino 用户的身份访问服务器,需要在参数2和参数3中分别指定用户名和 Internet 口令。用户名和口令必须与 Domino 目录中的某个个人文档匹配。例如:

  Session s = NotesFactory.createSession("myhost.east.acme.com:63148", "Jane Smith/East/Acme",

  "topS3cr3t");

  对 Domino 服务器进行本地调用时,主机名应为空: Session s = NotesFactory.createSession("", "Jane Smith/East/Acme", "topS3cr3t") 要进行匿名的本地调用,三个参数都应为空:

  Session s = NotesFactory.createSession("", "", "")

  进行本地调用时,服务器不一定要运行。 服务器文档中的设置决定了是否可以进行匿名或用户名/口令的访问。在服务器文档中,"端口"-"Internet 端口"-"DIIOP"标签下,验证选项与代码的关系如下表:

  验证选项与代码的关系如下表

  代码验证选项

  createSession(host, "", "")

  createSession(host, name, password)匿名必须设为"是"才能访问服务器名称和口令必须设为"是"才能访问服务器

  对于名称和口令验证,名称必须是 Domino 目录中某个个人文档中的用户名,口令必须是此个人文档中的 Internet 口令。管理员还可以将"强制使用服务器访问设置"选项设为"是",以强制 DIIOP 的访问遵循服务器文档的安全性标签下的"服务器访问"设置。

  服务器文档中的以下域可以用来控制 Internet 会话的安全性。从本质上来说,本地或远程 java 类创建的Internet 会话的访问权限等同于 Web 用户。

  服务器文档中的以下域可以用来控制 Internet 会话的安全性

  域说明

  服务器访问权限

  访问服务器进行远程或本地调用的用户必须列在此域中

  禁止访问服务器如果用户被列在此域中,无论远程或本地连接都不能建立

  创建数据库和模板用后台方法能否创建新数据库和模板

  创建新复本用后台方法能否创建复本数据库

  创建主模板用后台方法能否创建主模板

  编程限制

  运行无限制的方法和操作列在此域中的用户可以在Domino服务器上运行受限制的Java方法*。 如果程序 所使用的用户没有列在此域中,则不能在Domino服务器上执行这些方法,例如 访问Domino服务器的文件系统等,但仍可以在程序所在的计算机上执行各种方 法,包括访问本机的文件系统。

  签名将代表其他人运行的代理作为Web用户运行的代理将以Internet会话中的用户身份运行

  签名将代表代理的调用者运行的代理作为Web用户运行的代理将以Internet会话中的用户身份运行

  Internet 访问

  Internet 验证限制可以使用哪些名称作为用户名来登录

  * 哪些方法是受限制的请参考 Domino 6 Designer Help 中的"Restricted LotusScript and Java agent operations" 。

  服务器文档中"端口"-"Internet 端口"下,DIIOP 标签中的域的说明如下表:

  服务器文档中"端口"-"Internet 端口"下,DIIOP 标签中的域的说明

  域说明

  (TCPI/IP)姓名和口令DIIOP 验证要求用户名和口令

  (TCP/IP)匿名 DIIOP验证不要求用户名和口令

  (SSL)姓名和口令DIIOP SSL 验证要求用户名和口令

  (SSL)匿名DIIOP SSL 验证不要求用户名和口令

  强制使用服务器访问设置DIIOP是否强制使用安全性标签下的服务器访问设置

  以下notes.ini参数也会影响远程或本地Java 类建立的Internet会话的安全性:

  notes.ini参数也会影响远程或本地Java 类建立的Internet会话的安全性

  Notes.ini设置说明

  NoAmbiguousWebNamesNoAmbiguousWebNames=1时,如果用来登录DIIOP的用户名在$Users视图 中有多个匹配,则登录失败

  WebNameAuthentic

  NABWebLookupView设置NABWebLookupView="xxx",则Domino将在Domino 目录的"xxx"视图中 查找用来登录的用户名

  注意在数据库的存取控制表中,"Internet 用户的最大权限"设置也会对 Internet 会话的权限产生影响,DIIOP 的登录用户的权限不能超过此项设置。

  服务器大约每一个半小时刷新一次安全性的缓存。修改了安全性设置后,可以使用控制台命令"tell diiop refresh"来强制刷新。

  通过 Notes ID 访问

  要通过当前 Notes ID 访问服务器,在调用时应不指定任何参数:

  Session s = NotesFactory.createSession

  在这种情况下,如果需要验证(如打开数据库时),会弹出一个对话框,提示输入Notes ID的口令。所使用的Notes ID是在搜索路径中能找到的第一个Notes.ini文件中,KeyFileName变量指定的。例如,Notes.ini 中有以下参数时,程序将使用 admin.id 来访问服务器:

  KeyFileName=admin.id

  必须输入该ID的口令,或按"取消",程序才能继续执行。 也可以将第二个参数指定为"(String)null",在第三个参数中指定该Notes ID的口令:

  Session s = NotesFactory.createSession((String)null, (String)null, "tops3cr3t")

  在服务器上,以上方法会按读者域限制访问,要进行完全的访问,可以用以下方法:

  Session s = NotesFactory.createSessionWithFullAccess

  或者

  Session s = NotesFactory.createSessionWithFullAccess("tops3cr3t")

  结论

  您现在了解了用Java应用程序对Domino对象进行本地调用和远程调用的基本方法。关于较复杂的访问方式,如SSL加密,Servlet,连接池,单一登录,防火墙,超时控制,资源回收及问题诊断

赞(19)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程