gpt4 book ai didi

java - 使用 Java 向 Lotus Notes 客户端输入不正确的用户 ID 密码时控制台挂起

转载 作者:行者123 更新时间:2023-11-30 09:22:47 24 4
gpt4 key购买 nike

我正在编写一个独立的 Java 应用程序,它使用 notes.jar 与 Lotus Notes 客户端通信。该应用程序无权访问 Domino 服务器,这就是我使用 Lotus Notes 客户端的原因。

用户 ID 文件位置和密码由用户通过我的应用程序提供,然后应用程序使用这些连接到 Lotus Notes 客户端。

在客户端中,我首先使用我的应用程序在 Lotus Notes 客户端的 notes.ini 文件中设置的默认 ID 创建 session ,然后切换 ID,即:

Session session = NotesFactory.createSession((String) null, (String) null, "defaultPassword");
session.createRegistration().switchToID(userSuppliedIDFilename, userSuppliedPassword);

如果用户提供的密码正确,则一切正常。

但是,如果密码错误,switchToID() 方法会提示控制台输入正确的密码:

The ID file being used is: CN=Test Test/=Development
Enter password (press the Esc key to abort):

我的 Java 应用程序无法响应此控制台提示,因此挂起。

有什么办法可以停止提示。即获取 switchToID() 方法在密码错误时抛出异常,以便应用程序可以向用户返回错误消息?

我的应用程序是否有办法将 Esc 键发送回提示符,以便我可以按照从 Notes 返回的消息中的指示中止该过程?

有没有更好的方法来使用用户输入的 ID 文件和密码创建客户端 session ?

谢谢,理查德

最佳答案

您可以切换到 userSuppliedIDFilename 而无需使用 switchToID() 并且能够通过这种方式捕获错误的 userSuppliedPassword:

    NotesThread.sinitThread();
Session session = NotesFactory.createSession((String) null, (String) null, "defaultPassword");
session.setEnvironmentVar("KeyFileName", userSuppliedIDFilename, true);
session.recycle();
NotesThread.stermThread();
NotesThread.sinitThread();
try {
session = NotesFactory.createSession((String) null, (String) null, userSuppliedPassword);
} catch (NotesException e) {
// wrong password for userSuppliedIDFilename
// ask user for correct password...
}

关于java - 使用 Java 向 Lotus Notes 客户端输入不正确的用户 ID 密码时控制台挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16334171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com