Java 如何设置带有安全约束的Facesservlet映射
我正在开发一个jpa、jsf、jaas应用程序,现在遇到了以下问题: 我的web.xml中有此安全约束Java 如何设置带有安全约束的Facesservlet映射,java,jsf-2,Java,Jsf 2,我正在开发一个jpa、jsf、jaas应用程序,现在遇到了以下问题: 我的web.xml中有此安全约束 <security-constraint> <web-resource-collection> <web-resource-name>Private</web-resource-name> <url-pattern>/*</url-pattern>
<security-constraint>
<web-resource-collection>
<web-resource-name>Private</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.xhtml</form-login-page>
<form-error-page>/badLogin.xhtml</form-error-page>
</form-login-config>
</login-config>
私有的
/*
得到
邮递
形式
/login.xhtml
/badLogin.xhtml
因此,每次应用程序启动时,用户都会被引导到登录页面,但页面会显示,但它没有经过FacesServlet,因此不会呈现faces组件。这是我的facesservlet映射
<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>
Facesservlet
javax.faces.webapp.FacesServlet
1.
Facesservlet
*.jsf
怎么了?只需确保请求URL与Facesservlet的URL模式匹配即可 使用当前设置,您有两个选项:
/login.xhtml
/badLogin.xhtml
借
/login.jsf
/badLogin.jsf
使其与Facesservlet的URL模式相匹配
*.jsf
借
*.xhtml
这样,您就不需要摆弄虚拟URL了只需确保请求URL与Facesservlet的URL模式匹配 使用当前设置,您有两个选项:
/login.xhtml
/badLogin.xhtml
借
/login.jsf
/badLogin.jsf
使其与Facesservlet的URL模式相匹配
*.jsf
借
*.xhtml
这样,您就不需要摆弄虚拟URL了/*
的过于通用的安全约束限制上)。查看生成的HTML输出和HTTP流量监视器以排除其中一个和另一个。请在smart developer的透视图中详细说明“不工作”,而不是在dumb enduser的透视图中详细说明。是faces servlet仍然没有被调用(如果解决方案被正确应用,那么这是不可能的,因此您没有运行您认为正在运行的代码),还是只是CSS/JS/images没有被应用(这确实会发生在您对/*
的过于通用的安全约束限制上)。查看生成的HTML输出和HTTP流量监视器以排除其中一个和另一个。