Java j_security_check仅适用于新页面

Java j_security_check仅适用于新页面,java,jsp,security,jboss,jaas,Java,Jsp,Security,Jboss,Jaas,我们有一个j_security登录表单,它只能在新页面上工作。这意味着没有历史记录,没有以前的登录,也没有失败的登录。如果页面是新的,并且用户输入了错误的密码,则会出现正确的错误。但是,当用户在那里输入正确的密码后,会出现一个HTTP Status 400-form login page的直接引用无效页面,并暂停登录,直到清除浏览器的历史记录并重新加载页面 这是登录的代码。下拉列表.getXML根据开发环境更改url。在这种情况下,它将其更改为正确的开发 <form id="login"

我们有一个
j_security
登录表单,它只能在新页面上工作。这意味着没有历史记录,没有以前的登录,也没有失败的登录。如果页面是新的,并且用户输入了错误的密码,则会出现正确的错误。但是,当用户在那里输入正确的密码后,会出现一个HTTP Status 400-form login page的直接引用无效页面,并暂停登录,直到清除浏览器的历史记录并重新加载页面

这是登录的代码。
下拉列表.getXML
根据开发环境更改url。在这种情况下,它将其更改为正确的开发

<form id="login" name="j_security_form" action="<%out.write(Dropdown.getXML("https://www.example.com/public/j_security_check")); %>" method="post" accept-charset="UTF-8">
            <strong>Account Login</strong><br>
                Username:<br>
                    <input type="text" name="j_username"><br>
                Password:<br>
                    <input type="password" name="j_password"><br>
                <br>
                    <input type="submit" value="Login"><br>
                <br>
                    New users <a href="../user_registration.jsp">register here</a><br>
                    <a href="../forgot_password.jsp">Forgot password?</a>
                    <input type="hidden" name="auth_mode" value="basic">        
                <script>
                var newloc = document.location.href;
                newloc =newloc.replace('index.jsp','index.jsp');
                document.write('<input type="hidden" name="orig_url" value="'+newloc+'">');
                </script>
        </form>

帐户登录
用户名:

密码:




新用户
var newloc=document.location.href; newloc=newloc.replace('index.jsp','index.jsp'); 文件。写(“”);

请帮助我们找到这个问题的答案!谢谢您的帮助。

您不应该直接访问在
web.xml
中指定为登录页面的页面。此登录页面是一个特殊页面,当用户尝试访问安全资源但尚未登录时,将重定向到该页面

如果需要直接访问登录页面或在未受保护的页面中显示登录表单,可以在servlet、ManageBean(jsf)等中实现编程登录