我创建了自定义数据库服务器登录模块,并使用j_security_check创建了一个表单,它成功工作,但问题是:
- 有时jboss返回错误码408:当登录成功时,它不会重定向到web.xml中*form-login-page标签中定义的页面。* (408: Request Timeout:客户端没有在服务器准备等待的时间内生成请求。客户可以在以后的任何时间不加修改地重复请求)
- 有时jboss返回错误代码400 (Bad Request:由于语法错误,请求不能被服务器理解。).
- 定义为x角色授权的页面。我运行它,无需登录即可成功查看。
- 不幸的是,我没有针对上述问题的特定方案。
这是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>
我希望这个解决方案对你有帮助....