1
0
mirror of https://github.com/bitwarden/server.git synced 2025-01-24 22:11:24 +01:00
bitwarden-server/src/Core/Tokens/Token.cs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

37 lines
872 B
C#
Raw Normal View History

using Microsoft.AspNetCore.DataProtection;
namespace Bit.Core.Tokens;
2022-08-29 22:06:55 +02:00
public class Token
{
private readonly string _token;
2022-08-29 22:06:55 +02:00
public Token(string token)
{
_token = token;
2022-08-29 22:06:55 +02:00
}
public Token WithPrefix(string prefix)
{
return new Token($"{prefix}{_token}");
}
public Token RemovePrefix(string expectedPrefix)
2022-08-29 22:06:55 +02:00
{
if (!_token.StartsWith(expectedPrefix))
{
throw new BadTokenException($"Expected prefix, {expectedPrefix}, was not present.");
}
return new Token(_token[expectedPrefix.Length..]);
}
public Token ProtectWith(IDataProtector dataProtector) =>
new(dataProtector.Protect(ToString()));
public Token UnprotectWith(IDataProtector dataProtector) =>
new(dataProtector.Unprotect(ToString()));
public override string ToString() => _token;
}