Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Duende.AccessTokenManagement" Version="3.2.0" />
<PackageVersion Include="Fhi.Authentication.Extensions" Version="1.0.0-alpha" />
<PackageVersion Include="Fhi.Authentication.Extensions" Version="2.1.0-local2" />
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: Replace with published version before merge!

<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="9.0.8" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.8" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics.Testing" Version="9.6.0" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
using System.Net;
using Fhi.Authentication.OpenIdConnect;
using Fhi.Authentication.Tokens;
using Fhi.HelseIdSelvbetjening.Business.Models;
using Fhi.HelseIdSelvbetjening.Extensions;
using Fhi.HelseIdSelvbetjening.Infrastructure;
using Fhi.HelseIdSelvbetjening.Infrastructure.Selvbetjening;
using Microsoft.Extensions.Logging;
using Microsoft.IdentityModel.Tokens;
Expand All @@ -14,33 +14,29 @@ internal class HelseIdSelvbetjeningService(
ISelvbetjeningApi selvbetjeningApi,
ILogger<HelseIdSelvbetjeningService> logger) : IHelseIdSelvbetjeningService
{
private readonly ITokenService _tokenService = tokenService;
private readonly ISelvbetjeningApi _selvbetjeningApi = selvbetjeningApi;
private readonly ILogger<HelseIdSelvbetjeningService> _logger = logger;

public async Task<ClientSecretUpdateResponse> UpdateClientSecret(ClientConfiguration clientToUpdate, string authority, string baseAddress, string newPublicJwk)
{
_logger.LogInformation("Start updating client {@ClientId} with new key.", clientToUpdate.ClientId);
logger.LogInformation("Start updating client {@ClientId} with new key.", clientToUpdate.ClientId);
var dPoPKey = CreateDPoPKey();
var response = await _tokenService.RequestDPoPToken(authority, clientToUpdate.ClientId, clientToUpdate.Jwk, "nhn:selvbetjening/client", dPoPKey);
var response = await tokenService.RequestDPoPToken(authority, clientToUpdate.ClientId, clientToUpdate.Jwk, "nhn:selvbetjening/client", dPoPKey);
if (!response.IsError && response.AccessToken != null)
{
var (ClientSecretUpdate, ProblemDetail) = await _selvbetjeningApi.UpdateClientSecretsAsync(
var (ClientSecretUpdate, ProblemDetail) = await selvbetjeningApi.UpdateClientSecretsAsync(
baseAddress,
dPoPKey,
response.AccessToken,
newPublicJwk);

if (ProblemDetail != null)
{
_logger.LogError("Failed to update client {@ClientId}. Error: {@ProblemDetail}", clientToUpdate.ClientId, ProblemDetail.Detail);
logger.LogError("Failed to update client {@ClientId}. Error: {@ProblemDetail}", clientToUpdate.ClientId, ProblemDetail.Detail);
return new ClientSecretUpdateResponse(HttpStatusCode.BadRequest, ProblemDetail.Detail);
}
//TODO: improve response with IResult. Should not serialize output
return new ClientSecretUpdateResponse(HttpStatusCode.OK, ClientSecretUpdate?.Serialize());
}

_logger.LogError("Could not update client {@ClientId}. Error: {@Message}", clientToUpdate.ClientId, response.ErrorDescription);
logger.LogError("Could not update client {@ClientId}. Error: {@Message}", clientToUpdate.ClientId, response.ErrorDescription);
return new(null, response.ErrorDescription);
}

Expand All @@ -51,7 +47,7 @@ public async Task<IResult<ClientSecretExpirationResponse, ErrorResult>> ReadClie
return new Error<ClientSecretExpirationResponse, ErrorResult>(errorResult);

var dPoPKey = CreateDPoPKey();
var response = await _tokenService.RequestDPoPToken(
var response = await tokenService.RequestDPoPToken(
authority,
clientConfiguration.ClientId,
clientConfiguration.Jwk,
Expand All @@ -64,7 +60,7 @@ public async Task<IResult<ClientSecretExpirationResponse, ErrorResult>> ReadClie
return new Error<ClientSecretExpirationResponse, ErrorResult>(errorResult);
}

var (ClientSecrets, ProblemDetail) = await _selvbetjeningApi.GetClientSecretsAsync(baseAddress, dPoPKey, response.AccessToken);
var (ClientSecrets, ProblemDetail) = await selvbetjeningApi.GetClientSecretsAsync(baseAddress, dPoPKey, response.AccessToken);
if (ProblemDetail != null)
{
errorResult.AddError($"Failed to read client secret expiration: {ProblemDetail.Detail}");
Expand Down
85 changes: 0 additions & 85 deletions src/Fhi.HelseId.Selvbetjening/Extensions/DPoPProofGenerator.cs

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Duende.IdentityModel.Client;
using Fhi.Authentication.Tokens;

namespace Fhi.HelseIdSelvbetjening.Extensions
{
Expand Down
96 changes: 0 additions & 96 deletions src/Fhi.HelseId.Selvbetjening/Infrastructure/TokenService.cs

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
using Fhi.Authentication.OpenIdConnect;
using Fhi.HelseIdSelvbetjening.Business;
using Fhi.HelseIdSelvbetjening.Infrastructure;
using Fhi.HelseIdSelvbetjening.Infrastructure.Selvbetjening;
using Microsoft.Extensions.DependencyInjection;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
using Fhi.HelseIdSelvbetjening.CLI.Commands.UpdateClientKey;
using Fhi.HelseIdSelvbetjening.CLI.IntegrationTests.Setup;
using Fhi.HelseIdSelvbetjening.Infrastructure;
using Fhi.HelseIdSelvbetjening.Infrastructure.Selvbetjening;
using Fhi.HelseIdSelvbetjening.Infrastructure.Selvbetjening.Dtos;
using Fhi.HelseIdSelvbetjening.UnitTests.Setup;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Testing;
using NSubstitute;
using System.CommandLine;
using Fhi.Authentication.OpenIdConnect;

namespace Fhi.HelseIdSelvbetjening.CLI.IntegrationTests
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
using Fhi.HelseIdSelvbetjening.Business;
using Fhi.HelseIdSelvbetjening.CLI.Commands.ReadClientSecretExpiration;
using Fhi.HelseIdSelvbetjening.CLI.IntegrationTests.Setup;
using Fhi.HelseIdSelvbetjening.Infrastructure;
using Fhi.HelseIdSelvbetjening.Infrastructure.Selvbetjening.Dtos;
using Fhi.HelseIdSelvbetjening.UnitTests.Setup;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Testing;
using System.CommandLine;
using System.CommandLine.Parsing;
using Fhi.Authentication.OpenIdConnect;

namespace Fhi.HelseIdSelvbetjening.CLI.IntegrationTests
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
using Fhi.Authentication.OpenIdConnect;
using Fhi.HelseIdSelvbetjening.Business.Models;
using Fhi.HelseIdSelvbetjening.Infrastructure;
using Fhi.HelseIdSelvbetjening.UnitTests.Setup;
using ClientSecretDto = Fhi.HelseIdSelvbetjening.Infrastructure.Selvbetjening.Dtos.ClientSecret;

namespace Fhi.HelseIdSelvbetjening.UnitTests.Services
namespace Fhi.HelseIdSelvbetjening.UnitTests.Business
{
public class ReadClientSecretExpirationTests
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
using Fhi.Authentication.OpenIdConnect;
using Fhi.HelseIdSelvbetjening.Business.Models;
using Fhi.HelseIdSelvbetjening.Infrastructure;
using Fhi.HelseIdSelvbetjening.UnitTests.Setup;
using Microsoft.Extensions.Logging;
using NSubstitute;

namespace Fhi.HelseIdSelvbetjening.UnitTests.Services
namespace Fhi.HelseIdSelvbetjening.UnitTests.Business
{
public class UpdateClientSecretTests
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using Fhi.HelseIdSelvbetjening.Infrastructure;
using Fhi.Authentication.OpenIdConnect;
using Fhi.HelseIdSelvbetjening.UnitTests.Setup;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using Fhi.Authentication.OpenIdConnect;
using Fhi.HelseIdSelvbetjening.Business;
using Fhi.HelseIdSelvbetjening.Business.Models;
using Fhi.HelseIdSelvbetjening.Infrastructure;
using Fhi.HelseIdSelvbetjening.Infrastructure.Selvbetjening;
using Fhi.HelseIdSelvbetjening.Infrastructure.Selvbetjening.Dtos;
using Microsoft.Extensions.Logging;
Expand Down
Loading