From 1ab6532b0a32d9cc44e4b8660e528d6656cf70d2 Mon Sep 17 00:00:00 2001 From: Janis Date: Tue, 28 Apr 2026 09:29:05 +0200 Subject: [PATCH] feat(security): add internal secret handling and Redis integration for bot events --- .idea/gradle.xml | 1 + .idea/scala_compiler.xml | 2 +- ...a-new-microservice-ethereal-marshmallow.md | 334 ++++++++++++++++++ modules/account/build.gradle.kts | 3 + .../src/main/resources/application.yml | 17 +- .../account/client/BotPlatformClient.scala | 20 -- .../account/client/CoreGameClient.scala | 3 + .../nowchess/account/config/RedisConfig.scala | 18 + .../account/config/RedissonProducer.scala | 33 ++ .../account/resource/ChallengeResource.scala | 8 + .../resource/OfficialChallengeResource.scala | 43 +-- .../account/service/BotEventPublisher.scala | 30 ++ .../account/service/ChallengeService.scala | 23 +- .../de/nowchess/api/dto/PlayerInfoDto.scala | 4 +- .../de/nowchess/api/player/PlayerInfo.scala | 6 + .../botplatform/registry/BotGameInfo.scala | 8 - .../botplatform/registry/BotRegistry.scala | 35 +- .../resource/BotEventResource.scala | 48 +-- .../botplatform/service/GameBotMonitor.scala | 56 --- modules/core/build.gradle.kts | 1 + .../core/src/main/resources/application.yml | 3 + .../chess/client/IoServiceClient.scala | 3 + .../chess/client/RuleServiceClient.scala | 3 + .../chess/client/StoreServiceClient.scala | 3 + .../chess/redis/GameRedisPublisher.scala | 17 + .../chess/redis/GameWritebackEventDto.scala | 2 + .../chess/resource/GameDtoMapper.scala | 2 +- .../chess/resource/GameResource.scala | 8 +- modules/io/build.gradle.kts | 1 + modules/io/src/main/resources/application.yml | 4 + .../io/service/resource/IoResource.scala | 2 + .../bot/service/MoveRequestParser.scala | 26 -- .../bot/service/OfficialBotService.scala | 87 +++-- modules/rule/build.gradle.kts | 1 + .../rule/src/main/resources/application.yml | 4 + .../rules/resource/RuleSetResource.scala | 2 + modules/security/build.gradle.kts | 65 ++++ .../de/nowchess/security/InternalOnly.java | 12 + .../security/InternalAuthFilter.scala | 23 ++ .../InternalGrpcAuthInterceptor.scala | 30 ++ .../InternalGrpcSecretClientInterceptor.scala | 28 ++ .../security/InternalSecretClientFilter.scala | 17 + .../de/nowchess/store/domain/GameRecord.scala | 15 +- .../store/redis/GameWritebackEventDto.scala | 2 + .../redis/GameWritebackStreamListener.scala | 6 +- .../repository/GameRecordRepository.scala | 23 ++ .../store/resource/StoreGameResource.scala | 21 ++ .../store/service/GameWritebackService.scala | 4 + .../ws/resource/UserWebSocketResource.scala | 57 +++ settings.gradle.kts | 1 + 50 files changed, 951 insertions(+), 214 deletions(-) create mode 100644 add-a-new-microservice-ethereal-marshmallow.md delete mode 100644 modules/account/src/main/scala/de/nowchess/account/client/BotPlatformClient.scala create mode 100644 modules/account/src/main/scala/de/nowchess/account/config/RedisConfig.scala create mode 100644 modules/account/src/main/scala/de/nowchess/account/config/RedissonProducer.scala create mode 100644 modules/account/src/main/scala/de/nowchess/account/service/BotEventPublisher.scala delete mode 100644 modules/bot-platform/src/main/scala/de/nowchess/botplatform/registry/BotGameInfo.scala delete mode 100644 modules/bot-platform/src/main/scala/de/nowchess/botplatform/service/GameBotMonitor.scala delete mode 100644 modules/official-bots/src/main/scala/de/nowchess/bot/service/MoveRequestParser.scala create mode 100644 modules/security/build.gradle.kts create mode 100644 modules/security/src/main/java/de/nowchess/security/InternalOnly.java create mode 100644 modules/security/src/main/scala/de/nowchess/security/InternalAuthFilter.scala create mode 100644 modules/security/src/main/scala/de/nowchess/security/InternalGrpcAuthInterceptor.scala create mode 100644 modules/security/src/main/scala/de/nowchess/security/InternalGrpcSecretClientInterceptor.scala create mode 100644 modules/security/src/main/scala/de/nowchess/security/InternalSecretClientFilter.scala create mode 100644 modules/ws/src/main/scala/de/nowchess/ws/resource/UserWebSocketResource.scala diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 0171fb6..760692d 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -19,6 +19,7 @@