Jsf Spring安全登录后,I';m重定向到CSS/JS资源,而不是HTML页面

Jsf Spring安全登录后,I';m重定向到CSS/JS资源,而不是HTML页面,jsf,redirect,login,spring-security,Jsf,Redirect,Login,Spring Security,我有一个使用spring security和PrimeFaces的项目,当我执行项目时,我遇到了一个错误 此URL始终显示为/javax.faces.resource/primefaces.js.xhtml?ln=primefaces&v=5.1 当我覆盖此方法时,会发生这种情况: @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable(); http

我有一个使用spring security和PrimeFaces的项目,当我执行项目时,我遇到了一个错误

此URL始终显示为
/javax.faces.resource/primefaces.js.xhtml?ln=primefaces&v=5.1

当我覆盖此方法时,会发生这种情况:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.csrf().disable();
    http.authorizeRequests()
        .anyRequest().authenticated()
        .and()
        .formLogin().loginPage("/login.xhtml")
        .permitAll();
}
并把我自己的登录页面。 但是,我的web.xml将页面称为home.xhtml


home.xhtml
它显示的是:


默认情况下,登录将重定向到当前HTTP会话的最后一个请求的受限资源。显然,您(毫不知情地)还将JSF生成的HTML页面的JS/CSS/image资源作为受限资源进行了覆盖。当登录页面本身恰好引用该JavaScript文件时,它将被记住为最后一次请求的受限资源,而Spring Security在成功登录后会盲目地重定向到它

您需要告诉Spring安全性将它们从受限资源中排除。一种方法是在SpringSecurityXML配置文件中添加以下行

<intercept-url pattern="/javax.faces.resource/**" filters="none"/>

这还应该立即解决登录页面本身上所有损坏的CSS/JS/图像(加载登录页面时,您应该通过检查浏览器的内置HTTP流量监视器和/或JS控制台来注意到这一点)。错误是…?错误是包含所有css/javax.faces.resource/primefaces.js.xhtml的页面?ln=primefaces&v=5.1显示my home.xhtml当您转到
home.xhtml
时会发生什么?如果我手动转到home.xhtml,页面工作正常。但是错误发生在点击登录按钮之后,然后会自动通过javascript和cssHow显示,我可以通过注释来实现吗?因为我没有这个SpringXML配置文件。我还发现顺序很重要。您需要将允许访问这些资源的antMatcher作为配置中的第一个资源。这应该是可接受的答案。但是,是否有可能限制对Javascript资源的访问(出于安全原因),但避免这种重定向?非常感谢。这对我很有帮助。我重写了SecurityConfig#configure(WebSecurity)并添加了“/css/**”、““/js/**”@BalusC,您提到的
默认重定向到当前HTTP会话的最后一个请求的受限资源
——如何停止此操作,以便成功登录后用户将重定向到spring安全配置中配置的页面。
@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/javax.faces.resource/**");
}