From a142a2e7899b33f6a8298fa6caa06016fe8a5d15 Mon Sep 17 00:00:00 2001 From: Pc Date: Thu, 23 Feb 2023 23:56:12 +0330 Subject: [PATCH] chore: Update docker-compose.yaml --- .dockerignore | 3 + .../actions/docker-build-publish/action.yml | 4 +- .github/workflows/ci.yml | 40 ++-- .gitignore | 6 +- .../docker-compose/docker-compose.yaml | 182 +++++++----------- src/ApiGateway/Dockerfile | 14 +- src/Services/Booking/Dockerfile | 14 +- .../Properties/launchSettings.json | 2 +- .../src/Booking.Api/appsettings.docker.json | 5 +- src/Services/Flight/Dockerfile | 14 +- .../src/Flight.Api/appsettings.docker.json | 5 +- .../Flight/src/Flight.Api/appsettings.json | 6 +- .../InfrastructureExtensions.cs | 2 + src/Services/Identity/Dockerfile | 14 +- .../Identity/src/Identity.Api/Program.cs | 2 +- .../Properties/launchSettings.json | 2 +- .../src/Identity.Api/appsettings.docker.json | 3 + .../src/Identity.Api/appsettings.json | 3 + .../src/Identity.Api/appsettings.test.json | 3 + ...-key-31079AE9DF4ED1F2D492E52BA5A644F5.json | 9 - ...-key-74ABBD16A9EF6567607D1F748BB91597.json | 9 - ...-key-9258A527F8A78F2F47D30E7F145FD59F.json | 9 - ...-key-A7DD53B5F56AA3937910E9A73600964A.json | 1 - ...-key-B33EF2DCF9AAEDDA74F42B239C122EC3.json | 1 - ...-key-DCE5098F8B9D1301447CC90AB1307BB1.json | 1 - .../Identity/src/Identity.Api/tempkey.jwk | 1 - .../Identity/Configurations/AuthOptions.cs | 6 + .../Identity/{ => Configurations}/Config.cs | 6 +- .../{ => Configurations}/EventMapper.cs | 4 +- .../Identity/Configurations/IdentityRoot.cs | 5 + .../{ => Configurations}/UserValidator.cs | 6 +- .../IdentityServerExtensions.cs | 20 +- .../InfrastructureExtensions.cs | 22 +-- .../Infrastructure/MediatRExtensions.cs | 2 + .../Identity/src/Identity/IdentityRoot.cs | 5 - src/Services/Passenger/Dockerfile | 14 +- .../Properties/launchSettings.json | 2 +- .../src/Passenger.Api/appsettings.docker.json | 5 +- 38 files changed, 217 insertions(+), 235 deletions(-) delete mode 100644 src/Services/Identity/src/Identity.Api/keys/is-signing-key-31079AE9DF4ED1F2D492E52BA5A644F5.json delete mode 100644 src/Services/Identity/src/Identity.Api/keys/is-signing-key-74ABBD16A9EF6567607D1F748BB91597.json delete mode 100644 src/Services/Identity/src/Identity.Api/keys/is-signing-key-9258A527F8A78F2F47D30E7F145FD59F.json delete mode 100644 src/Services/Identity/src/Identity.Api/keys/is-signing-key-A7DD53B5F56AA3937910E9A73600964A.json delete mode 100644 src/Services/Identity/src/Identity.Api/keys/is-signing-key-B33EF2DCF9AAEDDA74F42B239C122EC3.json delete mode 100644 src/Services/Identity/src/Identity.Api/keys/is-signing-key-DCE5098F8B9D1301447CC90AB1307BB1.json delete mode 100644 src/Services/Identity/src/Identity.Api/tempkey.jwk create mode 100644 src/Services/Identity/src/Identity/Configurations/AuthOptions.cs rename src/Services/Identity/src/Identity/{ => Configurations}/Config.cs (97%) rename src/Services/Identity/src/Identity/{ => Configurations}/EventMapper.cs (92%) create mode 100644 src/Services/Identity/src/Identity/Configurations/IdentityRoot.cs rename src/Services/Identity/src/Identity/{ => Configurations}/UserValidator.cs (96%) delete mode 100644 src/Services/Identity/src/Identity/IdentityRoot.cs diff --git a/.dockerignore b/.dockerignore index 2d3bcd3..8106519 100644 --- a/.dockerignore +++ b/.dockerignore @@ -22,6 +22,9 @@ **/.tye/ **/secrets.dev.yaml **/values.dev.yaml +**/*.jwk +**/keys LICENSE README.md CHANGELOG.md + diff --git a/.github/actions/docker-build-publish/action.yml b/.github/actions/docker-build-publish/action.yml index 13629b5..2d9f699 100644 --- a/.github/actions/docker-build-publish/action.yml +++ b/.github/actions/docker-build-publish/action.yml @@ -43,11 +43,11 @@ runs: if: ${{ github.ref == 'refs/heads/main' && success() }} shell: bash run: | - docker build -t ${{ inputs.registry-username }}/${{ inputs.image-name }}:v1.6.4 -f "${{ github.workspace }}/${{ inputs.dockerfile-path }}" . + docker build -t ${{ inputs.registry-username }}/${{ inputs.image-name }}:v1.6.5 -f "${{ github.workspace }}/${{ inputs.dockerfile-path }}" . - name: Publish Docker Image if: ${{ github.ref == 'refs/heads/main' && success() }} shell: bash run: | - docker push ${{ inputs.registry-username }}/${{ inputs.image-name }}:v1.6.4 + docker push ${{ inputs.registry-username }}/${{ inputs.image-name }}:v1.6.5 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d129e3a..81454dd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,8 +35,8 @@ jobs: - name: Build run: dotnet build -c Release --no-restore -# - name: Test -# run: dotnet test -c Release --no-restore + - name: Test + run: dotnet test -c Release --no-restore - name: Update Release Drafter if: ${{ github.ref == 'refs/heads/main' && success() }} @@ -69,22 +69,22 @@ jobs: dockerfile-path: 'src/Services/Flight/Dockerfile' image-name: 'booking-microservices-flight' -# - name: Build and Publish Passenger to Docker -# if: ${{ github.ref == 'refs/heads/main' && success() }} -# uses: ./.github/actions/docker-build-publish -# with: -# tag-name: ${{ steps.last_release.outputs.tag_name }} -# registry-username: ${{ secrets.DOCKERHUB_USERNAME }} -# registry-password: ${{ secrets.DOCKERHUB_PASSWORD }} -# dockerfile-path: 'src/Services/Passenger/Dockerfile' -# image-name: 'booking-microservices-passenger' + - name: Build and Publish Passenger to Docker + if: ${{ github.ref == 'refs/heads/main' && success() }} + uses: ./.github/actions/docker-build-publish + with: + tag-name: ${{ steps.last_release.outputs.tag_name }} + registry-username: ${{ secrets.DOCKERHUB_USERNAME }} + registry-password: ${{ secrets.DOCKERHUB_PASSWORD }} + dockerfile-path: 'src/Services/Passenger/Dockerfile' + image-name: 'booking-microservices-passenger' -# - name: Build and Publish Booking to Docker -# if: ${{ github.ref == 'refs/heads/main' && success() }} -# uses: ./.github/actions/docker-build-publish -# with: -# tag-name: ${{ steps.last_release.outputs.tag_name }} -# registry-username: ${{ secrets.DOCKERHUB_USERNAME }} -# registry-password: ${{ secrets.DOCKERHUB_PASSWORD }} -# dockerfile-path: 'src/Services/Booking/Dockerfile' -# image-name: 'booking-microservices-booking' + - name: Build and Publish Booking to Docker + if: ${{ github.ref == 'refs/heads/main' && success() }} + uses: ./.github/actions/docker-build-publish + with: + tag-name: ${{ steps.last_release.outputs.tag_name }} + registry-username: ${{ secrets.DOCKERHUB_USERNAME }} + registry-password: ${{ secrets.DOCKERHUB_PASSWORD }} + dockerfile-path: 'src/Services/Booking/Dockerfile' + image-name: 'booking-microservices-booking' diff --git a/.gitignore b/.gitignore index 0fefd35..d6ceb3e 100644 --- a/.gitignore +++ b/.gitignore @@ -431,4 +431,8 @@ fabric.properties *.sln.iml # Tye -.tye/ \ No newline at end of file +.tye/ + +*.jwk + +**/keys \ No newline at end of file diff --git a/deployments/docker-compose/docker-compose.yaml b/deployments/docker-compose/docker-compose.yaml index f065488..f060a17 100644 --- a/deployments/docker-compose/docker-compose.yaml +++ b/deployments/docker-compose/docker-compose.yaml @@ -1,7 +1,7 @@ version: "3.3" services: - ###################################################### + ###################################################### # Postgres ###################################################### postgres: @@ -17,9 +17,9 @@ services: - booking - ####################################################### - # Rabbitmq - ####################################################### + ####################################################### + # Rabbitmq + ####################################################### rabbitmq: container_name: rabbitmq image: rabbitmq:3-management @@ -119,41 +119,36 @@ services: depends_on: - elasticsearch environment: - - ELASTICSEARCH_URL=http://localhost:9200 + - ELASTICSEARCH_URL=elasticsearch:9200 networks: - booking - ####################################################### + ###################################################### # Gateway - ####################################################### - # gateway: - # image: gateway - # build: - # args: - # Version: "1" - # context: ../../ - # dockerfile: src/ApiGateway/Dockerfile - # container_name: booking-gateway - # ports: - # - "5001:80" - # - "5000:443" - # depends_on: - # - postgres - # - rabbitmq - # - jaeger - # - elasticsearch - # - kibana - # volumes: - # - ~/.aspnet/https:/https:ro - # environment: - # - ASPNETCORE_ENVIRONMENT=docker - # - ASPNETCORE_URLS=https://+;http://+ - # - ASPNETCORE_HTTPS_PORT=5001 - # - ASPNETCORE_Kestrel__Certificates__Default__Password=password - # - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx - # networks: - # - booking + ###################################################### + gateway: + image: gateway + build: + args: + Version: "1" + context: ../../ + dockerfile: src/ApiGateway/Dockerfile + container_name: gateway + ports: + - "5001:80" + - "5000:443" + volumes: + - ~/.aspnet/https:/https:ro + environment: + - ASPNETCORE_ENVIRONMENT=docker + - ASPNETCORE_URLS=https://+;http://+ + - ASPNETCORE_HTTPS_PORT=5000 + - ASPNETCORE_HTTP_PORT=5001 + - ASPNETCORE_Kestrel__Certificates__Default__Password=password + - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx + networks: + - booking ####################################################### @@ -170,14 +165,6 @@ services: ports: - 5004:80 - 5003:443 - depends_on: - - postgres - - rabbitmq - - jaeger - - elasticsearch - - kibana - - mongo - - identity volumes: - ~/.aspnet/https:/https:ro environment: @@ -185,10 +172,6 @@ services: - ASPNETCORE_URLS=https://+;http://+ - ASPNETCORE_HTTPS_PORT=5003 - ASPNETCORE_HTTP_PORT=5004 - - Jwt__Authority=http://host.docker.internal:6005 - - Jwt__Audience=flight-api - - Jwt__RequireHttpsMetadata=false - - Jwt__MetadataAddress=http://host.docker.internal:6005/.well-known/openid-configuration - ASPNETCORE_Kestrel__Certificates__Default__Password=password - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx networks: @@ -208,12 +191,6 @@ services: ports: - 6005:80 - 5005:443 - depends_on: - - postgres - - rabbitmq - - jaeger - - elasticsearch - - kibana volumes: - ~/.aspnet/https:/https:ro environment: @@ -230,68 +207,55 @@ services: ####################################################### # Passenger ####################################################### - # passenger: - # image: passenger - # build: - # args: - # Version: "1" - # context: ../../ - # dockerfile: src/Services/Passenger/Dockerfile - # container_name: passenger - # ports: - # - 6012:80 - # - 5012:443 - # depends_on: - # - postgres - # - rabbitmq - # - jaeger - # - elasticsearch - # - kibana - # - mongo - # volumes: - # - ~/.aspnet/https:/https:ro - # environment: - # - ASPNETCORE_ENVIRONMENT=docker - # - ASPNETCORE_URLS=https://+;http://+ - # - ASPNETCORE_HTTPS_PORT=5012 - # - ASPNETCORE_Kestrel__Certificates__Default__Password=password - # - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx - # networks: - # - booking + passenger: + image: passenger + build: + args: + Version: "1" + context: ../../ + dockerfile: src/Services/Passenger/Dockerfile + container_name: passenger + ports: + - 6012:80 + - 5012:443 + volumes: + - ~/.aspnet/https:/https:ro + environment: + - ASPNETCORE_ENVIRONMENT=docker + - ASPNETCORE_URLS=https://+;http://+ + - ASPNETCORE_HTTPS_PORT=5012 + - ASPNETCORE_HTTP_PORT=6012 + - ASPNETCORE_Kestrel__Certificates__Default__Password=password + - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx + networks: + - booking ####################################################### # Booking ####################################################### - # booking: - # image: booking - # build: - # args: - # Version: "1" - # context: ../../ - # dockerfile: src/Services/Booking/Dockerfile - # container_name: booking - # ports: - # - 6010:80 - # - 5010:443 - # depends_on: - # - postgres - # - rabbitmq - # - jaeger - # - eventstore - # - elasticsearch - # - kibana - # - mongo - # volumes: - # - ~/.aspnet/https:/https:ro - # environment: - # - ASPNETCORE_ENVIRONMENT=docker - # - ASPNETCORE_URLS=https://+;http://+ - # - ASPNETCORE_HTTPS_PORT=5010 - # - ASPNETCORE_Kestrel__Certificates__Default__Password=password - # - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx - # networks: - # - booking + booking: + image: booking + build: + args: + Version: "1" + context: ../../ + dockerfile: src/Services/Booking/Dockerfile + container_name: booking + ports: + - 6010:80 + - 5010:443 + volumes: + - ~/.aspnet/https:/https:ro + environment: + - ASPNETCORE_ENVIRONMENT=docker + - ASPNETCORE_URLS=https://+;http://+ + - ASPNETCORE_HTTPS_PORT=5010 + - ASPNETCORE_HTTP_PORT=6010 + - ASPNETCORE_Kestrel__Certificates__Default__Password=password + - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx + networks: + - booking networks: diff --git a/src/ApiGateway/Dockerfile b/src/ApiGateway/Dockerfile index b309db7..a31e806 100644 --- a/src/ApiGateway/Dockerfile +++ b/src/ApiGateway/Dockerfile @@ -8,7 +8,8 @@ COPY ./src/ApiGateway/src/ApiGateway.csproj ./ApiGateway/src/ # Restore nuget packages -RUN dotnet restore ./ApiGateway/src/ApiGateway.csproj +RUN --mount=type=cache,id=gateway_nuget,target=/root/.nuget/packages \ + dotnet restore ./ApiGateway/src/ApiGateway.csproj # Copy project files COPY ./src/BuildingBlocks ./BuildingBlocks/ @@ -18,20 +19,27 @@ COPY ./src/ApiGateway/src ./ApiGateway/src/ # and no restore, as we did it already RUN ls -RUN dotnet build -c Release --no-restore ./ApiGateway/src/ApiGateway.csproj +RUN --mount=type=cache,id=gateway_nuget,target=/root/.nuget/packages \ + dotnet build -c Release --no-restore ./ApiGateway/src/ApiGateway.csproj WORKDIR /src/ApiGateway/src # Publish project to output folder # and no build, as we did it already -RUN dotnet publish -c Release --no-build -o out +RUN --mount=type=cache,id=gateway_nuget,target=/root/.nuget/packages \ + dotnet publish -c Release --no-build -o out FROM mcr.microsoft.com/dotnet/aspnet:7.0 # Setup working directory for the project WORKDIR /app COPY --from=builder /src/ApiGateway/src/out . + +ENV ASPNETCORE_URLS https://*:443, http://*:80 +ENV ASPNETCORE_ENVIRONMENT docker + EXPOSE 80 EXPOSE 443 + ENTRYPOINT ["dotnet", "ApiGateway.dll"] diff --git a/src/Services/Booking/Dockerfile b/src/Services/Booking/Dockerfile index b4e2bbf..a75037f 100644 --- a/src/Services/Booking/Dockerfile +++ b/src/Services/Booking/Dockerfile @@ -8,7 +8,8 @@ COPY ./src/Services/Booking/src/Booking.Api/Booking.Api.csproj ./Services/Bookin # Restore nuget packages -RUN dotnet restore ./Services/Booking/src/Booking.Api/Booking.Api.csproj +RUN --mount=type=cache,id=booking_nuget,target=/root/.nuget/packages \ + dotnet restore ./Services/Booking/src/Booking.Api/Booking.Api.csproj # Copy project files COPY ./src/BuildingBlocks ./BuildingBlocks/ @@ -19,13 +20,15 @@ COPY ./src/Services/Booking/src/Booking.Api/ ./Services/Booking/src/Booking.Api # and no restore, as we did it already RUN ls -RUN dotnet build -c Release --no-restore ./Services/Booking/src/Booking.Api/Booking.Api.csproj +RUN --mount=type=cache,id=booking_nuget,target=/root/.nuget/packages\ + dotnet build -c Release --no-restore ./Services/Booking/src/Booking.Api/Booking.Api.csproj WORKDIR /Services/Booking/src/Booking.Api # Publish project to output folder # and no build, as we did it already -RUN dotnet publish -c Release --no-build -o out +RUN --mount=type=cache,id=booking_nuget,target=/root/.nuget/packages\ + dotnet publish -c Release --no-build -o out FROM mcr.microsoft.com/dotnet/aspnet:7.0 @@ -33,8 +36,11 @@ FROM mcr.microsoft.com/dotnet/aspnet:7.0 WORKDIR / COPY --from=builder /Services/Booking/src/Booking.Api/out . -ENV ASPNETCORE_URLS https://*:5010, http://*:6010 +ENV ASPNETCORE_URLS https://*:443, http://*:80 ENV ASPNETCORE_ENVIRONMENT docker +EXPOSE 80 +EXPOSE 443 + ENTRYPOINT ["dotnet", "Booking.Api.dll"] diff --git a/src/Services/Booking/src/Booking.Api/Properties/launchSettings.json b/src/Services/Booking/src/Booking.Api/Properties/launchSettings.json index ef114c1..e0b6c04 100644 --- a/src/Services/Booking/src/Booking.Api/Properties/launchSettings.json +++ b/src/Services/Booking/src/Booking.Api/Properties/launchSettings.json @@ -16,7 +16,7 @@ "dotnetRunMessages": true, "launchBrowser": true, "launchUrl": "swagger", - "applicationUrl": "https://localhost:5010;http://localhost:6010", + "applicationUrl": "https://localhost:5010", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/src/Services/Booking/src/Booking.Api/appsettings.docker.json b/src/Services/Booking/src/Booking.Api/appsettings.docker.json index 690322f..de11dea 100644 --- a/src/Services/Booking/src/Booking.Api/appsettings.docker.json +++ b/src/Services/Booking/src/Booking.Api/appsettings.docker.json @@ -26,9 +26,10 @@ "Port": 5672 }, "Jwt": { - "Authority": "http://myidentityserver.com", + "Authority": "http://host.docker.internal:6005", "Audience": "booking-api", - "RequireHttpsMetadata": false + "RequireHttpsMetadata": false, + "MetadataAddress": "http://host.docker.internal:6005/.well-known/openid-configuration" }, "Grpc": { "FlightAddress": "flight:5003", diff --git a/src/Services/Flight/Dockerfile b/src/Services/Flight/Dockerfile index 4068ddb..c7b76cb 100644 --- a/src/Services/Flight/Dockerfile +++ b/src/Services/Flight/Dockerfile @@ -8,7 +8,8 @@ COPY ./src/Services/Flight/src/Flight.Api/Flight.Api.csproj ./Services/Flight/sr # Restore nuget packages -RUN dotnet restore ./Services/Flight/src/Flight.Api/Flight.Api.csproj +RUN --mount=type=cache,id=flight_nuget,target=/root/.nuget/packages \ + dotnet restore ./Services/Flight/src/Flight.Api/Flight.Api.csproj # Copy project files COPY ./src/BuildingBlocks ./BuildingBlocks/ @@ -19,13 +20,15 @@ COPY ./src/Services/Flight/src/Flight.Api/ ./Services/Flight/src/Flight.Api/ # and no restore, as we did it already RUN ls -RUN dotnet build -c Release --no-restore ./Services/Flight/src/Flight.Api/Flight.Api.csproj +RUN --mount=type=cache,id=flight_nuget,target=/root/.nuget/packages \ + dotnet build -c Release --no-restore ./Services/Flight/src/Flight.Api/Flight.Api.csproj WORKDIR /Services/Flight/src/Flight.Api # Publish project to output folder # and no build, as we did it already -RUN dotnet publish -c Release --no-build -o out +RUN --mount=type=cache,id=flight_nuget,target=/root/.nuget/packages \ + dotnet publish -c Release --no-build -o out FROM mcr.microsoft.com/dotnet/aspnet:7.0 @@ -34,8 +37,11 @@ WORKDIR / COPY --from=builder /Services/Flight/src/Flight.Api/out . -ENV ASPNETCORE_URLS https://*:5003,http://*:5004 +ENV ASPNETCORE_URLS https://*:443, http://*:80 ENV ASPNETCORE_ENVIRONMENT docker +EXPOSE 80 +EXPOSE 443 + ENTRYPOINT ["dotnet", "Flight.Api.dll"] diff --git a/src/Services/Flight/src/Flight.Api/appsettings.docker.json b/src/Services/Flight/src/Flight.Api/appsettings.docker.json index 68c8c9a..21753c8 100644 --- a/src/Services/Flight/src/Flight.Api/appsettings.docker.json +++ b/src/Services/Flight/src/Flight.Api/appsettings.docker.json @@ -23,9 +23,10 @@ "ConnectionString": "Server=postgres;Port=5432;Database=flight;User Id=postgres;Password=postgres;Include Error Detail=true" }, "Jwt": { - "Authority": "http://myidentityserver.com", + "Authority": "http://host.docker.internal:6005", "Audience": "flight-api", - "RequireHttpsMetadata": false + "RequireHttpsMetadata": false, + "MetadataAddress": "http://host.docker.internal:6005/.well-known/openid-configuration" }, "RabbitMqOptions": { "HostName": "rabbitmq", diff --git a/src/Services/Flight/src/Flight.Api/appsettings.json b/src/Services/Flight/src/Flight.Api/appsettings.json index 0e00d18..971e4d4 100644 --- a/src/Services/Flight/src/Flight.Api/appsettings.json +++ b/src/Services/Flight/src/Flight.Api/appsettings.json @@ -29,10 +29,10 @@ "DatabaseName": "flight-db" }, "Jwt": { - "Authority": "https://localhost:5005", + "Authority": "http://localhost:6005", "Audience": "flight-api", - "RequireHttpsMetadata": true, - "MetadataAddress": "https://localhost:5005/.well-known/openid-configuration" + "RequireHttpsMetadata": false, + "MetadataAddress": "http://localhost:6005/.well-known/openid-configuration" }, "RabbitMqOptions": { "HostName": "localhost", diff --git a/src/Services/Flight/src/Flight/Extensions/Infrastructure/InfrastructureExtensions.cs b/src/Services/Flight/src/Flight/Extensions/Infrastructure/InfrastructureExtensions.cs index 0c0d7bf..56be92f 100644 --- a/src/Services/Flight/src/Flight/Extensions/Infrastructure/InfrastructureExtensions.cs +++ b/src/Services/Flight/src/Flight/Extensions/Infrastructure/InfrastructureExtensions.cs @@ -30,6 +30,8 @@ using Serilog; namespace Flight.Extensions.Infrastructure; +using Microsoft.AspNetCore.HttpOverrides; + public static class InfrastructureExtensions { public static WebApplicationBuilder AddInfrastructure(this WebApplicationBuilder builder) diff --git a/src/Services/Identity/Dockerfile b/src/Services/Identity/Dockerfile index 4817c07..e7072b3 100644 --- a/src/Services/Identity/Dockerfile +++ b/src/Services/Identity/Dockerfile @@ -7,7 +7,8 @@ COPY ./src/Services/Identity/src/Identity/Identity.csproj ./Services/Identity/sr COPY ./src/Services/Identity/src/Identity.Api/Identity.Api.csproj ./Services/Identity/src/Identity.Api/ # Restore nuget packages -RUN dotnet restore ./Services/Identity/src/Identity.Api/Identity.Api.csproj +RUN --mount=type=cache,id=identity_nuget,target=/root/.nuget/packages \ + dotnet restore ./Services/Identity/src/Identity.Api/Identity.Api.csproj # Copy project files COPY ./src/BuildingBlocks ./BuildingBlocks/ @@ -18,13 +19,15 @@ COPY ./src/Services/Identity/src/Identity.Api/ ./Services/Identity/src/Identity # and no restore, as we did it already RUN ls -RUN dotnet build -c Release --no-restore ./Services/Identity/src/Identity.Api/Identity.Api.csproj +RUN --mount=type=cache,id=identity_nuget,target=/root/.nuget/packages \ + dotnet build -c Release --no-restore ./Services/Identity/src/Identity.Api/Identity.Api.csproj WORKDIR /Services/Identity/src/Identity.Api # Publish project to output folder # and no build, as we did it already -RUN dotnet publish -c Release --no-build -o out +RUN --mount=type=cache,id=identity_nuget,target=/root/.nuget/packages \ + dotnet publish -c Release --no-build -o out FROM mcr.microsoft.com/dotnet/aspnet:7.0 @@ -32,8 +35,11 @@ FROM mcr.microsoft.com/dotnet/aspnet:7.0 WORKDIR / COPY --from=builder /Services/Identity/src/Identity.Api/out . -ENV ASPNETCORE_URLS https://*:5005, http://*:6005 +ENV ASPNETCORE_URLS https://*:443, http://*:80 ENV ASPNETCORE_ENVIRONMENT docker +EXPOSE 80 +EXPOSE 443 + ENTRYPOINT ["dotnet", "Identity.Api.dll"] diff --git a/src/Services/Identity/src/Identity.Api/Program.cs b/src/Services/Identity/src/Identity.Api/Program.cs index 4d655a0..af79076 100644 --- a/src/Services/Identity/src/Identity.Api/Program.cs +++ b/src/Services/Identity/src/Identity.Api/Program.cs @@ -1,5 +1,5 @@ using BuildingBlocks.Web; -using Identity; +using Identity.Configurations; using Identity.Extensions.Infrastructure; var builder = WebApplication.CreateBuilder(args); diff --git a/src/Services/Identity/src/Identity.Api/Properties/launchSettings.json b/src/Services/Identity/src/Identity.Api/Properties/launchSettings.json index 613df80..d3906bc 100644 --- a/src/Services/Identity/src/Identity.Api/Properties/launchSettings.json +++ b/src/Services/Identity/src/Identity.Api/Properties/launchSettings.json @@ -14,7 +14,7 @@ "dotnetRunMessages": true, "launchBrowser": true, "launchUrl": "swagger", - "applicationUrl": "http://localhost:5009", + "applicationUrl": "http://localhost:6005", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/src/Services/Identity/src/Identity.Api/appsettings.docker.json b/src/Services/Identity/src/Identity.Api/appsettings.docker.json index 15ef267..a7e85ff 100644 --- a/src/Services/Identity/src/Identity.Api/appsettings.docker.json +++ b/src/Services/Identity/src/Identity.Api/appsettings.docker.json @@ -8,6 +8,9 @@ "Enabled": true, "ConnectionString": "Server=postgres;Port=5432;Database=persist_message;User Id=postgres;Password=postgres;Include Error Detail=true" }, + "AuthOptions": { + "IssuerUri": "http://host.docker.internal:6005" + }, "RabbitMqOptions": { "HostName": "rabbitmq", "ExchangeName": "identity", diff --git a/src/Services/Identity/src/Identity.Api/appsettings.json b/src/Services/Identity/src/Identity.Api/appsettings.json index 9207177..80f62ff 100644 --- a/src/Services/Identity/src/Identity.Api/appsettings.json +++ b/src/Services/Identity/src/Identity.Api/appsettings.json @@ -5,6 +5,9 @@ "PostgresOptions": { "ConnectionString": "Server=localhost;Port=5432;Database=identity;User Id=postgres;Password=postgres;Include Error Detail=true" }, + "AuthOptions": { + "IssuerUri": "http://localhost:6005" + }, "RabbitMqOptions": { "HostName": "localhost", "ExchangeName": "identity", diff --git a/src/Services/Identity/src/Identity.Api/appsettings.test.json b/src/Services/Identity/src/Identity.Api/appsettings.test.json index 2c6c220..085eaac 100644 --- a/src/Services/Identity/src/Identity.Api/appsettings.test.json +++ b/src/Services/Identity/src/Identity.Api/appsettings.test.json @@ -2,6 +2,9 @@ "PostgresOptions": { "ConnectionString": "Server=localhost;Port=5432;Database=identity_test;User Id=postgres;Password=postgres;Include Error Detail=true" }, + "AuthOptions": { + "IssuerUri": "http://localhost:6005" + }, "RabbitMqOptions": { "HostName": "localhost", "ExchangeName": "identity", diff --git a/src/Services/Identity/src/Identity.Api/keys/is-signing-key-31079AE9DF4ED1F2D492E52BA5A644F5.json b/src/Services/Identity/src/Identity.Api/keys/is-signing-key-31079AE9DF4ED1F2D492E52BA5A644F5.json deleted file mode 100644 index 8465fff..0000000 --- a/src/Services/Identity/src/Identity.Api/keys/is-signing-key-31079AE9DF4ED1F2D492E52BA5A644F5.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "Version": 1, - "Id": "31079AE9DF4ED1F2D492E52BA5A644F5", - "Created": "2022-04-18T20:26:55.3256244Z", - "Algorithm": "RS256", - "IsX509Certificate": false, - "Data": "CfDJ8P3RLEnEd5JHjUIOTYyyJAzVTUgXKNFkjwfEWELe3r9iozJI4zF_jAjqORPS_C37DAQiHHtMYbgB7_j1Wwqck7qb_wv8CuDfNW8Hx0_UdWaO6vD0Sf_hIbBmN4RrwFwdMia8IUcNCUpwL9XJl95TLzD9FjpuyuWElQ8_5ZnF3SuErstPenQa4q9MYsj9XmPhNSk-BQan-cimxIAPYm1BgZNm5DMylT98sus9ScYTgOowV2n13MW0uA7kk9JOZIIjG07UuaSnuEQei03AU9zkejYD8yLwBi98ON5s0_jW2V3ebY-01VBQXhztu5Iev_SCynNyqQW-uqEzL9SSlzX8dEa79KKmOJEo2o325AVeDOBvco2XDCCra5RkRhUIPV3ZHvQr4EZJNqvi1zelWs3-FJ9vXE02-6XZkZKd6TzhPfiMDc1Z88-eVlx-uwhPjvJyfUSU9cAgbNDREDETxUcmIAMqqbXVAUCnaPkpbxy0VZ6YGSNsD9w77L6nIKiz-0KkVtxDZKCXh5BbDwAiWza8KWKclnVUnMLGhnjANEgKzzvmb1UJr1wZ0xRZ9KXyxr9oy0kP1Be-ysFSUd-YUTSgDvuQZV_DPjH2XP99tXqmfWJ8PJN9hswaRGhp5Jxo003l93u7Ivy-XR1BEhxVoYpvV9fCh8lo-N9ayHYpYlEsdArk1qvkuGRSlkBWNeEr_ZsvODbwM8Jp5q7pLK7cUy0bRHnYwkyHReS_fh6_tTdnfcQZPWb7fLN967XwebcVNOEENn5FX9oszCiy5BG9HQDIPffIx8bkKrZCMV77e5Qria9wNwkhIi3-7SOjRD-v5azkwiV0hTToAQTYsAT8DRTJklI90PF4JbsiMvObeoJtbwPy3E-K1_4DOxAjNwQFHf_zqWEbo9vmxGF-IerSwaJNSVfUUxnnYT8JWFYHYzWGyMvqtdymk1pmBaOJ64dgTVVcao7S0PwfV4DNUzxKQX-jNzqMihaXu4y8lyGIPJycJezm7nfGJiHhhhV4EWSQ1Y2ypBGv_s1iZ5pvTCeGkthY2Q4pe-GYKrFGTnBSLWwHqsVA2gwb1McjYjUGNgu_mnzyB45ZpKrqXQDDiozbQ4Ju7DJb5Vi_EoPmeHQDj5h5sFwAWtq0NGI_lRAog2K_QnZvSV3SFDVlaKDq9PjgIORc6wi5bzbAusWbjDd_sb211QsrNfW-0SWWgYwz9qRg14OiuntGESXSq9Cmx8WgPaK5H0FQGZUlzq3Bk8ov6GUhPeZSKP4gUyfRloSyj2DBZSe_0JOXO3e4Q6BFZLqhpStyAxoUZftEW_J3pKNjCrvKCOm-Taz0EVBEH9zqLTJwwXEoR86YYNTrtpARTOHo2qco_oMSX_2O4cpAfDZz0ZMHuqxunNnannVdFv5SdAHXngHLguLwAVuUTGlrg_xnUeW4Msi9-CKXpmmEQv6BCIW8Q4S5rn0vp394QgMCCo4473jOEeOX1G4_CUOhJZydGOCEbC5cMrM_54SKBu7hz8P9MCkDLj1ZsPwPDB1YyDwLFJlxb9oEZoRC4whvTJAfX2xNP4wv73ojxwrOII2ivNrnqNX6EM41bxmqMrF9tltSut-OR2XHO-DdJduoRnJjmKJl_WaZQypbZqfVepURuDNGChqyby--xsGMA-yQBBrVigXSKliuYG7dxWBp3TJFrvD4Aym1gAQOgjlObIHknv1cA83g_rHx6vq7JfwqMFYu6H6IZ6eeTUde1IixstE7EzU_4u5LzkQb8HKSMt3j9m3dlH4OigcPvcSJy8aJoN-UCFInfnE7IX0ul_S5HAgvgLM_BEVa3KTa0u8nxAY7xaIXrwWJZ23fhiZrOkNYJI1XAiN11sjtVgVS8viZCkTabUtpEtX2nPe767IbwVzPdOG-C6W_-8uNN_j1WjYeQfsSjmAjab2jZqx3BCDOjTbHkP_vKSzdABFA6bu2Fqt3io2UVTYq-a_Jf2b4JGmuiHomXjhsH3KZp_MDw1nZ8zf1mejyuH_NHFScVzb-vO_ieZ-RDQZn32VPaaDlylSMGa4kE9-54tHZUkFR4Jy1vpyKjXBa3uIEQBE5RFn7XCKbVA4Ea9BCou5ku7E6Zod0SfjMmmknB6jzLTVSBgMP2AkFb98m943O1XXsDQstMmTZdqmNJTOirLoL2Vu1AXqsdS7O-DrVcDImR7ekSGPhUSg2LQkObRPT26sSeiygKlNDi3PktIA1duuJ066NoIHCJupl2mugbFDrZ90SBaQ9n72Ya7fjKdrSdp3izCxqlldeZPANZMMZ5KwjX9WZnl-lPNsn3iCNaEhBCqSWne7YN6xxRS6gKoMobVav-HsZ841qr5iaYzDFD2kA4R35A-Dm5zJyfSCV4NPdUEGzIIbjg1-kYv8PFR_kImuXIwGXT86BxpgEY6PRaD8-ZFZMzerGvEhS8R39NpQ-hiZ_P_ZY3wamWHlwttaTvX3fqpflHlhKV_9AI9HZ", - "DataProtected": true -} diff --git a/src/Services/Identity/src/Identity.Api/keys/is-signing-key-74ABBD16A9EF6567607D1F748BB91597.json b/src/Services/Identity/src/Identity.Api/keys/is-signing-key-74ABBD16A9EF6567607D1F748BB91597.json deleted file mode 100644 index c2370f0..0000000 --- a/src/Services/Identity/src/Identity.Api/keys/is-signing-key-74ABBD16A9EF6567607D1F748BB91597.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "Version": 1, - "Id": "74ABBD16A9EF6567607D1F748BB91597", - "Created": "2022-03-29T20:44:37.9948898Z", - "Algorithm": "RS256", - "IsX509Certificate": false, - "Data": "CfDJ8P3RLEnEd5JHjUIOTYyyJAzeYir0LDVxp1O__t0rzDUFxCBt5XtK6FK6fLgopH3OcjrMTbORu_DJp3lf4bf015LKnOk0yjzfzZ5xRX3qwHwz1jvdXKqzt-Pf85kiRlrNv6qiTH7UXP5xGTY3Tn7TdkVJfPmvfHtQyw1FhIPJnx5KQ469H2DRnoxmpwpspHrGlrPA5cJn3Uc7xFnTNEe0laORnilL1rxTTsKFFhJCWCcoxMozgh_SQqEhy9B7Vb4rQHn-ULb8qO4IaKDvbuCJNuGD2nJxy5lBNkdFKJD724IlGIB1nV3w5LR3YVYcxxIc1bLrbK3byHbVHsl8i9uacpN4-JP2Z16Sku9jhsQ21d1tNssE7gmxe8u6qE4RQjL2URSci8_XdSsRa0DBYNaVOSLv60M4dtwg6pJeWB6GfvJ8_JFnTDFDs51rXc77RL4tANblHLzuQl2C3gMMbJPoviWSs8R0hg2mCp0-pQWwSzNvNmtWwsMNXPgHtfIrJTGDKTQEiYIkvkf34gsBaweyea3Q5H2prmt10qVHr47LpkjGqxpHvi9eboJQkG2y-1MBptNpdiYZ4gbViplu8Ru5M4YsCmb0zZF2Q1DZsKVM-T_PFZCgyy1LjLwSHczvcflQh__6YmSwhehI7Nka86m3lK80nwAr9u0qoUyqjavte-XjNiRbUd7MHaEy2bT_jj40oqdh6sGURIkmmJljxPQfu7Scqgcs6chQSY4JXEnfLBa0AK40mefPwpk76QOJBQRBJ3PvnSLc5RMhgs2c2Vc54j4VuQU0tjiHoDPcgerj5oRIQCDiA2_ylleNmxBEomENO0FRortejvV7FNb2qzTfey1r6bTwJvN81EFfMhGUCsj7X0KkBywJMESsQlU3pbs_JChQfX-6rMjofkMYEtnupYnCutUFVO-xZoXrJvw5AOxtJn4JoPHBYeEhC29zjHvtzfSnnnDzCQxiJkWO6pyuAFVIyJUK50Bx_yuaiDicscEjShfd-fQEN_l3eFsUzTGa5rX9gfsPckH8jkpkFkXJlUKFt-nt_9FDnqi5WM6Hf_d891jocGkgiSLM2YURz5Fkyq8S6o-hrBnVf4Pz4dtfsQBw-NnOAl4FPnaknsVdDLZ-qe9gaZdN3wbHQMwFq2eTmm36M6ky47A2xO8MksDSlh4ROcrqJZOBaCWE6fFowcot1sJXFAqNw5iuEKNmtFtJU6oPWxTGY5C0BdjExksQZzqmg2JkjbqZE0zRBFBs0oSJHZsQTnBZmTELIUzMjZVO5eXfVp0tBoOWoW0KgTdHEhlHhNXkvZDoNIdQKu7RVEmhF3AmWWUYzpAW1Y_oEPAsF1Jf-msAlCiMnchbg3yxDG7n6VKAPssQQs3RGPjPLCjOKtHtK4X_3ivVvHbX0xxZhUk44DBv8HDd72rQLEenrXKuIEr_L6VzZ93BpisnxMWxJV6pRcYe1LTtu4nQGZ20hiJs98zHRHomwWJFqxIlPZrSrqTrxUAN4jCl4WSLgf-c2zRfO3AHqvlVCt518s92IUx75372znyoM7-xB5h95T2yxg9x9dlY-_-wICdlyPiQ8arAQ824Cl_2QkSU_ba30gAvWlXGYRVFpg3PSmP0mIhq-ffA8HLB0ARZfYl1_vMspd9kbPyJVCRSaFObC_L-AwvKV8f7Oqqd6bwbUYvdA_6cw1gFUeiqH2wuggOjFI3WDp-5ttVdmZnDVDK--LR3y5b2cYHAf3EG2N-7qMBwZqpOb3ivnRFX_SUlB9V9BlvSe_sLU5zJphBoSWm2-_4j9rWQjCaswlBLbScRA3r1KC5BFxFgbFFv7p4hWk_xjdAx5q4RHM6wqFfGj1WkrjRtdnMC7z1ZM7Bdsno-5yt6PQBP-y4QIvpSpefXl8E4_gBJ6dzToQwLS_Tpk7CjzlIV3oUZ5XfMV0s14Flky6ErsvBdXMzNbHwvxwCAoxbYDrjZ9U-w9gibGOOVBYmKjhkeGLGs8ejqc8TxrzEEFL1li1ZfXxeNAcu4zyNwTHsWaaLVciWaw-UuPqA4uDFxMNmxI6kfXa49L0voFkQaeMo48J2lVjH00QV8f-nXnVaZFztiTU7fYYlpK-RxRSL1q0qQOFMEKOdltqqKxKbM7grNSoBQz-ZHqQq7ZR4v7NRl-yyTGmcGvOzTaDfLP9snbDfiU2QnqH-S2pgtobbYJ_UZvGfg8AZurvNBbl-KuBOrN3yarxe5STJY9mHY_8y2c8C_foQifRSNr_oDANvMbfsukrV8HJimtMk9WF15Qaz51BCiZ9NIxiCsgaJHZ48Oi8EUput8rtTInjNjAvb33N4whgDKQVLWXE59k13dlZX7xA1V-pFbY9TvFLFsWwWS6Jrj8okejPb5Fsb9zraapVTTCIEr3VYR9BB_V7tgkldqpNatO6_qqczD4owmZ-dL6IDyE4f2u_2FCgUV1FP30UMdkRmKHAbhZ9kGCK-ZI5XS33qh", - "DataProtected": true -} diff --git a/src/Services/Identity/src/Identity.Api/keys/is-signing-key-9258A527F8A78F2F47D30E7F145FD59F.json b/src/Services/Identity/src/Identity.Api/keys/is-signing-key-9258A527F8A78F2F47D30E7F145FD59F.json deleted file mode 100644 index 8bac5d8..0000000 --- a/src/Services/Identity/src/Identity.Api/keys/is-signing-key-9258A527F8A78F2F47D30E7F145FD59F.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "Version": 1, - "Id": "9258A527F8A78F2F47D30E7F145FD59F", - "Created": "2022-02-15T09:58:48.5269984Z", - "Algorithm": "RS256", - "IsX509Certificate": false, - "Data": "CfDJ8HYLA_44KBlEtnKYw5Y6NgZcbR_xFrM2Jsvq7lBG7H9pe38jngLl4EUknvBtq5hxuuwWtTX5qnwK_90h5-sbgF98Tio47qnnv-wA50LawMrDvcEbWMjdBXeFD4hE4QCSCi43i3oRms09g1c6gHipjTOTGmZ0Tj6wGAJZHkdJz6uBuvnWkuypYjaZG1vap_baLugSmjP71PUzn7jgFR1dQDEOcZE91-dERlCPeU7RXdDOTrUJMjD4yvfXO3VdB53YiZErMIgCv7rx1qZhzBPmyg2Z3XK86kY877HD4I-DOerJKeqPYl9vfVmFQgRRLFdOhi5ZpmUwJaRKG0zjTDDfOuvFG16WNPCrr3-_AIU3ANaCvL4Lg44t2lamlRaKlEvT5aKxphO2cVZjSWsTPJMHgHXWYM01e09i3WDbL07g35vJWsnRrrhxhiMoVJJG68-WrZVtev47fT69of6Z5_lhFcc7donENuxlN3K2V8P90Nkxu4eYbHwp267IvadONcgCMO_wHdKwZZswFUs5HYVyYVOZKtmE2T4I7JJWrOeL2iM_VWSFwkwV0hCLQyKazQZwVIe8s2s3glYY8ektc36reTZoSg4ykhanq26OLX4VKw9UzvfyV_J-EozNh2WXlhtgGqoeomjVrNp6U612ywre3QLN-lvSDjd2MoQsZ-CG4S6kyTuXNT0KxsdXs-hXUlXRNbri8fshIjSkYjCVWUKvNFvn7IMJ5AxYakWekKdPL7r75Q7HNJMMYxt8jh7fv7N8QKWuOnWWy_kA8N6qXIsHsetBeBfGBHbq92mQkfcdArVKuysqTzSy2wm9t4mLNFbzO1QPAQ9VS6aYS3DcWh2NF_pc2xlRCRt9Mb1P9IYEUQk7P2iakeYUhKH1MMNh0GuMwkCIaed4XCTEVZfSB70YtPUCawgNFP9hn5ENUVNRWBf6717gT1ioybimXghodrCOHiYxxQDDpss3e8MIl_x-BaqW8C2zYFd6xE0pVFXV5-X7O6XP2sc3ClOd1EyVnLRT1-87Uof-1KYA2kzTyPfWrnC72maTbOJzeje2f6oT98BfsgkvakOAchAkEl_FJz_Dv_KdJ9ZwC9Xv0Wan4dvSS5aR35iifXptuZ0du0pc2t6_CoHGLZxOG6SvXm7AN24XYFcWnRPvGUS2M5NG4pHJn73vOPaon1SAIBUrLiDXSWeW_27G_5UG5P1lPXYecFMjVG2vdKPEDxygu3yj1e5CDyeVmvcnI3-Hl_4skomLB14as8U950O7fr-CuS_BAli6m0mplgAPCOrfeyq_o-xWdM9vNoaEHRGA5e2ZfEIknCinSY7CuoGCnMmR0O8eT2P3aQ34TKHRRspvCVs8GAyzCZaVT8_ZeOHCl4FU8Ac5NIe3OMRPuZs1uJaBfBIVlPP9MfhKgEA_S5t8vfa3RJhiU0jMy5h9OToqnBOQsiIkY0mjSMsn3VvsqeNutK5DKoTpATX822sSHCSYXAewk7F-agvqKnM_cPVhib9Z1r0UXLS2neLZwF5ob7uI1nYU8TNb6cawcWPGBz9FoMjtxXsMsAci5luEVg1ZfGTU9kShAa3sdfRYC5E4L37_Fy_4EZyNEKEMPxx8I20PCPfqEPR_JB0geDv0Up9ZfD2ZwgwovYDVbGv3qIbgbkEH2Z7zf2e4gH9sZClvei1XigDL9gjfJ0b9IdA3QpWw6b3uleR-WbNWag5S2Phz6kPB2irBgoN7oG_gUegXQTzCif0mgeQSwbea1vXOngXBLG1PiyRk_iPKPhZMmg1UoMeqXQlXqDL4VFRnMOsYdOKr-BWsgdCM9zE3CCyVueBX0zTuZU0kM0P8hUH9RsZYdqPOXS0d4Fy0YUmQZTHWwSMbCUG1XmJ4QN3y1FKUKBvRRHZmZboYHz5EKFMHhAbk9ZHZRCpLm4hIlH81IiSgRlYm3CacJqjlAiLp0Tc0zF6oFlZFipA-nM5znhgDJMSV-CSW1FSDvYFvHolOxR4U0hlw_XG6NeytrkiAR7-wvU3ufkslsWowtcyswCNHcT7eg-tpptSXyT0RJaQhWwAc9L9lYWZnCBwknUCak23u1V7jM8ZldOM5jiQrjRvEBv-sqMto4Qo6129AatIKri04PYD9VlHzLP76KY4F-UHUcu-9g3cJp9mnbnzhmD1LvNPQmH2giY0pc9hFWW6_Ablz7GmW2cngb9xwHAgi-WBSrZYoW6l2dAdkm72ECwWmMguwT6OZdaZZzjBYixHKM-mnb4uzVT6CU-pp4-G9dYtX5EPqhKcmsmwbV6qiziV61rGYypP37spT8H_SWTFmqD-sMPg6jJj1PncSFd2mlZFBkuFJDvF6Aorf35t9-rePPRc18k14Poa8J8j_mYVJo3lEIrtRDLF3d8EvZ9UEjmgBj25gSiYhOJBPriRop1qmlVVSUjoTBIJaXlTXefbcZTqc8vguzQ5Oy8rjzTaxeP1-OgsCDO0xw7ibWEeN", - "DataProtected": true -} diff --git a/src/Services/Identity/src/Identity.Api/keys/is-signing-key-A7DD53B5F56AA3937910E9A73600964A.json b/src/Services/Identity/src/Identity.Api/keys/is-signing-key-A7DD53B5F56AA3937910E9A73600964A.json deleted file mode 100644 index c1962ba..0000000 --- a/src/Services/Identity/src/Identity.Api/keys/is-signing-key-A7DD53B5F56AA3937910E9A73600964A.json +++ /dev/null @@ -1 +0,0 @@ -{"Version":1,"Id":"A7DD53B5F56AA3937910E9A73600964A","Created":"2022-10-13T20:19:56.3638146Z","Algorithm":"RS256","IsX509Certificate":false,"Data":"CfDJ8GjYME9sg_tHn5C8_j2EtO1vvYKDE1hzq5Kp8GHesS2tNpBMrM_9i8n6u2MDK4eczb8P8fRryy3dD8HS7GCrRB4dY-qvHq7eRrDdJz8C-HHEZTRt-H843A7O0aOLgXJoR6P0Yk3EbBBJcmFsEGHy9G9PfmVU6LyCpRcuv9be6YLfBI-ahU3XvkSLTLEV0YIs9HRY24Ue71_vWp7G_IawDuUMjQZgTT-ATwvu97iE1ubfIwh-HQWF34Rfk7xvuyWgWftqWxfzCDqP1VIE088c8zCvGTIDb6P7TCC-PFOtOlb6xNy7TlyHNSnvDLCu8WJvc9r5S0P_6Byl9zHVwxmXtGira_tu-7ZkqaVHHrLVwoV0-f4bTRnXn7nvXvvLdOHCTZcl9zh9pyNYVDlLy6arQcfLY09B6pqdaPxw8lt6hrs9D5vwVzknt9PANW7wod9-hN8RBX0oAf0qOyF2Kn6Bt4wWDTO9-JbNebHmGfq0rkaFHepugz4XS40-NfCYwo9Wn3H0uw5Wq0r4SWxhdU9Vbrgb0SCl4am46O_smKVsM5VVSA_3IqvYSWLq1OpqIasJthonDq8ZAxX9w6i3nXjea-T3kD-eoZxUnB5hSnMN62HoyvBSTIlYjUtw_bRHNmnb7oqneL2zCNGZBPIdOf9QByYOCifJvK27AFeSm6xMEZPMK1MRMr4K64_9Jj61wAZTtYp6tIMig8plHwnxpqjrMBYGvjH_L5YHcnDl784IujzwjYfuTqrD8BzlaTTcbCYl4Jxk5DKP6Jlhg7srv6MwO-Y4jvBfOq9PSLR8nN0KdNMHN-OV46b_aRIyefpAfkJIuAWKc2Qoh3jd6yPObVXwP9qYJ21DnaMuBigxt7c6m71z_3NKiSV1d-O9XNPwbwQ8mlkKwc236KnlSRmLli1HMQIJKJhiC5XI1gBXP6XbSi3bvVXgeEj9cVpBnXFkvkRxfXxZ3jZZG97VNuKuH0LSaeHatZIR8IcdeRYRieyAKFyQlXAhWqqTibaZKBx6SCs-9vSi7zojEkng4Aodgjpf79zH_FRQRWg9xufftZpJlAclE1T5119uCMcwDkOngL3xVbTY7S9Ak9lB7lDyuDKm2kIilbuhtrsLx3XJqLEsH0ub8PUuaBmnOZRz8fGikUoy2ZU9F0fIm3_Advymdohu8jjMQ6x4Cp3YWNusn-FblEC8HcdOgdQOw63ZRwJuij1xdLQlTgx3qsRf8xl2zOMnF3nUWodULk2ynTpkYjCp4lbQGGboZ1lxbrKeMeybvr2hmjANtYQz2ahRdMGoVDB2HSruEOrYHx7lFIk5EVaOBhqLigBkLFw5RtDMMo3x8SdLBkNzP2C3oYTy_iGaTwpSRktabgDTmCySLPXGXWiRy0AVTGwozvLhPl1xz-14vlidGvfxcW-n2ahfpN9kqM3MyB5GT85wq-aYxyYi6m3eF2Gek6xSmtVRhCwWnXlUysfawsCQDK_Bio9nEJiYF9WVHjKXvB7ZKq8dQy0IBWrXFz2p04JdBl6s9rzXUvTWtfJUePRh0gQqV24iFCRkg86_WpLXpgPMg91AXwurgrhgJjfUKhxeyl0Riej_hVndAF16H-lz0-N4mDhyy2liRTX56dlC4cWTv2DU4iPtLOarfCna_m7QTdzyeidkcNzTjdtCkTAciZaA_8HZifDbjyIJeCTHBHoIZqfO1VaRiXytx5gEdtt-DQSanj4EA5cvlRLF1xRD7VGI5FTYR-mua1xdw0xpPj28GQ9Tjh8fi2a1WbwRzmjKnOAPwJyG5YelMRHgYnpLqqmESNuLjgfvlAlFmXqPjaJ8FSiPKZEFpwoy2lH_cSx4lYprq2Z9evdY6yaP6lI0lDi2WF3ddCzEeWj2MMg1Rz7fqYzjxum4RINbugJNeck584dTJnESySSZCqQ67m_vd6QE4u6ujB6yzu7TpXc_sOG2AS3r39XtuiPn570r8Z6LWUfdv8WnyRHJ_P5Sf4YAZ8LrGRuz6UHyKesL3bQnHvj0tv9PlOUv9hxemQcfkDi0nrN_3E3HGXbFHQLJ-9RHuVgE0SvL2JIA0aOfpIl69eN8CkBRHVvFnmfKh6OzFDMToBXkhczBWAmCW9nwGVARd_7yjWpu9y8oeAL3yuPXUvJQTDvjLxFHvGntNISf8KM5g9SW_QIxzUFClw2qlqhRLo29TFiSsVQM-hxSu05Js_fGocSek4nkLAotNpCG1AAoWP8TeI1NpLZVRwwzngaBijL_AbIoeFyTY31XdUztEQsi0dvBpu0iLd68GBTKOdeFeZ2vo9AFa4OwTFZ7SATUYRMgixzLlcuWqn60JKdWSQgSPCTLBHHZfgkmfxXLLwT65GEHlwuI8pb20xBeorUhbs3cc9LqXGnuwno5K5v0LaeFailxaBMl4fcgoBDj8TpdKqFKrcsIPol6suVKZRW_drrkc18p5Nt_MR5Xnd6D9SrkXYOUlc8c7gRrnAxE","DataProtected":true} \ No newline at end of file diff --git a/src/Services/Identity/src/Identity.Api/keys/is-signing-key-B33EF2DCF9AAEDDA74F42B239C122EC3.json b/src/Services/Identity/src/Identity.Api/keys/is-signing-key-B33EF2DCF9AAEDDA74F42B239C122EC3.json deleted file mode 100644 index 73a5ff9..0000000 --- a/src/Services/Identity/src/Identity.Api/keys/is-signing-key-B33EF2DCF9AAEDDA74F42B239C122EC3.json +++ /dev/null @@ -1 +0,0 @@ -{"Version":1,"Id":"B33EF2DCF9AAEDDA74F42B239C122EC3","Created":"2022-12-21T12:54:30.8778452Z","Algorithm":"RS256","IsX509Certificate":false,"Data":"CfDJ8BYS1jC_Z-ZPsg3E7DQNOTPJbX5na2yKwYTMzyoQuiVxDh2roPqW5hjhMHjO5KyMi0Hg_JgQ6TmQ8hgf-4kff-Z3PtIlT2ydkdtv0ZIljsrCbma4CFulhcRah8UczQetDDhe8CITbqTPnmX0Erz_MuBTt8f2zlj1Ne_OsuqyKYUCu_yo8SEy5vYT-_Q1626X77NtbvyWg8NheVKZadglyxml9X6AFe6zh3kRBX7odVWW0d45N9aQodGDq-Bv2h4DiLC_h5mtmwWcUTvwCQ5G4ix_12BSl_NzyDpkqZHi4wpYyLUCUfWALp-yni2tb-RT4GAmKqKx5pksPvjgSrhCkysXeJVKlyKnrto5jkV-R-E2EDrZHZCPFxZbOmdhRCkJczqVPzEyRikvv66deH_3RnENmpJR6qxG5s6EZ3o8kPBkQ5Lf_WL48_eD3Bkc3gSDarefr-eRohlCIfpAj--TTmZOBAeqDLFinsnEIVynxYQQidGdzKRe8jBhPI797mEjxfOGQ2v713Mp6UfbiPS6pJfDujQlAqvySSMAzSekdWaSmcYOFBKJ5K4V9PjyQwf96m4KPJlI0uB694_ULHJ34zGCYgxAU2bl1y5Sv0_MABxe3nDGGsgCXy1nvmGvdCQqJUmeJR8-FnYl_7-jS2GlFU7NdgNfCoiM4t2ZERZ2N2sMguOYxkSjj2ELblXNPD55fP3mw_20CSrcS-ms7FdsDbC-BNw_lx-BGy7oYrUVJZ4ifoTVM-xxBU3eWuzSCuGyuED60Ms05w5CL3CyQRrrP6XK-55X7F5IH19CrVUjV99a3X0ybib5X3Fw5m4vSRmz0jWS-tKK2dVZHtpSL6ixrbT88sVytaDyH3VWbVjUIkjnCtUnDGIp_BPRAnN6lYINX77yPb6JmBDd_TNhH2veM8IpCrHeuNNGz126_CcxHTw0kOc_Q-QxyqMOGgq6DmNBnLRav4UIsa8WaSsePi-k50lCYn5dBUSlBUnA4Vm3jIYX0-DUH2jy2rwNPw7xG_FqrnUP7DQLXO4ksQCVAHH80CQFYwrSJl6bSHNwrSis4YYnkhnp0CDJoz8CMlaNL67xGfxdqb2ztuKh64hxtB-pKja486lPMJWtgCW8ZtUxYK8lWqb7RA0bWCw2tYfLUgdCaK4ydCDXAmwLUoZA_BEEAaelx8r94qSc0nc3Dw__iVM2jc-yxgU_1ltMqjyYl7Rg_sDlAMg0Rg0jkY-yf8iY4HWWEUCT7UZi08Az-XokyVUHaXcsq4zV5K3qLzoLW1ZapRAVBSw3PG7W5m_ZonmXvu9tKdC-shgTFSWz0B9dRM_n6hIb19rgpEvjS55Wfu5CywS9YGqobIOU8LuZaQqBtJdq5-S4ZZSBi37qkoys-y6-N5Ga_dFMUzMeML3t1PkTmFH-AFYwW0YzahMtWOFVeTr3HwOzOm5hPQTSrLSp4sA7pPhoYoLuApoN0UvjqLUY7qjR8HsbOTker0AJcdf8fYA58SuFyX3MqdMyFsDBgsygyEsjvcU8x0kKF-6MAcLbWs9NAKV9TH98nHAZem-31xkRVicRAbEykweFMIaR8I8c-_stEKneWmPx0_oZnGSM4oaP9WG0mX7PEdl-krOuoBWplDOxoEFOng09QjWo8PMMaj5qMjkuCmOIGTx4zYcpvgo2hCqRZ1JmAmmD4jjETQvS33eOjMvETC4tdwvXyM-uZ-qNPlPKOqHFXDfTpv4UhnIWl4ieV9m1KzziejkinfVysFWsQD7uIvUcNvPBvfkTGpmvSfHIFzDllYk2RptbigJyiA8mbX30fSOBcoCMaK9SWJMRCV0ffg-zgURhd9ctOYjmUStEIPiGSEl-7EKBlrOIfDgCyxH3o8xphDRd6aqBHCElf07z7RUIU_oGduH8pIo8GwjLeXKrHCF6g9CosEaCO09K9E32pL5e9ojA_1o3WJC25OkqWaWEJ9iz7JSSpYxnkSDCvo6_8vXIXWjPqPWZwC5MkAWYKfgynv-iPwfZmGl1NCDZDw4OMtsrh1kpATdRlgaefafnLLysPfpMMRirIje2f6cqweTU7AXyh8WBfaoNHVybZmRmjK4jJuSFw1yCSDcHIxBcXlThZg41dkntNicmEbSYVrajXpnurxTNMiuQfNhDUsetXKReWLCwdIkXa7seQ5f8Om5-RR0DpLlPGrUiDLr9q24dZ8zOVU3Fnv_qSn-sOHn0ALV17LSaNfYjU-T-svlN5ksM2gnnNqqc8qadsiyP7WqoZZ9YdKwcQIFPWx0vB-G0Ej-4aQRtR7gxyNKP4zhDnEh9QkYfQRRcGA9_Pzwq7iDkPm66GFQJPpYioGQfZJrnsrjV5BiDON1ZHIpeUfXHs9qcC-U0g-jG2dTg51Znc_AS6rX-RxW3_dQXeeUFwndStmJUuZPHk4micnpjHZLO2Xcj14PMG81OgqtIxhpXLZq8MbhKjHLeKr2DvjwLEVph2yR1UD7D","DataProtected":true} \ No newline at end of file diff --git a/src/Services/Identity/src/Identity.Api/keys/is-signing-key-DCE5098F8B9D1301447CC90AB1307BB1.json b/src/Services/Identity/src/Identity.Api/keys/is-signing-key-DCE5098F8B9D1301447CC90AB1307BB1.json deleted file mode 100644 index 747b5f7..0000000 --- a/src/Services/Identity/src/Identity.Api/keys/is-signing-key-DCE5098F8B9D1301447CC90AB1307BB1.json +++ /dev/null @@ -1 +0,0 @@ -{"Version":1,"Id":"DCE5098F8B9D1301447CC90AB1307BB1","Created":"2023-02-21T14:52:03.5423989Z","Algorithm":"RS256","IsX509Certificate":false,"Data":"CfDJ8Pno3caweVxDrMdMtoqjLU-zkq97hfMbqd_a71uRzwCkfuVDrGVJuTHsecFn6xm9QskMBE5i1dNJ4l-EBrrflUZ0_ZiqESp5NGi4Uw7SaU-kijgI8566Ll_A6uy2dYsA6plpZ_1L2KFJuaCwGdMs68NXgZj8-8shIngrOBjTkvNeH0j1BUmvj7iHu1dheRQHBamrlh4L-pdPNAx9lR-yeOWoyJCUSNCviC9P-hLsd9nJzfn77gU4Kc4i8pfDyPf-pN3_IFSMU1T-PiVUwBobxXxEDj8oS5hSUDRVi49n4u5oluz68chky3NhxWjYNyfmjOS8CD0-GsL7VPxApDP8z33pOW8hSwSF-PWsQczitlvFqSf45kGpYBCs8JmwU1yqAgeKKho6tICk1CK4Zad1-0WMok6HMUHixqaB9MfEBWUqdeLjQcwLZo-iJ5LGLzAhL5o7JgtufV_c1RgYPXH1umXdIKD2IK_vWtDUv3Y7GHOiSyYBIJCaBxhVrk9ruztu-BWno4E_U-Jej_t18P7QBwAT9FQsO2lryGOEtG6f-zf_JwwHeJE9CtFxofXzkIKtc5fqliCYTp8JAfgzZ_8MKxLfs-ZD_iZPiLX8clAbFokJ86fqsL2s3EmTGTVxcc2nP7xmYm_5D9R_7QqBZPM5az0vIayvAbkjGFII6P6WyfB1j2nl1BwamMb8EdCuM7FOvD_bnstXETFpYC8oYhJYQNruRhWjY_tv7F1cVPCWD-pX5IARvRgsJEbE_WdgvicWcwLpz0MWu89GrI4qP7WSoLGorlFmss_Ubf5feu7KYbpPrdGVLJbaaipYFTQgxaZ0GB9CjjMe8LPmU_9P-5wbkZ69LDyzIVIEpCuTF1fZr7SWr-C8NIVEvIyCTQoJmaFbvfdejVTxm2eOyolJLTGedHOkuaDg90hBFDtyQ78DVgzihZX3uZ0BwkCkkkiBB1boY3B0IWKDR3OWsG2lDqIn61FcLaAHgAqQF7JdMSmjEIGOVKUAEcnDf7NyVbWjZtPhpMLhmwu3OmPPrIqu-8_2e2RjlRuvXClhNpLyo-H4HipVztSUkP7ujukuZsRwJFj4p-VV2O7lyB7ogocAHF-AEMvw7ywmMPysYY_-_EU3U2vtRYIisKOV_VrsaMujNhMbrZUCq-ZIIsA-8GdLA2dqargOfd4f7jodpAtrBm6a5O8vWyAehdKfGj9i29tgfAQd2VnRqtN0eArruLGuIopP9FcEK_lNmHPjrpDaHZzA7AnfYBJsnOVKRehZSAmZGQUdlXV0rDzmLxgMZSN4P68eTLFCil8RwJFHzdExHk7VWd6xMo1m-EG_BioFcpazqEJYPjwCt9Rx_9_NMuvu1IiTiP_U2GO65dvZh2-iDPMGyTfeFJBuiIHW9fGg2BH5dw6Q9swMNXBmO174dGhQSA9BWTXnDFW3PsKEhFj5avEbV2Tkp4QQAiTkLaRbDSVfFH7NiKImy4Py4l1W52ftVBt5yPUDJi2GHHk-zxhgqBmY2k-duV9eeiNvXklDHySo0dOZShzUTqYmg0tUgdrthytN8TMp6BSAZtO0YFZgELPkeFKoE9Rz_BwazdwK1OphzQ8dvECEVO5nJRil8_6iwvu04aQ_s_fFMmwa2xrft3DY1uGXswukhOcw_he_nnwAfY7ExA__BbLiEc0NNgG8ZDd6hKdiR_RZeY-4FHMl0J59TwSgc2KNnWEqsUHLXN4Y6VC1TA4eVf9zcku4CPNQCMZPFAE7hgYdttLzrRyEPnsfGTWBYt_wVN7EszCbidkGLIvHr3ZNd0Oz49W7KNRZzVydOMila9AytE1tRegU3e3HSoFFqF9Gqr1mKAQ_B4N5UBxYB39ta5cPwVXGHTsvrak3XggzuHOIqsGyLxEYZka2-ykx0gKMCIWqf_w63Mu_IYkSOQT4HQ3yheBchqeUZPqAAZASp00SvWIt_Cirj1O1XKxQyNVWiv-Im_i6xy4V5dl1RQSwmxQYe_7oiPS6dqewVR1WJZsmnptq521SsJLZQffHK-CDtxT69fE218ZIaNOzkDERp6c422B8wqZK5rf1zn6lO1I4MwTjkETMY_jFtFZw3_Yo9zYMLmC2kIzkupXjhrzT1vCWIaU6UYegi72Ikbx9fvmDHV6g9Kiy_KPBR8ECe89Skqz8DklPIhm3tqy5eaQ5iqcyW8Gxyq1K2DN1BMoCAqIya5d-RddpLvRv-W_cTf-DfJOxmGpKlYCcp4d6pel32a2ykGlNQSWJ9_8hk5jcypkosDWN8M8OROkBxLo9qtP0FWLnITuw1aXC-c03ypfeGJeE2HN9vwT3Rxk4i_rlGUXgIDgSk9XfyQghfKXBTpuOvrbf1VoEcsS_E6qaNJmpGpz9Ok7Ks4UDb3DtnadbABdyhZQLGg49QAywXqj4qFdgLBnDmVTHLm8eyIDDeVC0SiD061DhZ7qtzI9U7wYbWpp1oRNTuPZDlypBaZpE","DataProtected":true} \ No newline at end of file diff --git a/src/Services/Identity/src/Identity.Api/tempkey.jwk b/src/Services/Identity/src/Identity.Api/tempkey.jwk deleted file mode 100644 index eea2464..0000000 --- a/src/Services/Identity/src/Identity.Api/tempkey.jwk +++ /dev/null @@ -1 +0,0 @@ -{"AdditionalData":{},"Alg":"RS256","Crv":null,"D":"af7TFMQS67FxuYbUvAAiXHqqGF7HYby1Vy-8l7FjICcmb3829IWPDTm4gjv_pCqV97w46rFaZ7qBGfQII00rfDlCYdTgh94IJARpBdEax2U3o_7uvgVjpngH88li9hQI6IkcS4xGmljZ_5R6RF_fW4NMLu3n2hQ_3UyR-TVt1xigDLVnItYyC2eOuif2TgJAA_T-rgcSRFZCyjkUSkRF4Y_l9FMqFqiRZHLZAlX0DyQStptYTice2ezkLJPixCOI4k27_Bg3HcHfkfPPPNyhfJiHPMUl1NfgZ91_RV9kC2nZmdhz0tdq-tf878iFjp-Rdk7MwjAKCwggGtFPpFNiyQ","DP":"G4Ximfbf8LZG6YUSEPALnPiHFZldxEaP27KJGS-K3QDBnOc-QBswU2G43h6salJsj5dWEkBYrfOX73sE-JYgNwpCHjPXkVJPTKaGs95DPS8j0bzGwzHoJcFVFInygxFKziahcZzrGnvjPgOUBpgmrfJ-S78779WSJU3v7GlFvHk","DQ":"w6FR407kPQmLCrGN2iGKPdNnyOP7qK9w-332QVJQNPpT4Y8nW0cgYIFn1ObZ6-q5xv_jl12FFqbKrQUsXVde_oOYe4AHq3fYHm594T-GkaNQcmNTDwc2qNj3ZhEcYTGLLf6Udvu35MqEd4Nk-IYlItgt_hlLBFmm8XDZHwxQLm0","E":"AQAB","K":null,"KeyId":"D2252FAB0F2BA4E42E1EBDBC1E281E8F","KeyOps":[],"Kid":"D2252FAB0F2BA4E42E1EBDBC1E281E8F","Kty":"RSA","N":"kt6GLyuy4a5jJrlV_4dFW-YZU0J5kT1A6raNIg4nFiY_ct9w3uOgGxEPCSDSF5a_2ldGR95XGol1ygLY81_TtjMFe7yCGUH6cnHXVO75vCuvNXp_3q5xW8L7WueVOC_iXUHf4AEjLz-DFQDHUG4s2vtrXQfGzPt_GsA54UaFBS7KjMOQ6dr-ndBhGxNie33PRfq33SlyoAr72DFL1DNqdnMEXCXLjfX8AQuvhPsYE0sZch6Qbqy2Q6zpEV7N4r36STajjuIMgKK5WfB4UBNnRwCKE1AgyRKVjBVpcyUWFMCB8OQaCZ1UgnGM8K_uD74PMCbHwnwDnKiii_iUd52POQ","Oth":null,"P":"wCLaXWinvykcdpCDfZp3P0SAOLtD48Ioa2U-Yi9y-vjfUpfrQgelpYXzj6PKlIdw8rCjcDIJVYXHJX5SV1hDjKpoSeXC1yXduNLTPDxnR4JfWxgeilNsvS1X9z9Y0KfrCtZuZBYpbq8c9PODDw6mnYlxEC9Ugg8bPPm1BSi-Yls","Q":"w6_X4c6oE78rhUv34x1cb92DL4Ub6KF1BSlOptBMLKWsggQtNZxApC1Thi4eEOHVkr378vgx564rkuAtJbBivNPd5LKXuiqalSUY6332rIIDOe3YK41VoBThtudetvbJubjRdEpcGvxO_5XVBOV1y0WbuzpzOb66tDh2iDsDYPs","QI":"YuJogiqlbtI8CRpDcBDt3PoHYl8YTE3opFp_vAM5r1_g34KckzXFVY6-bIXQRhvyGGHhF5T9obdEogd1hzOFwLbKLXVVhb4CowkMF5-GRachee2L46xpGZtGe0gp_MgEzXFbBHIjv6hZtTMfZasnqUALdBh3vbUF1L0D1M0exnI","Use":null,"X":null,"X5c":[],"X5t":null,"X5tS256":null,"X5u":null,"Y":null,"KeySize":2048,"HasPrivateKey":true,"CryptoProviderFactory":{"CryptoProviderCache":{},"CustomCryptoProvider":null,"CacheSignatureProviders":true,"SignatureProviderObjectPoolCacheSize":16}} \ No newline at end of file diff --git a/src/Services/Identity/src/Identity/Configurations/AuthOptions.cs b/src/Services/Identity/src/Identity/Configurations/AuthOptions.cs new file mode 100644 index 0000000..ecf07cc --- /dev/null +++ b/src/Services/Identity/src/Identity/Configurations/AuthOptions.cs @@ -0,0 +1,6 @@ +namespace Identity.Configurations; + +public class AuthOptions +{ + public string IssuerUri { get; set; } +} diff --git a/src/Services/Identity/src/Identity/Config.cs b/src/Services/Identity/src/Identity/Configurations/Config.cs similarity index 97% rename from src/Services/Identity/src/Identity/Config.cs rename to src/Services/Identity/src/Identity/Configurations/Config.cs index f042743..4be17de 100644 --- a/src/Services/Identity/src/Identity/Config.cs +++ b/src/Services/Identity/src/Identity/Configurations/Config.cs @@ -1,9 +1,9 @@ +namespace Identity.Configurations; + using System.Collections.Generic; using Duende.IdentityServer; using Duende.IdentityServer.Models; -using Identity.Identity.Constants; - -namespace Identity; +using Identity.Constants; public static class Config { diff --git a/src/Services/Identity/src/Identity/EventMapper.cs b/src/Services/Identity/src/Identity/Configurations/EventMapper.cs similarity index 92% rename from src/Services/Identity/src/Identity/EventMapper.cs rename to src/Services/Identity/src/Identity/Configurations/EventMapper.cs index d7859dc..94b82c0 100644 --- a/src/Services/Identity/src/Identity/EventMapper.cs +++ b/src/Services/Identity/src/Identity/Configurations/EventMapper.cs @@ -1,8 +1,8 @@ +namespace Identity.Configurations; + using BuildingBlocks.Core; using BuildingBlocks.Core.Event; -namespace Identity; - public sealed class EventMapper : IEventMapper { public IIntegrationEvent MapToIntegrationEvent(IDomainEvent @event) diff --git a/src/Services/Identity/src/Identity/Configurations/IdentityRoot.cs b/src/Services/Identity/src/Identity/Configurations/IdentityRoot.cs new file mode 100644 index 0000000..25fb8b1 --- /dev/null +++ b/src/Services/Identity/src/Identity/Configurations/IdentityRoot.cs @@ -0,0 +1,5 @@ +namespace Identity.Configurations; + +public class IdentityRoot +{ +} diff --git a/src/Services/Identity/src/Identity/UserValidator.cs b/src/Services/Identity/src/Identity/Configurations/UserValidator.cs similarity index 96% rename from src/Services/Identity/src/Identity/UserValidator.cs rename to src/Services/Identity/src/Identity/Configurations/UserValidator.cs index 6168c9a..ef6c263 100644 --- a/src/Services/Identity/src/Identity/UserValidator.cs +++ b/src/Services/Identity/src/Identity/Configurations/UserValidator.cs @@ -1,12 +1,12 @@ +namespace Identity.Configurations; + using System.Security.Claims; using System.Threading.Tasks; using Duende.IdentityServer.Models; using Duende.IdentityServer.Validation; -using Identity.Identity.Models; +using Identity.Models; using Microsoft.AspNetCore.Identity; -namespace Identity; - public class UserValidator : IResourceOwnerPasswordValidator { private readonly SignInManager _signInManager; diff --git a/src/Services/Identity/src/Identity/Extensions/Infrastructure/IdentityServerExtensions.cs b/src/Services/Identity/src/Identity/Extensions/Infrastructure/IdentityServerExtensions.cs index 492a3ed..d3944e0 100644 --- a/src/Services/Identity/src/Identity/Extensions/Infrastructure/IdentityServerExtensions.cs +++ b/src/Services/Identity/src/Identity/Extensions/Infrastructure/IdentityServerExtensions.cs @@ -1,19 +1,22 @@ using Identity.Data; using Identity.Identity.Models; -using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.DependencyInjection; +using BuildingBlocks.Web; +using Microsoft.AspNetCore.Builder; namespace Identity.Extensions.Infrastructure; -using System.Net; -using Microsoft.IdentityModel.Logging; +using Configurations; public static class IdentityServerExtensions { - public static IServiceCollection AddCustomIdentityServer(this IServiceCollection services, IWebHostEnvironment env) + public static WebApplicationBuilder AddCustomIdentityServer(this WebApplicationBuilder builder) { - services.AddIdentity(config => + builder.Services.AddValidateOptions(); + var authOptions = builder.Services.GetOptions(nameof(AuthOptions)); + + builder.Services.AddIdentity(config => { config.Password.RequiredLength = 6; config.Password.RequireDigit = false; @@ -23,12 +26,13 @@ public static class IdentityServerExtensions .AddEntityFrameworkStores() .AddDefaultTokenProviders(); - var identityServerBuilder = services.AddIdentityServer(options => + var identityServerBuilder = builder.Services.AddIdentityServer(options => { options.Events.RaiseErrorEvents = true; options.Events.RaiseInformationEvents = true; options.Events.RaiseFailureEvents = true; options.Events.RaiseSuccessEvents = true; + options.IssuerUri = authOptions.IssuerUri; }) .AddInMemoryIdentityResources(Config.IdentityResources) .AddInMemoryApiResources(Config.ApiResources) @@ -38,8 +42,8 @@ public static class IdentityServerExtensions .AddResourceOwnerValidator(); //ref: https://documentation.openiddict.com/configuration/encryption-and-signing-credentials.html - // identityServerBuilder.AddDeveloperSigningCredential(); + identityServerBuilder.AddDeveloperSigningCredential(); - return services; + return builder; } } diff --git a/src/Services/Identity/src/Identity/Extensions/Infrastructure/InfrastructureExtensions.cs b/src/Services/Identity/src/Identity/Extensions/Infrastructure/InfrastructureExtensions.cs index b95b896..3691af9 100644 --- a/src/Services/Identity/src/Identity/Extensions/Infrastructure/InfrastructureExtensions.cs +++ b/src/Services/Identity/src/Identity/Extensions/Infrastructure/InfrastructureExtensions.cs @@ -26,6 +26,8 @@ using Serilog; namespace Identity.Extensions.Infrastructure; +using Configurations; + public static class InfrastructureExtensions { public static WebApplicationBuilder AddInfrastructure(this WebApplicationBuilder builder) @@ -74,15 +76,7 @@ public static class InfrastructureExtensions SnowFlakIdGenerator.Configure(4); - builder.Services.AddCustomIdentityServer(env); - - //ref: https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/proxy-load-balancer?view=aspnetcore-7.0&viewFallbackFrom=aspnetcore-2.2 - //ref: https://medium.com/@christopherlenard/identity-server-and-nginx-ingress-controller-in-kubernetes-7146c22a2466 - // builder.Services.Configure(options => - // { - // options.ForwardedHeaders = - // ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto; - // }); + builder.AddCustomIdentityServer(); Microsoft.IdentityModel.Logging.IdentityModelEventSource.ShowPII = true; @@ -95,10 +89,6 @@ public static class InfrastructureExtensions var env = app.Environment; var appOptions = app.GetOptions(nameof(AppOptions)); - //ref: https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/proxy-load-balancer?view=aspnetcore-7.0&viewFallbackFrom=aspnetcore-2.2 - //ref: https://medium.com/@christopherlenard/identity-server-and-nginx-ingress-controller-in-kubernetes-7146c22a2466 - // app.UseForwardedHeaders(); - app.UseProblemDetails(); app.UseSerilogRequestLogging(options => { @@ -113,12 +103,6 @@ public static class InfrastructureExtensions app.MapMetrics(); app.MapGet("/", x => x.Response.WriteAsync(appOptions.Name)); - // - // app.Use((httpContext, next) => - // { - // httpContext.Request.Scheme = "https"; - // return next(); - // }); if (env.IsDevelopment()) { diff --git a/src/Services/Identity/src/Identity/Extensions/Infrastructure/MediatRExtensions.cs b/src/Services/Identity/src/Identity/Extensions/Infrastructure/MediatRExtensions.cs index 3ee8384..9755c96 100644 --- a/src/Services/Identity/src/Identity/Extensions/Infrastructure/MediatRExtensions.cs +++ b/src/Services/Identity/src/Identity/Extensions/Infrastructure/MediatRExtensions.cs @@ -5,6 +5,8 @@ using Microsoft.Extensions.DependencyInjection; namespace Identity.Extensions.Infrastructure; +using Configurations; + public static class MediatRExtensions { public static IServiceCollection AddCustomMediatR(this IServiceCollection services) diff --git a/src/Services/Identity/src/Identity/IdentityRoot.cs b/src/Services/Identity/src/Identity/IdentityRoot.cs deleted file mode 100644 index 05b7694..0000000 --- a/src/Services/Identity/src/Identity/IdentityRoot.cs +++ /dev/null @@ -1,5 +0,0 @@ -namespace Identity; - -public class IdentityRoot -{ -} diff --git a/src/Services/Passenger/Dockerfile b/src/Services/Passenger/Dockerfile index aedfd29..f8809ac 100644 --- a/src/Services/Passenger/Dockerfile +++ b/src/Services/Passenger/Dockerfile @@ -8,7 +8,8 @@ COPY ./src/Services/Passenger/src/Passenger.Api/Passenger.Api.csproj ./Services/ # Restore nuget packages -RUN dotnet restore ./Services/Passenger/src/Passenger.Api/Passenger.Api.csproj +RUN --mount=type=cache,id=passenger_nuget,target=/root/.nuget/packages \ + dotnet restore ./Services/Passenger/src/Passenger.Api/Passenger.Api.csproj # Copy project files COPY ./src/BuildingBlocks ./BuildingBlocks/ @@ -19,13 +20,15 @@ COPY ./src/Services/Passenger/src/Passenger.Api/ ./Services/Passenger/src/Passe # and no restore, as we did it already RUN ls -RUN dotnet build -c Release --no-restore ./Services/Passenger/src/Passenger.Api/Passenger.Api.csproj +RUN --mount=type=cache,id=passenger_nuget,target=/root/.nuget/packages \ + dotnet build -c Release --no-restore ./Services/Passenger/src/Passenger.Api/Passenger.Api.csproj WORKDIR /Services/Passenger/src/Passenger.Api # Publish project to output folder # and no build, as we did it already -RUN dotnet publish -c Release --no-build -o out +RUN --mount=type=cache,id=passenger_nuget,target=/root/.nuget/packages \ + dotnet publish -c Release --no-build -o out FROM mcr.microsoft.com/dotnet/aspnet:7.0 @@ -33,8 +36,11 @@ FROM mcr.microsoft.com/dotnet/aspnet:7.0 WORKDIR / COPY --from=builder /Services/Passenger/src/Passenger.Api/out . -ENV ASPNETCORE_URLS https://*:5012, http://*:6012 +ENV ASPNETCORE_URLS https://*:443, http://*:80 ENV ASPNETCORE_ENVIRONMENT docker +EXPOSE 80 +EXPOSE 443 + ENTRYPOINT ["dotnet", "Passenger.Api.dll"] diff --git a/src/Services/Passenger/src/Passenger.Api/Properties/launchSettings.json b/src/Services/Passenger/src/Passenger.Api/Properties/launchSettings.json index 7b8730a..3093a24 100644 --- a/src/Services/Passenger/src/Passenger.Api/Properties/launchSettings.json +++ b/src/Services/Passenger/src/Passenger.Api/Properties/launchSettings.json @@ -16,7 +16,7 @@ "dotnetRunMessages": true, "launchBrowser": true, "launchUrl": "swagger", - "applicationUrl": "https://localhost:5012;http://localhost:6012", + "applicationUrl": "https://localhost:5012", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/src/Services/Passenger/src/Passenger.Api/appsettings.docker.json b/src/Services/Passenger/src/Passenger.Api/appsettings.docker.json index 3db6315..1f31fea 100644 --- a/src/Services/Passenger/src/Passenger.Api/appsettings.docker.json +++ b/src/Services/Passenger/src/Passenger.Api/appsettings.docker.json @@ -9,9 +9,10 @@ "ConnectionString": "Server=postgres;Port=5432;Database=persist_message;User Id=postgres;Password=postgres;Include Error Detail=true" }, "Jwt": { - "Authority": "http://myidentityserver.com", + "Authority": "http://host.docker.internal:6005", "Audience": "passenger-api", - "RequireHttpsMetadata": false + "RequireHttpsMetadata": false, + "MetadataAddress": "http://host.docker.internal:6005/.well-known/openid-configuration" }, "MongoOptions": { "ConnectionString": "mongodb://mongo:27017",