【发布时间】:2015-10-21 18:57:15
【问题描述】:
我正在从 angular $http 向服务器发帖,我得到了
HTTP Status 403 - Expected CSRF token not found.
我可以找到here 一种解决方案是禁用 CSRF,但我不确定这是我想要的。请告诉我如何解决这个问题。
我在前端使用 Angular JS,在服务器端使用 Spring MVC 4 和 Spring security 3.2。
编辑:
SecurityConfig.java
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.formLogin()
.loginPage("/signin")
.loginProcessingUrl("/signin/authenticate")
.failureUrl("/signin?param.error=bad_credentials")
.and()
.logout()
.logoutUrl("/signout")
.deleteCookies("JSESSIONID")
.and()
.authorizeRequests()
.antMatchers("search/**", "/c/**","/admin/**", "/favicon.ico", "/resources/**", "/auth/**", "/signin/**", "/signup/**", "/disconnect/facebook"/*, "/**"*/).permitAll()
.antMatchers("/**").authenticated()
.and()
.rememberMe()
.and()
.apply(
new SpringSocialConfigurer());
}
Angular JS ajax 请求:
$http({
method: 'POST',
url: 'addCampaign',
data: JSON.stringify(newCampaign)
}).
success(function (data, status, headers, config) {
//TODO Notification to show the campaign was successfully saved
$log.info("campaign successfully saved");
}).error(function (data, status, headers, config) {
$log.info("campaign could not be saved" + data + " " + status + " " + headers + " " + config);
//TODO to show notification that the campaign could not be saved succeffsully.
});
【问题讨论】:
-
您应该向我们展示您的 CRSF 的服务器端配置和客户端代码。
-
@RC。我已经编辑了答案以包含代码。
-
@codeMan 你找到解决方案了吗?
-
@5er 是的,我找到了解决这个问题的方法。请看我的回答。
标签: java angularjs http spring-mvc spring-security