paperless-ngx/src-ui/src/app/interceptors/csrf.interceptor.ts
2025-05-24 11:47:17 -07:00

31 lines
692 B
TypeScript

import {
HttpEvent,
HttpHandler,
HttpInterceptor,
HttpRequest,
} from '@angular/common/http'
import { Injectable } from '@angular/core'
import { Observable } from 'rxjs'
import { CsrfService } from '../services/csrf.service'
@Injectable()
export class CsrfInterceptor implements HttpInterceptor {
constructor(private csrfService: CsrfService) {}
intercept(
request: HttpRequest<unknown>,
next: HttpHandler
): Observable<HttpEvent<unknown>> {
const csrfToken = this.csrfService.getToken()
if (csrfToken) {
request = request.clone({
setHeaders: {
'X-CSRFToken': csrfToken,
},
})
}
return next.handle(request)
}
}