我有一个问题,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
答案 0 :(得分:0)
在传出流程中,响应中可能没有redirect-url。只有更新。如果请求是ajax请求,则Web浏览器不会在XMLHttpRequest上转换重定向。您需要自己创建此可选响应。你也可以尝试这些:
<p:commandButton value="Войти в систему" action="#{loginController.doLogin()}" ajax="false" />