Added API token functionality
This commit is contained in:
@@ -58,13 +58,13 @@ public class AuthLogicTests {
|
||||
tokens
|
||||
.Setup(t => t.CreateToken(It.Is<int>(t => t == Token.RefreshTokenType), It.IsAny<User>()))
|
||||
.ReturnsAsync(new Token {
|
||||
Content = _refreshToken,
|
||||
TokenId = _refreshToken,
|
||||
Type = Token.RefreshTokenType
|
||||
});
|
||||
tokens
|
||||
.Setup(t => t.CreateToken(It.Is<int>(t => t == Token.AccessTokenType), It.IsAny<User>()))
|
||||
.ReturnsAsync(new Token {
|
||||
Content = _accessToken,
|
||||
TokenId = _accessToken,
|
||||
Type = Token.AccessTokenType
|
||||
});
|
||||
tokens
|
||||
@@ -229,11 +229,11 @@ public class AuthLogicTests {
|
||||
// Arrange
|
||||
var token = new Token {
|
||||
Type = Token.RefreshTokenType,
|
||||
Content = _refreshToken,
|
||||
TokenId = _refreshToken,
|
||||
CreatedAt = DateTime.Now,
|
||||
Owner = CreateDummyUser()
|
||||
};
|
||||
var (auth, context) = SetupEnvironment(true, token, token.Content.ToString());
|
||||
var (auth, context) = SetupEnvironment(true, token, token.TokenId.ToString());
|
||||
|
||||
// Act
|
||||
var result = await auth.Authenticate();
|
||||
@@ -277,11 +277,11 @@ public class AuthLogicTests {
|
||||
// Arrange
|
||||
var token = new Token {
|
||||
Type = Token.AccessTokenType,
|
||||
Content = _refreshToken,
|
||||
TokenId = _refreshToken,
|
||||
CreatedAt = DateTime.Now,
|
||||
Owner = CreateDummyUser()
|
||||
};
|
||||
var (auth, context) = SetupEnvironment(true, token, token.Content.ToString());
|
||||
var (auth, context) = SetupEnvironment(true, token, token.TokenId.ToString());
|
||||
|
||||
// Act
|
||||
var result = await auth.Authenticate();
|
||||
@@ -297,11 +297,11 @@ public class AuthLogicTests {
|
||||
// Arrange
|
||||
var token = new Token {
|
||||
Type = Token.RefreshTokenType,
|
||||
Content = _refreshToken,
|
||||
TokenId = _refreshToken,
|
||||
CreatedAt = DateTime.MinValue,
|
||||
Owner = CreateDummyUser()
|
||||
};
|
||||
var (auth, context) = SetupEnvironment(true, token, token.Content.ToString());
|
||||
var (auth, context) = SetupEnvironment(true, token, token.TokenId.ToString());
|
||||
|
||||
// Act
|
||||
var result = await auth.Authenticate();
|
||||
|
||||
@@ -14,7 +14,7 @@ public class TokenRepositoryTests {
|
||||
|
||||
for (int i = 0; i < count; i++) {
|
||||
await context.Tokens.AddAsync(new() {
|
||||
Content = Guid.NewGuid(),
|
||||
TokenId = Guid.NewGuid(),
|
||||
Owner = CreateTestUser(),
|
||||
Type = Token.AccessTokenType
|
||||
});
|
||||
@@ -37,7 +37,7 @@ public class TokenRepositoryTests {
|
||||
var token = context.Tokens.First();
|
||||
|
||||
// Act
|
||||
var result = await repo.GetToken(token.Content.ToString());
|
||||
var result = await repo.GetToken(token.TokenId.ToString());
|
||||
|
||||
// Assert
|
||||
Assert.Equal(token, result);
|
||||
@@ -64,12 +64,12 @@ public class TokenRepositoryTests {
|
||||
var user = CreateTestUser();
|
||||
await context.Tokens.AddRangeAsync(new List<Token> {
|
||||
new() {
|
||||
Content = Guid.NewGuid(),
|
||||
TokenId = Guid.NewGuid(),
|
||||
Owner = user,
|
||||
Type = Token.AccessTokenType
|
||||
},
|
||||
new() {
|
||||
Content = Guid.NewGuid(),
|
||||
TokenId = Guid.NewGuid(),
|
||||
Owner = user,
|
||||
Type = Token.RefreshTokenType
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ public class AuthenticationTests {
|
||||
|
||||
var provideCorrectToken = correctToken is null;
|
||||
correctToken ??= new Token {
|
||||
Content = Guid.NewGuid(),
|
||||
TokenId = Guid.NewGuid(),
|
||||
CreatedAt = DateTime.Now,
|
||||
Type = Token.AccessTokenType,
|
||||
Owner = new User {
|
||||
@@ -39,7 +39,7 @@ public class AuthenticationTests {
|
||||
};
|
||||
|
||||
tokens
|
||||
.Setup(x => x.GetToken(It.Is<string>(t => t == correctToken.Content.ToString())))
|
||||
.Setup(x => x.GetToken(It.Is<string>(t => t == correctToken.TokenId.ToString())))
|
||||
.ReturnsAsync(correctToken);
|
||||
|
||||
perms
|
||||
@@ -49,7 +49,7 @@ public class AuthenticationTests {
|
||||
var auth = new HopFrameAuthentication(options.Object, logger.Object, encoder.Object, clock.Object, tokens.Object, perms.Object, new OptionsWrapper<HopFrameAuthenticationOptions>(new HopFrameAuthenticationOptions()));
|
||||
var context = new DefaultHttpContext();
|
||||
if (provideCorrectToken)
|
||||
context.HttpContext.Request.Headers.Append(HopFrameAuthentication.SchemeName, correctToken.Content.ToString());
|
||||
context.HttpContext.Request.Headers.Append(HopFrameAuthentication.SchemeName, correctToken.TokenId.ToString());
|
||||
if (providedToken is not null)
|
||||
context.HttpContext.Request.Headers.Append(HopFrameAuthentication.SchemeName, providedToken);
|
||||
|
||||
@@ -101,12 +101,12 @@ public class AuthenticationTests {
|
||||
public async Task Authentication_With_ExpiredToken_Should_Fail() {
|
||||
// Arrange
|
||||
var token = new Token {
|
||||
Content = Guid.NewGuid(),
|
||||
TokenId = Guid.NewGuid(),
|
||||
CreatedAt = DateTime.MinValue,
|
||||
Type = Token.AccessTokenType,
|
||||
Owner = new User()
|
||||
};
|
||||
var auth = await SetupEnvironment(token, token.Content.ToString());
|
||||
var auth = await SetupEnvironment(token, token.TokenId.ToString());
|
||||
|
||||
// Act
|
||||
var result = await auth.AuthenticateAsync();
|
||||
@@ -121,12 +121,12 @@ public class AuthenticationTests {
|
||||
public async Task Authentication_With_UnownedToken_Should_Fail() {
|
||||
// Arrange
|
||||
var token = new Token {
|
||||
Content = Guid.NewGuid(),
|
||||
TokenId = Guid.NewGuid(),
|
||||
CreatedAt = DateTime.Now,
|
||||
Type = Token.AccessTokenType,
|
||||
Owner = null
|
||||
};
|
||||
var auth = await SetupEnvironment(token, token.Content.ToString());
|
||||
var auth = await SetupEnvironment(token, token.TokenId.ToString());
|
||||
|
||||
// Act
|
||||
var result = await auth.AuthenticateAsync();
|
||||
|
||||
@@ -61,7 +61,7 @@ public class AuthMiddlewareTests {
|
||||
public async Task InvokeAsync_With_InvalidLoginValidToken_Should_Succeed() {
|
||||
// Arrange
|
||||
var token = new Token {
|
||||
Content = Guid.NewGuid(),
|
||||
TokenId = Guid.NewGuid(),
|
||||
CreatedAt = DateTime.Now,
|
||||
Type = Token.AccessTokenType,
|
||||
Owner = CreateDummyUser()
|
||||
@@ -74,7 +74,7 @@ public class AuthMiddlewareTests {
|
||||
|
||||
// Assert
|
||||
Assert.Equal(token.Owner.Id.ToString(), context.User.FindFirstValue(HopFrameClaimTypes.UserId));
|
||||
Assert.Equal(token.Content.ToString(), context.User.FindFirstValue(HopFrameClaimTypes.AccessTokenId));
|
||||
Assert.Equal(token.TokenId.ToString(), context.User.FindFirstValue(HopFrameClaimTypes.AccessTokenId));
|
||||
Assert.Equal(token.Owner.Permissions.First().PermissionName, context.User.FindFirstValue(HopFrameClaimTypes.Permission));
|
||||
}
|
||||
|
||||
|
||||
@@ -47,13 +47,13 @@ public class AuthServiceTests {
|
||||
tokens
|
||||
.Setup(t => t.CreateToken(It.Is<int>(t => t == Token.RefreshTokenType), It.IsAny<User>()))
|
||||
.ReturnsAsync(new Token {
|
||||
Content = _refreshToken,
|
||||
TokenId = _refreshToken,
|
||||
Type = Token.RefreshTokenType
|
||||
});
|
||||
tokens
|
||||
.Setup(t => t.CreateToken(It.Is<int>(t => t == Token.AccessTokenType), It.IsAny<User>()))
|
||||
.ReturnsAsync(new Token {
|
||||
Content = _accessToken,
|
||||
TokenId = _accessToken,
|
||||
Type = Token.AccessTokenType
|
||||
});
|
||||
tokens
|
||||
@@ -171,18 +171,18 @@ public class AuthServiceTests {
|
||||
// Arrange
|
||||
var token = new Token {
|
||||
Type = Token.RefreshTokenType,
|
||||
Content = _refreshToken,
|
||||
TokenId = _refreshToken,
|
||||
CreatedAt = DateTime.Now,
|
||||
Owner = CreateDummyUser()
|
||||
};
|
||||
var (service, context) = SetupEnvironment(true, token, token.Content.ToString());
|
||||
var (service, context) = SetupEnvironment(true, token, token.TokenId.ToString());
|
||||
|
||||
// Act
|
||||
var result = await service.RefreshLogin();
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(result);
|
||||
Assert.Equal(_accessToken, result.Content);
|
||||
Assert.Equal(_accessToken, result.TokenId);
|
||||
Assert.Equal(_accessToken.ToString(), context.Response.Headers.FindCookie(ITokenContext.AccessTokenType));
|
||||
}
|
||||
|
||||
@@ -217,11 +217,11 @@ public class AuthServiceTests {
|
||||
// Arrange
|
||||
var token = new Token {
|
||||
Type = Token.AccessTokenType,
|
||||
Content = _refreshToken,
|
||||
TokenId = _refreshToken,
|
||||
CreatedAt = DateTime.Now,
|
||||
Owner = CreateDummyUser()
|
||||
};
|
||||
var (service, context) = SetupEnvironment(true, token, token.Content.ToString());
|
||||
var (service, context) = SetupEnvironment(true, token, token.TokenId.ToString());
|
||||
|
||||
// Act
|
||||
var result = await service.RefreshLogin();
|
||||
@@ -236,11 +236,11 @@ public class AuthServiceTests {
|
||||
// Arrange
|
||||
var token = new Token {
|
||||
Type = Token.RefreshTokenType,
|
||||
Content = _refreshToken,
|
||||
TokenId = _refreshToken,
|
||||
CreatedAt = DateTime.MinValue,
|
||||
Owner = CreateDummyUser()
|
||||
};
|
||||
var (service, context) = SetupEnvironment(true, token, token.Content.ToString());
|
||||
var (service, context) = SetupEnvironment(true, token, token.TokenId.ToString());
|
||||
|
||||
// Act
|
||||
var result = await service.RefreshLogin();
|
||||
@@ -255,7 +255,7 @@ public class AuthServiceTests {
|
||||
// Arrange
|
||||
var token = new Token {
|
||||
Type = Token.AccessTokenType,
|
||||
Content = _accessToken,
|
||||
TokenId = _accessToken,
|
||||
CreatedAt = DateTime.Now,
|
||||
Owner = CreateDummyUser()
|
||||
};
|
||||
@@ -285,7 +285,7 @@ public class AuthServiceTests {
|
||||
// Arrange
|
||||
var token = new Token {
|
||||
Type = Token.RefreshTokenType,
|
||||
Content = _accessToken,
|
||||
TokenId = _accessToken,
|
||||
CreatedAt = DateTime.Now,
|
||||
Owner = CreateDummyUser()
|
||||
};
|
||||
@@ -303,7 +303,7 @@ public class AuthServiceTests {
|
||||
// Arrange
|
||||
var token = new Token {
|
||||
Type = Token.AccessTokenType,
|
||||
Content = _accessToken,
|
||||
TokenId = _accessToken,
|
||||
CreatedAt = DateTime.MinValue,
|
||||
Owner = CreateDummyUser()
|
||||
};
|
||||
@@ -321,7 +321,7 @@ public class AuthServiceTests {
|
||||
// Arrange
|
||||
var token = new Token {
|
||||
Type = Token.AccessTokenType,
|
||||
Content = _accessToken,
|
||||
TokenId = _accessToken,
|
||||
CreatedAt = DateTime.Now,
|
||||
Owner = null
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user