diff --git a/IRaCIS.Core.API/Controllers/ExtraController.cs b/IRaCIS.Core.API/Controllers/ExtraController.cs index 97804aa3e..95fba4ab5 100644 --- a/IRaCIS.Core.API/Controllers/ExtraController.cs +++ b/IRaCIS.Core.API/Controllers/ExtraController.cs @@ -32,6 +32,7 @@ using IRaCIS.Core.Application.Contracts; using LoginReturnDTO = IRaCIS.Application.Contracts.LoginReturnDTO; using DocumentFormat.OpenXml.Spreadsheet; using AutoMapper.QueryableExtensions; +using NetTopologySuite.Algorithm; namespace IRaCIS.Api.Controllers { @@ -108,7 +109,7 @@ namespace IRaCIS.Api.Controllers { //MFA 邮箱验证 前端传递用户Id 和MFACode - if (loginUser.UserId != null && _verifyConfig.CurrentValue.OpenLoginMFA) + if (loginUser.UserId != null && _verifyConfig.CurrentValue.OpenLoginMFA) { Guid userId = (Guid)loginUser.UserId; @@ -226,23 +227,7 @@ namespace IRaCIS.Api.Controllers var email = returnModel.Data.BasicInfo.EMail; - #region 隐藏Email - // 找到 "@" 符号的位置 - int atIndex = email.IndexOf('@'); - - // 替换 "@" 符号前的中间两位为星号 - string visiblePart = email.Substring(0, atIndex); - - int startIndex = (visiblePart.Length - 2) / 2; - - // 替换中间两位字符为星号 - string hiddenPartBeforeAt = visiblePart.Substring(0, startIndex) + "**" + visiblePart.Substring(startIndex + 2); - - string afterAt = email.Substring(atIndex + 1); - - // 组合隐藏和可见部分 - string hiddenEmail = hiddenPartBeforeAt + "@" + afterAt; - #endregion + var hiddenEmail = EmailMaskHelper.MaskEmail(email); returnModel.Data.BasicInfo.EMail = hiddenEmail; diff --git a/IRaCIS.Core.API/appsettings.US_Prod_IRC.json b/IRaCIS.Core.API/appsettings.US_Prod_IRC.json index 0c7ed8158..238ba0e24 100644 --- a/IRaCIS.Core.API/appsettings.US_Prod_IRC.json +++ b/IRaCIS.Core.API/appsettings.US_Prod_IRC.json @@ -15,18 +15,6 @@ "ObjectStoreService": { "ObjectStoreUse": "AWS", - "AliyunOSS": { - "regionId": "cn-shanghai", - "internalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com", - "endPoint": "https://oss-cn-shanghai.aliyuncs.com", - "accessKeyId": "", - "accessKeySecret": "", - "bucketName": "zy-irc-test-store", - "roleArn": "acs:ram::1899121822495495:role/oss-upload", - "viewEndpoint": "https://zy-irc-test-store.oss-cn-shanghai.aliyuncs.com", - "region": "oss-cn-shanghai" - }, - "MinIO": { "endPoint": "44.210.231.169", "port": "9001", @@ -59,11 +47,14 @@ "LoginMaxFailCount": 5, "LoginFailLockMinutes": 30, + "AutoLoginOutMinutes": 60, "ContinuousReadingTimeMin": 120, - "ReadingRestTimeMin": 10 + "ReadingRestTimeMin": 10, + + "OpenLoginMFA": false }, "SystemEmailSendConfig": { diff --git a/IRaCIS.Core.API/appsettings.US_Uat_IRC.json b/IRaCIS.Core.API/appsettings.US_Uat_IRC.json index 3b1145668..8697adda1 100644 --- a/IRaCIS.Core.API/appsettings.US_Uat_IRC.json +++ b/IRaCIS.Core.API/appsettings.US_Uat_IRC.json @@ -10,36 +10,24 @@ "RemoteNew": "Server=us-mssql-service,1433;Database=US_Uat_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true", "Hangfire": "Server=us-mssql-service,1433;Database=US_Uat_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true" - //"RemoteNew": "Server=44.218.11.19,1435;Database=Prod_US_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true", - //"Hangfire": "Server=44.218.11.19,1435;Database=Prod_US_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true" + //"RemoteNew": "Server=3.226.182.187,1435;Database=US_Uat_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true", + //"Hangfire": "Server=3.226.182.187,1435;Database=US_Uat_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true" }, "ObjectStoreService": { "ObjectStoreUse": "AWS", - "AliyunOSS": { - "regionId": "cn-shanghai", - "internalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com", - "endPoint": "https://oss-cn-shanghai.aliyuncs.com", - "accessKeyId": "LTAI5tKvzs7ed3UfSpNk3xwQ", - "accessKeySecret": "zTIceGEShlZDGnLrCFfIGFE7TXVRio", - "bucketName": "zy-irc-test-store", - "roleArn": "acs:ram::1899121822495495:role/oss-upload", - "viewEndpoint": "https://zy-irc-test-store.oss-cn-shanghai.aliyuncs.com", - "region": "oss-cn-shanghai" - }, - "MinIO": { - "endPoint": "hir-oss.us.extimaging.com", - "port": "443", - "useSSL": true, - "viewEndpoint": "https://hir-oss.us.extimaging.com/uat-irc-us", + //"endPoint": "hir-minio.uat.elevateimaging.ai", + //"port": "443", + //"useSSL": true, + //"viewEndpoint": "https://hir-minio.uat.elevateimaging.ai/uat-irc-us", - // "endPoint": "44.218.11.19", - // "port": "9001", - // "useSSL": false, - // "viewEndpoint": "http://44.218.11.19:9001/uat-irc-us", + "endPoint": "3.226.182.187", + "port": "9001", + "useSSL": false, + "viewEndpoint": "http://44.218.11.19:9001/uat-irc-us", "accessKey": "lH8DkKskLuDqPaiubuSQ", "secretKey": "pdPdicvvLeH7xAC5yFUrI7odMyBfOXxvVWMvKYV4", @@ -50,10 +38,10 @@ "AWS": { "endPoint": "s3.us-east-1.amazonaws.com", "useSSL": true, - "accessKey": "AKIAZQ3DRSOHFPJJ6FEU", - "secretKey": "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", - "bucketName": "ei-irc-test-store", - "viewEndpoint": "https://ei-irc-test-store.s3.amazonaws.com/" + "accessKey": "AKIAW3MEAFJXUO6XYFYN", + "secretKey": "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", + "bucketName": "ei-med-s3-lili-uat-store", + "viewEndpoint": "https://ei-med-s3-lili-uat-store.s3.amazonaws.com/" } }, "BasicSystemConfig": { @@ -73,7 +61,9 @@ "ContinuousReadingTimeMin": 120, - "ReadingRestTimeMin": 10 + "ReadingRestTimeMin": 10, + + "OpenLoginMFA": true }, "SystemEmailSendConfig": { diff --git a/IRaCIS.Core.Application/Helper/EmailMaskHelper.cs b/IRaCIS.Core.Application/Helper/EmailMaskHelper.cs new file mode 100644 index 000000000..027c74523 --- /dev/null +++ b/IRaCIS.Core.Application/Helper/EmailMaskHelper.cs @@ -0,0 +1,44 @@ +using NPOI.SS.Formula.Functions; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IRaCIS.Core.Application.Helper +{ + public static class EmailMaskHelper + { + + //显示位数:3分之2的位数,向上取整 + //取哪几个个值:最后一位和前面几位 + //其他:3个***。 + //比如:hlj23@126.com + //为:hlj***3@126.com + + //he@126.com + //为:h*** e@126.com + + public static string MaskEmail(string email) + { + + // 找到 "@" 符号的位置 + int atIndex = email.IndexOf('@'); + + string visiblePartBefore = email.Substring(0, atIndex); + + string afterAt = email.Substring(atIndex + 1); + + int visibleLength = (int)Math.Ceiling((double)visiblePartBefore.Length * 2 / 3); + + // 替换中间两位字符为星号 + string hiddenPartBeforeAt = visiblePartBefore.Substring(0, visibleLength - 1) + "***" + visiblePartBefore.Last(); + + + // 组合隐藏和可见部分 + string hiddenEmail = hiddenPartBeforeAt + "@" + afterAt; + + return hiddenEmail; + } + } +} diff --git a/IRaCIS.Core.Application/Service/Management/UserService.cs b/IRaCIS.Core.Application/Service/Management/UserService.cs index 51284fa01..9c455dbf4 100644 --- a/IRaCIS.Core.Application/Service/Management/UserService.cs +++ b/IRaCIS.Core.Application/Service/Management/UserService.cs @@ -18,6 +18,7 @@ using LoginReturnDTO = IRaCIS.Application.Contracts.LoginReturnDTO; using IRaCIS.Core.Application.Auth; using BeetleX.Redis.Commands; using IRaCIS.Core.Domain.Models; +using IRaCIS.Core.Application.Helper; namespace IRaCIS.Application.Services { @@ -667,7 +668,8 @@ namespace IRaCIS.Application.Services await _mailVerificationService.SenMFAVerifyEmail(userId, userInfo.FullName, userInfo.EMail, verificationCode, (UserMFAType)mfaType ); - return ResponseOutput.Ok(); + var hiddenEmail = EmailMaskHelper.MaskEmail(userInfo.EMail); + return ResponseOutput.Ok(hiddenEmail); } /// diff --git a/IRaCIS.Core.Application/TestService.cs b/IRaCIS.Core.Application/TestService.cs index 98cd71e87..2a4c7eb64 100644 --- a/IRaCIS.Core.Application/TestService.cs +++ b/IRaCIS.Core.Application/TestService.cs @@ -258,9 +258,12 @@ namespace IRaCIS.Application.Services [AllowAnonymous] - public async Task testwwwww([FromServices] IWebHostEnvironment env) + public async Task testEmail([FromServices] IWebHostEnvironment env ,string email) { - await Task.CompletedTask; + + var hiddenEmail = EmailMaskHelper.MaskEmail(email); + + return hiddenEmail; }