使用Spring Security不调用CommandButton操作

时间:2015-10-14 08:46:44

标签: spring jsf primefaces spring-security

我有一个问题,Primefaces CommandButton操作没有被Spring Security调用。没有Spring安全就行了。 我不明白为什么。你能救我吗?

我使用的是Primefaces 5.2。和Spring Security 4.0.2。

我有一个托管bean

<p:commandButton value="Войти в систему" action="#{loginController.doLogin()}" />

使用

登录页面
@Configuration
@EnableWebSecurity
public class SpringSecurityConfiguration extends WebSecurityConfigurerAdapter {

@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
    http
            .authorizeRequests()
            .antMatchers("/javax.faces.resource/**").permitAll()
            .antMatchers("/**").access("hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')")
            .antMatchers("/admin/**").access("hasRole('ROLE_ADMIN')")
            .and()
            .formLogin()
            .loginPage("/pages/security/login.xhtml")
            .permitAll()
            .and()
            .logout()
            .logoutSuccessUrl("/pages/security/login.xhtml?logout")
            .permitAll();
}

}

我的Spring Security配置

NSStirng

1 个答案:

答案 0 :(得分:0)

在传出流程中,响应中可能没有redirect-url。只有更新。如果请求是ajax请求,则Web浏览器不会在XMLHttpRequest上转换重定向。您需要自己创建此可选响应。你也可以尝试这些:

<p:commandButton value="Войти в систему" action="#{loginController.doLogin()}" ajax="false" />