gpt4 book ai didi

java - 以编程方式验证用户身份

转载 作者:行者123 更新时间:2023-12-01 04:43:06 25 4
gpt4 key购买 nike

我有一个模仿 Domino 登录表单的 servlet。身份验证是通过目录协助针对 LDAP 完成的。

服务器首先检查密码是否过期。如果它尚未过期,则会继续对用户进行身份验证。然后,身份验证过程从 servlet 开始,通过发送模仿 Domino 默认登录页面的 HTML,代码如下。它不是很安全。

我可以调用 Java 中的 Domino 方法来从 servlet 中验证用户身份吗?

我正在考虑进行 POST,但不确定这是否安全。

有什么想法吗?

   private void logUserIntoNotes(HttpServletResponse response) throws IOException
{
String action = "/names.nsf?Login";

System.out.println("Action=" + action);
System.out.println("Username=" + username);
//System.out.println("Password=" + password);
System.out.println("RedirectTo=" + redirectTo);


response.setContentType("text/html");

ServletOutputStream out = response.getOutputStream();
out.println("<html><head><title>Login Page</title></head><body>");
out.println("Logging in. Please wait ...");
out.println("<form method=\"post\" name=\"login\" action=\"" + action + "\">");
out.println("<input type=\"hidden\" name=\"Username\" value=\"" + username + "\">");
out.println("<input type=\"hidden\" name=\"Password\" value=\"" + password + "\">");
out.println("<input type=\"hidden\" name=\"RedirectTo\" value=\"" + redirectTo + "\">");
out.println("</form>");
out.println("<SCRIPT LANGUAGE=\"JavaScript\"> document.forms[\"login\"].submit(); </SCRIPT>");
out.println("</body></html>");
}

最佳答案

我将从 servlet 开始。我想你要找的是 createSession method在 servlet 中。它提供了多种在服务器上启动用户身份验证 session 的方法。我用它所有的时间。有关 Java 中 Domino 对象的更多详细信息,其中还包括身份验证 here 。尽管 Java API 已有几年历史,但它仍然具有相关性。

适用于我的 servlet 的快速代码片段。

        NotesThread.sinitThread();
try {
session = NotesFactory.createSession("", sUsr, sPwd);
} catch(NotesException ne) {
// invalid username/password or something else horrible happened.
NotesThread.stermThread();
if (ne.id!=4486){
System.out.println("Notes Error:" + ne.id);
ne.printStackTrace();
}


}

但您的问题是您需要将凭据安全地发送到服务器。您可以使用SSL,然后添加HTTP header fields in the request at the browser ,(SSL 加密 header ),并使用 HTTPServletRequest.getHeader 在 servlet 中提取值。如果您不想复制默认的 Domino header 名称,则无需复制,因为您有一个处理数据的 servlet。您可以做任何您想做的事情,而不必特别需要在 Domino 中复制默认的登录表单。

关于java - 以编程方式验证用户身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16224056/

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