java和jboss7 j_security_check登录成功,但有问题



我创建了自定义数据库服务器登录模块,并使用j_security_check创建了一个表单,它成功工作,但问题是:

    有时jboss返回错误码408:当登录成功时,它不会重定向到web.xml中*form-login-page标签中定义的页面。* (408: Request Timeout:客户端没有在服务器准备等待的时间内生成请求。客户可以在以后的任何时间不加修改地重复请求)
  1. 有时jboss返回错误代码400 (Bad Request:由于语法错误,请求不能被服务器理解。).
  2. 定义为x角色授权的页面。我运行它,无需登录即可成功查看。
  3. 不幸的是,我没有针对上述问题的特定方案。

这是web.xml中的安全约束标签

<security-constraint>
    <web-resource-collection>
        <web-resource-name>InstitutionRole</web-resource-name>
        <url-pattern>/jsfs/services/ManageData.jsf</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>Institution_delegate</role-name>
    </auth-constraint>
</security-constraint>
<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/index.jsf</form-login-page>
        <form-error-page>/jsfs/errors/loginError.jsf</form-error-page>
    </form-login-config>
</login-config>
<security-role>
    <description>Institution Delegate Role</description>
    <role-name>Institution_delegate</role-name>
</security-role>
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
</servlet-mapping>

请帮忙....有什么想法吗????

我有这个问题的答案,它是在部署描述符文件web.xml…

在安全约束中,"form-login-page"标签中的页面url是登录页面url,而不是"成功登录后的页面",所以当您调用page1时。JSF并且您在登录之前没有登录过。JSF已经自动启动了。

如果在Page:/page1上有约束。JSF for role: x

 <security-constraint>
<web-resource-collection>
    <web-resource-name>x</web-resource-name>
    <url-pattern>/page1.jsf</url-pattern>
</web-resource-collection>
<auth-constraint>
    <role-name>x</role-name>
</auth-constraint>

<security-role>
    <description>x Role</description>
    <role-name>x</role-name>
</security-role>

必须放

<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
    <form-login-page>/login.jsf</form-login-page>
    <form-error-page>/jsfs/errors/loginError.jsf</form-error-page>
</form-login-config>

我希望这个解决方案对你有帮助....

相关内容

  • 没有找到相关文章

最新更新