【发布时间】:2014-04-13 13:43:20
【问题描述】:
我有一个模仿 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>");
}
【问题讨论】:
-
你能解释一下你为什么这样做吗?为什么用户不直接以正常方式登录 Domino 服务器?
-
@Richard。一个合理的问题,但是一旦涉及到 servlet,任何事情都可能发生。
-
@Bruce,您说您检查了密码是否已过期。这意味着您已经在使用某种身份验证。 LTPAToken ?
-
抱歉没有早点回来。 @Richard,我不只是登录的原因是我首先需要检查 PW 是否已过期。这就是 servlet 正在做的事情。 Domino 会继续让您登录,直到所有宽限登录都过期。
-
@giulo。用户存储在 LDAP 服务器上。正在使用 Domino 目录服务在 LDAP 中对用户进行身份验证。
标签: java lotus-domino