2017-11-16 14 views
2

Iam이 (가) 손실되어 도움이 필요합니다. 스프링 부트 - 각도 5 - CSRF

나는 SpringSecurtiy 4.3와

  • SpringBoot 서버가 있습니다. 그 NOT :
  • 각도 5 응용 프로그램

그리고 기본적으로 모두 사용하도록 설정해야하기 때문에 CSRF 보호를 활성화하려면이 (워드 프로세서 말한다)! SpringBoot에

나는 이러한 보안 CONFIGS을 추가해야합니다 : 각도에

http 
.csrf() 
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()); 

나는 이러한 모듈을 추가해야합니다

imports: [ 
    ..., 
    HttpClientModule, 
    HttpClientXsrfModule, //(!) 
... 

결론 서버가 각 응답의 XRSF 토큰을 보냅니다.

- 그러나 각 항목마다 다릅니다. 그 맞습니까? 나는 클라이언트 세션에서 같을 것으로 예상했다.

- 여기서 중요한 문제는 Angular5가 해당 게시물 호출 (예 :)에서 XRSF-TOKEN을 사용하지 않았다는 것입니다. 그것은 요청에 X-XSRF-TOKEN을 설정하지 않습니다.

무엇이 잘못되었거나 누락 되었습니까?

답변

1

나는이 같은 문제가 있었는데 회귀의 버전 5 때문에 회귀라고 생각합니다.

이 문제가 해결 될 때까지 내가했던 것처럼 자신의 'X-XSRF-TOKEN'헤더를 추가 할 수 있습니다.

constructor(private http: HttpClient, private tokenExtractor: HttpXsrfTokenExtractor) { 
    } 

다음

this.http.post<any>(url, body, {headers: new HttpHeaders().set('X-XSRF-TOKEN', token)}) 

Houssem

+0

감사를 수동으로 토큰

const token = this.tokenExtractor.getToken() as string; 

를 추출하여 헤더에 추가, 그게 정말 도움이됩니다. :) 더 이상 비활성화 할 필요가 없습니다. –