如何以编程方式登录j_security_check

我有一个使用j_security_check的JSP Web应用程序。 如果我知道用户ID和密码,是否可以通过JSP页面以编程方式将特定用户登录到j_security_check ? 我试着以这种方式将变量作为URL参数传递给…

 response.sendRedirect(www.mydomain.com/j_security_check?j_username=someUserName&j_password=somePassword ) 

……但它不起作用。 有什么办法吗?

编辑:这是我的登录页面,现在可以正常工作。 出于安全原因,我修剪了一些代码。

  

以下代码在JSP文件中适用于我:

 String url = "j_security_check?j_username=" + username + "&j_password=" + password; String redirectUrl = response.encodeRedirectURL(url); response.sendRedirect(redirectUrl); 

在我的观点中,通过附加usernamepassword使用j_security_check url password似乎是一个很大的安全性。

相反,您可以执行以下步骤:

  • 创建一个具有表单的单独JSP
  • 这个表格在j_security_check url上用POST和用户名和密码
  • 你可以动态地包含这个JSP
  • 这个JSP可以有onload(JS)函数,可以POST这个表单。

这样它就会安全。

您声明要以编程方式登录。 如果这是你的目标,我会避免使用j_security_check。 j_security_check与基于表单的身份validation一起使用(在安全Web应用程序上查看此Oracle资源 – 表单身份validation的内容大约有一半: http : //docs.oracle.com/cd/E24329_01/web.1211/e24485/thin_client。 htm )。

我建议你看一下这个资源并深入研究一些替代方案,但另一种方法是使用Java身份validation和授权服务(JAAS)API(这是一个教程链接: http : //docs.oracle。 com / javase / 6 / docs / technotes / guides / security / jaas / tutorials / GeneralAcnOnly.html )JAAS和回调处理程序是以编程方式解决身份validation(和授权)的非抽象方式。 许多强大的框架都基于此JAVA API,因此如果您仍在努力解决此问题,可能值得一看。

您可以让用户在jsp页面和servlet上输入用户名和密码,或者使用此处所述的facelets页面和bean来登录用户。

    Interesting Posts

     
    <input type="text" id="username" name="j_username" size="16" style="width: 150px;" autocomplete="off" onblur="return checkCaptcha();"> <input class="submit" type="submit" name="submit" value="">
    <%--   --%>

    <%-- --%>