mirror of
https://github.com/bitwarden/server.git
synced 2025-06-06 03:00:36 -05:00

* Initial stubbing out of the phishing service * Add the phishing domain controller * Add changes for the phishing domain get * Add distributed cache to the phishing domain Signed-off-by: Cy Okeke <cokeke@bitwarden.com> * Rename the variable name Signed-off-by: Cy Okeke <cokeke@bitwarden.com> * Removed IPhishingDomainService * Feature/phishing detection cronjob (#5512) * Added caching to EF implementation. Added error handling and logging * Refactored update method to use sqlbulkcopy instead of performing a round trip for each new insert * Initial implementation for quartz job to get list of phishing domains * Updated phishing domain settings to be its own interface * Add phishing domain detection with checksum-based updates * Updated auth for phishing domain endpoints to either require api, or licensing claims to support both web and browser clients, and selfhost api clients * [Innovation Sprint] Updated Phishing domains to rely on blob storage (#5517) * Updated phishing detection data layer to rely on azure blob storage instead of sql server * dotnet format * Took rider refactors * Ensuring phishing.testcategory.com exists to test against * Added redis to dev's docker-compose * Removed redis from cloud profile * Remove the Authorize attribute * error whitespace fix whitespace formatting * error WHITESPACE: Fix whitespace formatting * Wrapped phishing detection feature behind feature flag (#5532) * Increased timeout for fetching source list a bunch * Removed PhishingDomains policy --------- Signed-off-by: Cy Okeke <cokeke@bitwarden.com> Co-authored-by: Cy Okeke <cokeke@bitwarden.com>
35 lines
993 B
C#
35 lines
993 B
C#
using Bit.Core;
|
|
using Bit.Core.Repositories;
|
|
using Bit.Core.Services;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace Bit.Api.Controllers;
|
|
|
|
[Route("phishing-domains")]
|
|
public class PhishingDomainsController(IPhishingDomainRepository phishingDomainRepository, IFeatureService featureService) : Controller
|
|
{
|
|
[HttpGet]
|
|
public async Task<ActionResult<ICollection<string>>> GetPhishingDomainsAsync()
|
|
{
|
|
if (!featureService.IsEnabled(FeatureFlagKeys.PhishingDetection))
|
|
{
|
|
return NotFound();
|
|
}
|
|
|
|
var domains = await phishingDomainRepository.GetActivePhishingDomainsAsync();
|
|
return Ok(domains);
|
|
}
|
|
|
|
[HttpGet("checksum")]
|
|
public async Task<ActionResult<string>> GetChecksumAsync()
|
|
{
|
|
if (!featureService.IsEnabled(FeatureFlagKeys.PhishingDetection))
|
|
{
|
|
return NotFound();
|
|
}
|
|
|
|
var checksum = await phishingDomainRepository.GetCurrentChecksumAsync();
|
|
return Ok(checksum);
|
|
}
|
|
}
|