mirror of
https://github.com/bitwarden/server.git
synced 2025-04-18 19:48:12 -05:00
u2f db updates
This commit is contained in:
parent
f7fb99a726
commit
941792bdd8
@ -10,6 +10,7 @@ using System.Linq;
|
|||||||
using U2fLib = U2F.Core.Crypto.U2F;
|
using U2fLib = U2F.Core.Crypto.U2F;
|
||||||
using U2F.Core.Models;
|
using U2F.Core.Models;
|
||||||
using U2F.Core.Exceptions;
|
using U2F.Core.Exceptions;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace Bit.Core.Identity
|
namespace Bit.Core.Identity
|
||||||
{
|
{
|
||||||
@ -80,7 +81,8 @@ namespace Bit.Core.Identity
|
|||||||
Challenge = auth.Challenge,
|
Challenge = auth.Challenge,
|
||||||
KeyHandle = auth.KeyHandle,
|
KeyHandle = auth.KeyHandle,
|
||||||
Version = auth.Version,
|
Version = auth.Version,
|
||||||
UserId = user.Id
|
UserId = user.Id,
|
||||||
|
CreationDate = DateTime.UtcNow
|
||||||
});
|
});
|
||||||
|
|
||||||
challenges.Add(new
|
challenges.Add(new
|
||||||
|
@ -281,13 +281,14 @@ namespace Bit.Core.Services
|
|||||||
public async Task<U2fRegistration> StartU2fRegistrationAsync(User user)
|
public async Task<U2fRegistration> StartU2fRegistrationAsync(User user)
|
||||||
{
|
{
|
||||||
await _u2fRepository.DeleteManyByUserIdAsync(user.Id);
|
await _u2fRepository.DeleteManyByUserIdAsync(user.Id);
|
||||||
var reg = U2fLib.StartRegistration(Utilities.CoreHelpers.U2fAppIdUrl(_globalSettings));
|
var reg = U2fLib.StartRegistration(CoreHelpers.U2fAppIdUrl(_globalSettings));
|
||||||
await _u2fRepository.CreateAsync(new U2f
|
await _u2fRepository.CreateAsync(new U2f
|
||||||
{
|
{
|
||||||
AppId = reg.AppId,
|
AppId = reg.AppId,
|
||||||
Challenge = reg.Challenge,
|
Challenge = reg.Challenge,
|
||||||
Version = reg.Version,
|
Version = reg.Version,
|
||||||
UserId = user.Id
|
UserId = user.Id,
|
||||||
|
CreationDate = DateTime.UtcNow
|
||||||
});
|
});
|
||||||
|
|
||||||
return new U2fRegistration
|
return new U2fRegistration
|
||||||
|
@ -229,5 +229,6 @@
|
|||||||
<Build Include="dbo\Stored Procedures\User_ReadByPremiumRenewal.sql" />
|
<Build Include="dbo\Stored Procedures\User_ReadByPremiumRenewal.sql" />
|
||||||
<Build Include="dbo\Stored Procedures\User_UpdateRenewalReminderDate.sql" />
|
<Build Include="dbo\Stored Procedures\User_UpdateRenewalReminderDate.sql" />
|
||||||
<Build Include="dbo\Stored Procedures\Grant_DeleteExpired.sql" />
|
<Build Include="dbo\Stored Procedures\Grant_DeleteExpired.sql" />
|
||||||
|
<Build Include="dbo\Stored Procedures\U2f_DeleteOld.sql" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
19
src/Sql/dbo/Stored Procedures/U2f_DeleteOld.sql
Normal file
19
src/Sql/dbo/Stored Procedures/U2f_DeleteOld.sql
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
CREATE PROCEDURE [dbo].[U2f_DeleteOld]
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
DECLARE @BatchSize INT = 100
|
||||||
|
DECLARE @Threshold DATETIME2(7) = DATEADD (day, -7, GETUTCDATE())
|
||||||
|
|
||||||
|
WHILE @BatchSize > 0
|
||||||
|
BEGIN
|
||||||
|
DELETE TOP(@BatchSize)
|
||||||
|
FROM
|
||||||
|
[dbo].[U2f]
|
||||||
|
WHERE
|
||||||
|
[CreationDate] < @Threshold
|
||||||
|
|
||||||
|
SET @BatchSize = @@ROWCOUNT
|
||||||
|
END
|
||||||
|
END
|
@ -10,3 +10,13 @@
|
|||||||
CONSTRAINT [FK_U2f_User] FOREIGN KEY ([UserId]) REFERENCES [dbo].[User] ([Id])
|
CONSTRAINT [FK_U2f_User] FOREIGN KEY ([UserId]) REFERENCES [dbo].[User] ([Id])
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
CREATE NONCLUSTERED INDEX [IX_U2f_CreationDate]
|
||||||
|
ON [dbo].[U2f]([CreationDate] ASC)
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
CREATE NONCLUSTERED INDEX [IX_U2f_UserId]
|
||||||
|
ON [dbo].[U2f]([UserId] ASC);
|
||||||
|
|
||||||
|
@ -27,6 +27,26 @@ BEGIN
|
|||||||
END
|
END
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT * FROM sys.indexes WHERE [Name]='IX_U2f_CreationDate'
|
||||||
|
AND object_id = OBJECT_ID('[dbo].[U2f]')
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
CREATE NONCLUSTERED INDEX [IX_U2f_CreationDate]
|
||||||
|
ON [dbo].[U2f]([CreationDate] ASC)
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT * FROM sys.indexes WHERE [Name]='IX_U2f_UserId'
|
||||||
|
AND object_id = OBJECT_ID('[dbo].[U2f]')
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
CREATE NONCLUSTERED INDEX [IX_U2f_UserId]
|
||||||
|
ON [dbo].[U2f]([UserId] ASC)
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
IF EXISTS(SELECT * FROM sys.views WHERE [Name] = 'UserView')
|
IF EXISTS(SELECT * FROM sys.views WHERE [Name] = 'UserView')
|
||||||
BEGIN
|
BEGIN
|
||||||
DROP VIEW [dbo].[UserView]
|
DROP VIEW [dbo].[UserView]
|
||||||
@ -41,6 +61,33 @@ FROM
|
|||||||
[dbo].[User]
|
[dbo].[User]
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
IF OBJECT_ID('[dbo].[U2f_DeleteOld]') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
DROP PROCEDURE [dbo].[U2f_DeleteOld]
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE PROCEDURE [dbo].[U2f_DeleteOld]
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
DECLARE @BatchSize INT = 100
|
||||||
|
DECLARE @Threshold DATETIME2(7) = DATEADD (day, -7, GETUTCDATE())
|
||||||
|
|
||||||
|
WHILE @BatchSize > 0
|
||||||
|
BEGIN
|
||||||
|
DELETE TOP(@BatchSize)
|
||||||
|
FROM
|
||||||
|
[dbo].[U2f]
|
||||||
|
WHERE
|
||||||
|
[CreationDate] < @Threshold
|
||||||
|
|
||||||
|
SET @BatchSize = @@ROWCOUNT
|
||||||
|
END
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
IF OBJECT_ID('[dbo].[Grant_DeleteExpired]') IS NOT NULL
|
IF OBJECT_ID('[dbo].[Grant_DeleteExpired]') IS NOT NULL
|
||||||
BEGIN
|
BEGIN
|
||||||
DROP PROCEDURE [dbo].[Grant_DeleteExpired]
|
DROP PROCEDURE [dbo].[Grant_DeleteExpired]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user