我正在创建一个使用spring-boot-starter-security
和spring-security-oauth2
使用 Facebook 登录的 webapp。
为了避免在 Angular 2 中实现所有 CSRF 内容(并且因为它只是一个玩具项目),我想关闭 CSRF。
我已经实现了以下配置:
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
}
}
但现在Principal
-Object 始终是null
:
Task createTask(@RequestBody Task task, Principal principal) {
// do stuff
}
为什么?
我想我无意中覆盖了我的 application.yaml 中配置的安全配置,但即使我添加了Order
-Annotation 它也不起作用:(
编辑:
请求标头(我创建了一个过滤器来添加一个 XSRF-TOKEN cookie,忽略它):
POST /foo HTTP/1.1
Host: localhost:81
Connection: keep-alive
Content-Length: 15
Origin: http://localhost:81
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36
Content-Type: application/json
Accept: */*
Referer: http://localhost:81/create-task
Accept-Encoding: gzip, deflate
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: _ga=GA1.1.681162454.1458756836; JSESSIONID=F65FB28C14A8A2D870D18842DE855212; XSRF-TOKEN=551858ab-678e-4dcb-bc72-44fbc569ec41