登录Tomcat时出现问题

时间:2010-09-22 12:31:51

标签: tomcat login

我有一个Java / Tomcat应用程序,当用户访问主页时为他们创建一个cookie。此cookie用于在后续访问中识别该用户并生成最近的列表。这些都运行良好,到目前为止,没有使用Tomcat本身的任何类型的用户身份验证。这让我想到了我的问题:

在我的应用程序的某些页面上,用户可以选择发布评论或保存创建的内容,当然还可以维护他们的个人资料。因此,我要做的是让用户在这些页面上登录,以便可以执行相关操作,例如,如果发布评论,则用户必须首先从当前页面登录,该页面不是专门用作登录页面,而是显示创建的内容。或者,要访问配置文件页面,必须已进行登录。然后我可以在会话变量中记录登录信息。

但是当我尝试登录Tomcat时,我收到消息“对表单登录页面的无效直接引用”,但不太明白为什么。在我的页面中,我使用Tomcat提供的登录代码,即:

<div id = "login">
        <form method = "POST" action='<%= response.encodeURL("j_security_check") %>' >
            <table border="0">
                <tr>
                    <th align = "right">Username</th>
                    <td align = "left"><input type="text" name="j_username"></td>
                </tr>
                <tr>
                    <th align = "right">Password</th>
                    <td align = "left"><input type="password" name="j_password"></td>
                </tr>
                <tr>
                    <td align = "right"><input type="submit" value="Log In"></td>
                    <td align = "left"><input type="reset"></td>
                </tr>
          </table>
        </form>
    </div>

我也尝试使用带有HTML iframe的默认登录页面,但会出现相同的消息。我想要的是登录从上面的当前工作,验证用户,然后将用户返回到页面。

有人能提供建议吗?我是否需要在Tomcat或其他地方使用领域?

我正在使用Tomcat 6.X。

由于

摩根先生。

1 个答案:

答案 0 :(得分:0)

当您在web.xml文件中设置<security-constraint>时,如果您尝试实现未登录的“安全”页面,容器会自动将您重新启动到登录页面。在登录页面中,您必须输入登录信息并继续请求。成功登录后,您将重定向到安全页面。

但是当您尝试从登录页面本身登录时,您将收到错误“对表单登录页面的无效直接引用”。由于容器在成功登录后不会到达应重定向的位置。

在您的情况下,可能更容易编写自己的ServletFilter