@@ -225,8 +225,8 @@ <h3 id="methods">
225225
226226 < tr >
227227 < td class ="col-md-4 ">
228- < div class ="io-line "> Defined in < a href ="" data-line ="49 "
229- class ="link-to-prism "> src/core/backends/backends.controller.ts:49 </ a > </ div >
228+ < div class ="io-line "> Defined in < a href ="" data-line ="54 "
229+ class ="link-to-prism "> src/core/backends/backends.controller.ts:54 </ a > </ div >
230230 </ td >
231231 </ tr >
232232
@@ -328,8 +328,8 @@ <h3 id="methods">
328328
329329 < tr >
330330 < td class ="col-md-4 ">
331- < div class ="io-line "> Defined in < a href ="" data-line ="89 "
332- class ="link-to-prism "> src/core/backends/backends.controller.ts:89 </ a > </ div >
331+ < div class ="io-line "> Defined in < a href ="" data-line ="94 "
332+ class ="link-to-prism "> src/core/backends/backends.controller.ts:94 </ a > </ div >
333333 </ td >
334334 </ tr >
335335
@@ -466,7 +466,7 @@ <h3 id="methods">
466466 < tr >
467467 < td class ="col-md-4 ">
468468 < span class ="modifier-icon icon ion-ios-reset "> </ span >
469- < code > sse(res: Response, key: < a href ="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string " target ="_blank "> string</ a > )</ code >
469+ < code > sse(res: Response, id: < a href =" https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string " target =" _blank " > string </ a > , key: < a href ="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string " target ="_blank "> string</ a > )</ code >
470470 </ td >
471471 </ tr >
472472
@@ -480,8 +480,8 @@ <h3 id="methods">
480480
481481 < tr >
482482 < td class ="col-md-4 ">
483- < div class ="io-line "> Defined in < a href ="" data-line ="127 "
484- class ="link-to-prism "> src/core/backends/backends.controller.ts:127 </ a > </ div >
483+ < div class ="io-line "> Defined in < a href ="" data-line ="132 "
484+ class ="link-to-prism "> src/core/backends/backends.controller.ts:132 </ a > </ div >
485485 </ td >
486486 </ tr >
487487
@@ -512,6 +512,18 @@ <h3 id="methods">
512512 </ td >
513513
514514
515+ </ tr >
516+ < tr >
517+ < td > id</ td >
518+ < td >
519+ < code > < a href ="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string " target ="_blank " > string</ a > </ code >
520+ </ td >
521+
522+ < td >
523+ No
524+ </ td >
525+
526+
515527 </ tr >
516528 < tr >
517529 < td > key</ td >
@@ -571,8 +583,8 @@ <h3 id="methods">
571583
572584 < tr >
573585 < td class ="col-md-4 ">
574- < div class ="io-line "> Defined in < a href ="" data-line ="79 "
575- class ="link-to-prism "> src/core/backends/backends.controller.ts:79 </ a > </ div >
586+ < div class ="io-line "> Defined in < a href ="" data-line ="84 "
587+ class ="link-to-prism "> src/core/backends/backends.controller.ts:84 </ a > </ div >
576588 </ td >
577589 </ tr >
578590
@@ -662,8 +674,8 @@ <h3 id="methods">
662674
663675 < tr >
664676 < td class ="col-md-4 ">
665- < div class ="io-line "> Defined in < a href ="" data-line ="64 "
666- class ="link-to-prism "> src/core/backends/backends.controller.ts:64 </ a > </ div >
677+ < div class ="io-line "> Defined in < a href ="" data-line ="69 "
678+ class ="link-to-prism "> src/core/backends/backends.controller.ts:69 </ a > </ div >
667679 </ td >
668680 </ tr >
669681
@@ -746,12 +758,13 @@ <h3 id="methods">
746758 ParseIntPipe,
747759 Post,
748760 Query,
761+ Req,
749762 Res,
750763 Sse,
751764 UnauthorizedException,
752765} from '@nestjs/common';
753766import { ApiOperation, ApiTags } from '@nestjs/swagger';
754- import { Response } from 'express';
767+ import { Response, Request } from 'express';
755768import Redis from 'ioredis';
756769import { Observable, Subscriber } from 'rxjs';
757770import { Public } from '~/_common/decorators/public.decorator';
@@ -761,6 +774,9 @@ <h3 id="methods">
761774import { Types } from 'mongoose';
762775import { ActionType } from './_enum/action-type.enum';
763776import { DeleteIdentitiesDto } from './_dto/delete-identities.dto';
777+ import { hash } from 'crypto';
778+ import { AgentsService } from '../agents/agents.service';
779+ import { Agents } from '../agents/_schemas/agents.schema';
764780
765781function fireMessage(observer: Subscriber<MessageEvent>, channel: string, message: any, loggername: string) {
766782 try {
@@ -779,6 +795,7 @@ <h3 id="methods">
779795 private readonly logger = new Logger(BackendsController.name);
780796
781797 constructor(
798+ private agentsService: AgentsService,
782799 private backendsService: BackendsService,
783800 @InjectRedis() protected readonly redis: Redis,
784801 ) { }
@@ -863,8 +880,11 @@ <h3 id="methods">
863880 @Public()
864881 @Sse('sse')
865882 @ApiOperation({ summary: 'Server Sent Event - Récupère en temps réel les Jobs et affiche leurs état' })
866- public async sse(@Res() res: Response, @Query('key') key: string): Promise<Observable<MessageEvent>> {
867- if (key !== 'hZcdVqHScVDsDFdHOdcjmufEKFJVKaS8') throw new UnauthorizedException();
883+ public async sse(@Res() res: Response, @Query('id') id: string, @Query('key') key: string): Promise<Observable<MessageEvent>> {
884+ if (!id || !key) throw new UnauthorizedException();
885+ const user = await this.agentsService.findById<Agents>(id);
886+ if (!user) throw new UnauthorizedException();
887+ if (key !== hash('sha256', user.security.secretKey)) throw new UnauthorizedException();
868888
869889 res.socket.on('close', () => {
870890 Logger.debug(`Observer close connection`, this.constructor.name);
0 commit comments