import { MiddlewareConsumer, Module, RequestMethod } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { CorsMiddleware } from './middleware/cors-middleware/cors.middlware'; import { CspMiddleware } from './middleware/csp-middleware/csp.middleware'; import { HttpsRedirectMiddleware } from './middleware/https-middlware/https-redirect.middleware'; import { SecurityHeadersMiddleware } from './middleware/security-middleware/security.middleware'; import { AuthModule } from './modules/auth-module/auth.module'; import { AccessTokenGuard } from './modules/auth-module/common/guards'; import { DatabaseModule } from './modules/database-module/database.module'; @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true, }), DatabaseModule, AuthModule, ], controllers: [AppController], providers: [AppService, { provide: 'APP_GUARD', useClass: AccessTokenGuard }], }) export class AppModule { public configure(consumer: MiddlewareConsumer): void { consumer // TODO Redirect via Reverse Proxy all HTTP requests to HTTPS .apply( CspMiddleware, SecurityHeadersMiddleware, HttpsRedirectMiddleware, CorsMiddleware ) .forRoutes({ path: '*', method: RequestMethod.ALL }); } }