我最近将 Web 应用程序从 JSF 1.2 升级到 JSF 2.2 以及 RF 3.3.3 到 RF 4.5.7。我目前在加载第一个 login.html 页面时遇到控制台错误。这只发生在第一次加载页面或刷新(F5 或 shift F5)时。当我再次登录并注销时,我没有收到这些错误!URL 完全相同,例如 host:port/xxx/login.html
此问题仅出现在此页面上。我正在使用 Spring (3.1.0) 进行登录,但不确定问题是否相关。applicationContext.xml 中的安全配置为:
<sec:http auto-config='true' pattern="/login.html*" security="none"/>
<sec:http pattern="/a4j/**" security="none"/>
<sec:http pattern="/css/**" security="none"/>
<sec:http pattern="/img/**" security="none"/>
<sec:http realm="Name goes here">
<sec:form-login login-processing-url="/j_spring_security_check"
login-page="/login.html"
authentication-failure-url="/login.html?fail"
default-target-url="/main.html"
always-use-default-target="true"/>
<sec:logout logout-url="/logout.html"/>
<sec:intercept-url pattern="/**" access="ROLE_USER"/>
</sec:http>
在 login.xhtml 中:
<form id="frm-login" action="j_spring_security_check" method="post">
<label class="above">Username<h:inputText id="j_username" /></label>
<rich:jQuery selector="#j_username" query="focus()"/><br/>
<label class="above">Password<h:inputSecret id="j_password" /></label><br/>
<h:commandButton id="submit" name="submit" type="submit" value="Login"> </h:commandButton>
</form>
在升级之前,这很好。使用 Firebug,我比较了看到控制台错误和没有看到控制台错误时生成的 HTML。
我相信我已经应用了所有必要的更新,例如删除旧的 jar 文件(包括删除多余的 Facelets 1.1.14、视图处理程序引用)、更新 RF 代码、XHTML 页面代码和命名空间以及 web.xml 和 faces-config.xml更新。
我知道的一件事是,当我注释掉以下配置时,我没有收到错误。所以不知何故,这会干扰此页面上资源的加载。
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
任何想法如何解决这个问题?如果我错过了帮助解决此问题所需的一些重要信息,请提前道歉。
更新 1:使用谷歌浏览器上的网络选项卡加载页面时拍摄的图像:
更新 2:







