我有一个使用jsf 2.2.18和richfaces 4.5.16的JSF应用程序,我正在尝试配置JSF 2.2规范的CSRF功能。
我在faces-config.xml中定义了受保护视图页面的列表
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd"
version="2.1">
<protected-views>
<url-pattern>/pc/audit/historyResults.xhtml</url-pattern>
<url-pattern>/pc/audit/historySearch.xhtml</url-pattern>
</protected-views>
</faces-config>
然后我的web.xml将欢迎文件定义为
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<welcome-file-list>
<welcome-file>welcome.xhtml</welcome-file>
</welcome-file-list>
访问应用程序并尝试打开“ pc / audit / historyResults.xhtml”页面时,我得到
jsf.lifecycle.invalid.referer=JSF1099: Referer [sic] header value 'http://localhost/context/pc/welcome.xhtml' does not appear to be a protected view.
Preventing display of 'http://localhost/context/pc/audit/historyResults.xhtml'
如果我在受保护的视图中添加“ /pc/welcome.xhtml”,由于未生成javax.token,我什至无法访问欢迎页面。
这里缺少一些配置步骤吗?