云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

分布式数据库_企业邮箱登陆首页_怎么买

小七 141 0

分布式数据库_企业邮箱登陆首页_怎么买

从8.0版开始,SAP Identity Management有一个新的重新设计的基于java的Lotus Notes连接器。它完全利用lotusdomino的服务器javaapi,通过使用CORBA远程调用方法,极大地简化了初始设置并降低了连续使用的成本。这样,就不再需要在身份管理系统上本地安装Lotus Notes客户端,也不需要依赖Visual Basic或C组件。

由于Domino API的resetUserPassword方法仅在服务器上受支持,不能远程调用,Identity Management的连接器必须为此任务调用专用的Domino代理。

在本文中,我将提供如何实现此类代理以及如何将其与SAP Identity Management一起使用的详细说明。

那么Lotus Domino代理到底是什么?正如我们在IBM文档中看到的:"代理是在一个或多个数据库中执行特定任务的独立程序。代理是最灵活的自动化类型。这些独立程序在Domino服务器上运行,可以根据事件直接调用,也可以定期运行。在我们的例子中,我们将直接从Identity Management Java connector调用代理的方法。

要实现Lotus Domino代理,我们需要IBM Lotus Domino Designer,可以从这里下载:

设计师启动运行后,我们可以从实现。

新代理被创建并自动打开。您可以看到在代理内容树中有一个源文件夹,其中包含默认包和生成的Java类。打开JavaAgent.java文件类。

您可以看到,在内部,大数据支持,我们有一个NotesMain()方法,它是代理的入口点。

现在我们有一个resetUserPassword方法的占位符,它是会话类的一部分。您可以在此处找到其文档:\u 8.5.3/com.ibm.designer.domino.main.doc/H\u RESETUSERPASSWORD\u METHOD\u SESSION\u JAVA.html?lang=en。从文档中,我们可以看到方法"…仅在服务器上受支持"和"此方法仅在代理中受支持"。它还包含三个字符串参数:servername、username和password。服务器名是"执行代理的一个或多个服务器的规范名称"。用户名是我们要为其更改密码的用户之一。密码是这个用户的新密码。

正如我们前面看到的,NotesMain()方法是代理的入口点,它没有任何参数。那么我们如何从Identity Management发送服务器名、用户名和密码呢?lotusnotes连接器使用dominoapi代理类的runOnServer()方法来运行密码重置代理。这个方法有两种风格:第一种没有任何参数,只调用代理的代码(NotesMain())。第二个有一个字符串参数,它是Notes文档的note id。

Notes文档或note是lotusnotes体系结构的核心部分。它是一种对象数据存储,什么是物联网工程,"是一种混合数据类型的复合结构,排列在可以任意修改和扩展的字段中。注释可以包含文本、富文本、二进制blob(例如附件、ActiveX或Java小程序)、加密密钥、doclinks等等。每个Notes数据库包含一个Notes集合,并包含用于显示、安全、检索和访问Notes权限的元组织结构。"

在本例中,我们在代理数据库中创建一个note文档,并使用该文档将参数传递给密码重置方法。因此,在调用代理代码之前,Identity Management连接器将创建一个新的注释,并将三个键值对放入其中:server、username和password以及它们各自的值。创建文档后,连接器将获取其Note Id(或唯一标识符)并将其传递给runOnServer()方法。

在代理端,我们必须打开该文档并从中提取参数。这是通过以下方式完成的:

首先我们需要使用以下代码获取当前代理的实例:

您可以看到,我们使用的agentContext已经在生成的代理代码中可用。下一步我们需要获取包含参数的文档的note id:

一旦我们有了文档id,我们需要查找代理的数据库并从中使用其id提取文档:

现在我们有了包含三个参数的文档,但是如何获取它们的值呢?为此,我们将使用Document类的getItemValue()方法。它有一个参数–项的名称,或者在本例中是参数,并返回一个java.util.Vector文件价值观。为了得到这三个参数的值,我们可以使用以下语句:

现在我们已经具备了调用实际重置用户密码的方法所需的一切:

resetUserPassword方法以及Notes API中的大多数方法都可以抛出NotesException,这一点很重要。这是一个选中的异常,必须用try-catch块包围它的调用。另外,NotesException类不是标准的异常,这一点也很奇怪——如果您尝试使用getMessage()方法获取异常的消息,或者使用getStackTrace()获取堆栈跟踪,则很可能会得到一些无用的东西。相反,NotesException类有三个公共字段:id、text和internal。前两个是错误的代码和文本描述,第三个是异常的堆栈跟踪。因此,如果要将有用的错误消息打印到日志中,大数据说,请使用id和文本字段。

要实际获取日志对象,5118大数据,以便在文本文件中记录代理的操作,例如,可以使用以下代码段:

然后可以使用logAction()方法记录事件:

将值返回到Identity Management connector,我们将使用传递输入参数的相同Notes文档。我们将使用Document类的replaceItemValue()方法添加包含结果的新键值对:

调用save()方法来实际提交更改是很重要的。