如何将csrf标记添加到angular 2应用程序

Sad*_*n89 3 csrf spring-security csrf-protection spring-restcontroller angular

由于在angular2和spring应用程序之间维护用户会话,我在java后端(在SecurityConfig.java文件中)启用了CSRF .但是当帖子提交被解雇时,我还没有看到任何绑定到POST请求的CSRF令牌.

在此输入图像描述

如何将CSRF令牌添加到我的angular2应用程序中.(添加到帖子请求)


loginService.ts

  userLogin(loginDTO){
    let headers = new Headers({ 'Content-Type': 'application/json' });
    let options = new RequestOptions({ headers: headers });

    var result = this._http.post(this._rest_service_login, JSON.stringify(loginDTO),options)
        .map(res => res.json());
    return result;
}
Run Code Online (Sandbox Code Playgroud)

Nic*_*aux 9

您应该查看Angular2开发人员指南.您可以使用提供程序实现策略(或使用现有策略).

RC.5

@NgModule({
 (...) 
    providers: 
    [
        { provide: XSRFStrategy, useValue: new CookieXSRFStrategy('myCookieName', 'My-Header-Name')},
    ]
}) 
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

RC.4

bootstrap(
    AppComponent,
    [
        { provide: XSRFStrategy, useValue: new CookieXSRFStrategy('myCookieName', 'My-Header-Name')},
    ]
);
Run Code Online (Sandbox Code Playgroud)

您还可以使用以下提供程序为您的应用程序实现自定义策略{ provide: XSRFStrategy, useClass: MyXSRFStrategy}.