mirror of
https://github.com/bitwarden/server.git
synced 2024-11-25 12:45:18 +01:00
[PM-1675] Timeout or transient error when verifying domains (#2835)
* Increased timeout of the dns resolve method and changed the lifetime of the dnsResolverService to scoped * Reverted to using singleton as this was recommneded on the docs and also registered lookup client as a singleton * Registerered a singleton service of ILookupClient * replaced unused serviceProvider with a discard
This commit is contained in:
parent
49f15d8cc1
commit
53b9d52125
@ -60,7 +60,8 @@ public class VerifyOrganizationDomainCommand : IVerifyOrganizationDomainCommand
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError("Error verifying Organization domain. {errorMessage}", e.Message);
|
||||
_logger.LogError("Error verifying Organization domain: {domain}. {errorMessage}",
|
||||
domain.DomainName, e.Message);
|
||||
}
|
||||
|
||||
domain.SetLastCheckedDate();
|
||||
|
@ -5,10 +5,15 @@ namespace Bit.Core.Services;
|
||||
|
||||
public class DnsResolverService : IDnsResolverService
|
||||
{
|
||||
private readonly ILookupClient _client;
|
||||
|
||||
public DnsResolverService(ILookupClient client)
|
||||
{
|
||||
_client = client;
|
||||
}
|
||||
public async Task<bool> ResolveAsync(string domain, string txtRecord, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var lookup = new LookupClient();
|
||||
var result = await lookup.QueryAsync(new DnsQuestion(domain, QueryType.TXT), cancellationToken);
|
||||
var result = await _client.QueryAsync(new DnsQuestion(domain, QueryType.TXT), cancellationToken);
|
||||
if (!result.HasError)
|
||||
{
|
||||
return result.Answers.TxtRecords()
|
||||
|
@ -19,6 +19,7 @@ using Bit.Core.Utilities;
|
||||
using Bit.Core.Vault.Services;
|
||||
using Bit.Infrastructure.Dapper;
|
||||
using Bit.Infrastructure.EntityFramework;
|
||||
using DnsClient;
|
||||
using IdentityModel;
|
||||
using IdentityServer4.AccessTokenValidation;
|
||||
using IdentityServer4.Configuration;
|
||||
@ -176,6 +177,11 @@ public static class ServiceCollectionExtensions
|
||||
services.AddSingleton<IStripeSyncService, StripeSyncService>();
|
||||
services.AddSingleton<IMailService, HandlebarsMailService>();
|
||||
services.AddSingleton<ILicensingService, LicensingService>();
|
||||
services.AddSingleton<ILookupClient>(_ =>
|
||||
{
|
||||
var options = new LookupClientOptions { Timeout = TimeSpan.FromSeconds(15) };
|
||||
return new LookupClient(options);
|
||||
});
|
||||
services.AddSingleton<IDnsResolverService, DnsResolverService>();
|
||||
services.AddSingleton<IFeatureService, LaunchDarklyFeatureService>();
|
||||
services.AddTokenizers();
|
||||
|
Loading…
Reference in New Issue
Block a user