From 1073d54813a25e1e9c0c41b989c69f77d2aca9cb Mon Sep 17 00:00:00 2001 From: 杨宇千 Date: Mon, 12 Aug 2019 16:24:17 +0800 Subject: Add username format check. --- Timeline/Services/UserService.cs | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'Timeline/Services/UserService.cs') diff --git a/Timeline/Services/UserService.cs b/Timeline/Services/UserService.cs index 50aa4187..0993d3dc 100644 --- a/Timeline/Services/UserService.cs +++ b/Timeline/Services/UserService.cs @@ -278,6 +278,8 @@ namespace Timeline.Services private readonly IJwtService _jwtService; private readonly IPasswordService _passwordService; + private readonly UsernameValidator _usernameValidator; + public UserService(ILogger logger, IMemoryCache memoryCache, DatabaseContext databaseContext, IJwtService jwtService, IPasswordService passwordService) { _logger = logger; @@ -285,6 +287,8 @@ namespace Timeline.Services _databaseContext = databaseContext; _jwtService = jwtService; _passwordService = passwordService; + + _usernameValidator = new UsernameValidator(); } private string GenerateCacheKeyByUserId(long id) => $"user:{id}"; @@ -377,6 +381,11 @@ namespace Timeline.Services if (password == null) throw new ArgumentNullException(nameof(password)); + if (!_usernameValidator.Validate(username, out var message)) + { + throw new UsernameBadFormatException(username, message); + } + var user = await _databaseContext.Users.Where(u => u.Name == username).SingleOrDefaultAsync(); if (user == null) -- cgit v1.2.3