From ed176d5fb0c78eaf3f6feca6f1204147b69372ca Mon Sep 17 00:00:00 2001 From: wanggang <76527413@qq.com> Date: Thu, 6 Apr 2023 21:31:09 +0800 Subject: [PATCH] update gateway and cors --- .../TokenService.cs | 32 ++-- .../src/Win_in.Sfs.Auth.Web/AuthWebModule.cs | 4 +- .../Win_in.Sfs.Auth.Web.csproj | 2 +- .../Win_in.Sfs.Wms.Pda.Host/appsettings.json | 2 + .../HostBuilderExtensions.cs | 5 +- .../src/Win_in.Sfs.Shared.Host/ModuleBase.cs | 25 +-- .../apps/be/Web.Gateway/Web.Gateway.dll | Bin 103936 -> 103936 bytes .../apps/be/Web.Gateway/Web.Gateway.pdb | Bin 51216 -> 51276 bytes .../settings/appsettings.Development.json | 165 ++++++++++++++++++ .../wwwroot/settings/appsettings.json | 154 ++++++++++++++++ .../publish/conf/gateway/appsettings.json | 3 +- .../conf/settings/appsettings.Production.json | 2 + .../publish/conf/settings/appsettings.json | 5 +- build/src/docker/publish/docker-compose.yml | 1 + .../publish/supervisord/supervisor.conf | 6 + fe/PC/public/config.js | 2 +- 16 files changed, 367 insertions(+), 41 deletions(-) create mode 100644 build/src/docker/publish/apps/be/Web.Gateway/wwwroot/settings/appsettings.Development.json create mode 100644 build/src/docker/publish/apps/be/Web.Gateway/wwwroot/settings/appsettings.json create mode 100644 build/src/docker/publish/conf/settings/appsettings.Production.json diff --git a/be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Application/TokenService.cs b/be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Application/TokenService.cs index 74ecca68d..b2a84587a 100644 --- a/be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Application/TokenService.cs +++ b/be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Application/TokenService.cs @@ -3,11 +3,10 @@ using System.ComponentModel.DataAnnotations; using System.Net.Http; using System.Threading.Tasks; using IdentityModel.Client; -using IdentityServer4.Models; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; -using Volo.Abp; +using Microsoft.Extensions.Logging; using Volo.Abp.Application.Services; namespace Win_in.Sfs.Auth.Tokens; @@ -17,11 +16,13 @@ public class TokenService : ApplicationService { private readonly IHttpClientFactory _httpClientFactory; private readonly IConfiguration _configuration; + private readonly ILogger _logger; - public TokenService(IHttpClientFactory httpClientFactory, IConfiguration configuration) + public TokenService(IHttpClientFactory httpClientFactory, IConfiguration configuration, ILogger logger) { this._httpClientFactory = httpClientFactory; this._configuration = configuration; + this._logger = logger; } [HttpPost] @@ -37,10 +38,10 @@ public class TokenService : ApplicationService var discovery = await _httpClientFactory.CreateClient().GetDiscoveryDocumentAsync(request).ConfigureAwait(false); var clientId = _configuration["AuthServer:ClientId"]; var clientSecret = _configuration["AuthServer:ClientSecret"]; - Console.WriteLine($"address:{address},TokenEndpoint:{discovery.TokenEndpoint},clientId:{clientId},clientSecret:{clientSecret}"); + this._logger.LogInformation($"address:{address},TokenEndpoint:{discovery.TokenEndpoint},clientId:{clientId},clientSecret:{clientSecret}"); var result = await _httpClientFactory.CreateClient().RequestPasswordTokenAsync(new PasswordTokenRequest { - Address = discovery.TokenEndpoint, + Address = $"{address.TrimEnd('/')}/connect/token", GrantType = "password", ClientId = clientId, ClientSecret = clientSecret, @@ -48,17 +49,26 @@ public class TokenService : ApplicationService Password = model.Password }).ConfigureAwait(false); Console.WriteLine($"Result:${(result.IsError ? result.ErrorDescription : result.AccessToken)}"); - if (result.RefreshToken == null) - { - throw new UserFriendlyException("用户名或密码错误"); - } + //if (result.RefreshToken == null) + //{ + // throw new UserFriendlyException("用户名或密码错误"); + //} - return new JsonResult(new { + return new JsonResult(new + { result.TokenType, result.AccessToken, result.ExpiresIn, result.RefreshToken, - result.Scope }); + result.Scope, + result.HttpStatusCode, + result.Error, + result.HttpErrorReason, + result.ErrorDescription, + result.ErrorType, + result.Exception?.Message, + Exception = result.Exception?.ToString() + }); } [HttpGet("[action]")] diff --git a/be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Web/AuthWebModule.cs b/be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Web/AuthWebModule.cs index b96f281b9..df4f4c611 100644 --- a/be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Web/AuthWebModule.cs +++ b/be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Web/AuthWebModule.cs @@ -10,6 +10,7 @@ using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AspNetCore.Serilog; using Volo.Abp.Autofac; +using Volo.Abp.EntityFrameworkCore.SqlServer; using Volo.Abp.Identity.Web; using Volo.Abp.Modularity; using Volo.Abp.SettingManagement.Web; @@ -52,7 +53,8 @@ namespace Win_in.Sfs.Auth.Web; typeof(StoreApplicationContractsModule), typeof(LabelApplicationContractsModule), typeof(MessageApplicationContractsModule), - typeof(FileStorageApplicationContractsModule) + typeof(FileStorageApplicationContractsModule), + typeof(AbpEntityFrameworkCoreSqlServerModule) )] public class AuthWebModule : ModuleBase { diff --git a/be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Web/Win_in.Sfs.Auth.Web.csproj b/be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Web/Win_in.Sfs.Auth.Web.csproj index 3c37da438..218ac720c 100644 --- a/be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Web/Win_in.Sfs.Auth.Web.csproj +++ b/be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Web/Win_in.Sfs.Auth.Web.csproj @@ -14,7 +14,7 @@ true Win_in.Sfs.Auth-4681b4fd-151f-4221-84a4-929d86723e4c 1.yyyy.Mdd.Hmm - 1.2023.327.1207 + 1.2023.406.2008 True diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/appsettings.json b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/appsettings.json index d0b1693c4..520c2c060 100644 --- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/appsettings.json +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/appsettings.json @@ -1,4 +1,6 @@ { + "ConfigServer": "http://localhost:21093", + "ConfigServer.Docker": "http://gateway:21093", //"AgileConfig": { // "appId": "sfs", // "secret": "sfs", diff --git a/be/Modules/Shared/src/Win_in.Sfs.Shared.Host/HostBuilderExtensions.cs b/be/Modules/Shared/src/Win_in.Sfs.Shared.Host/HostBuilderExtensions.cs index 1e033b63f..5319f16a2 100644 --- a/be/Modules/Shared/src/Win_in.Sfs.Shared.Host/HostBuilderExtensions.cs +++ b/be/Modules/Shared/src/Win_in.Sfs.Shared.Host/HostBuilderExtensions.cs @@ -41,8 +41,8 @@ public static class HostBuilderExtensions var isDocker = Environment.GetEnvironmentVariable("DOTNET_RUNNING_IN_CONTAINER") == "true"; var key = isDocker ? "ConfigServer.Docker" : "ConfigServer"; var configUrl = config.GetValue(key, "http://localhost:21093/").TrimEnd('/') + "/settings/"; - AddJsonByUrl(cb, $"{configUrl}/appsettings.json"); - AddJsonByUrl(cb, $"{configUrl}/appsettings.{builder.Environment.EnvironmentName}.json"); + AddJsonByUrl(cb, $"{configUrl}appsettings.json"); + AddJsonByUrl(cb, $"{configUrl}appsettings.{builder.Environment.EnvironmentName}.json"); if (builder.Environment.IsDevelopment()) { cb.AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), $"appsettings.{builder.Environment.EnvironmentName}.json")); @@ -78,6 +78,7 @@ public static class HostBuilderExtensions private static void AddJsonByUrl(IConfigurationBuilder configurationBuilder, string url) { + Console.WriteLine($"load config form:{url}"); var stream = new HttpClient().GetStreamAsync(url).Result; configurationBuilder.AddJsonStream(stream); } diff --git a/be/Modules/Shared/src/Win_in.Sfs.Shared.Host/ModuleBase.cs b/be/Modules/Shared/src/Win_in.Sfs.Shared.Host/ModuleBase.cs index ec6c15925..0b7689bb8 100644 --- a/be/Modules/Shared/src/Win_in.Sfs.Shared.Host/ModuleBase.cs +++ b/be/Modules/Shared/src/Win_in.Sfs.Shared.Host/ModuleBase.cs @@ -7,7 +7,6 @@ using System.Text.RegularExpressions; using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http.Features; @@ -208,7 +207,7 @@ public abstract class ModuleBase : AbpModule where T : AbpModule app.UseCorrelationId(); app.UseStaticFiles(); app.UseRouting(); - app.UseCors("Default"); + app.UseCors("CorsPolicy"); app.UseAuthentication(); app.UseJwtTokenMiddleware(); app.UseUnitOfWork(); @@ -246,27 +245,9 @@ public abstract class ModuleBase : AbpModule where T : AbpModule Console.WriteLine($"CORS Origins:{string.Concat(origins)}"); ServiceConfigurationContext.Services.AddCors(options => { - //options.AddDefaultPolicy(builder => - //{ - // builder - // .WithOrigins( - // origins - // .Select(o => o.RemovePostFix("/")) - // .ToArray() - // ) - // //.AllowAnyOrigin()//允许所有跨域 - // //.WithAbpExposedHeaders() - // .SetIsOriginAllowedToAllowWildcardSubdomains() - // .AllowAnyHeader() - // .AllowAnyMethod() - // .AllowCredentials();//按配置文件中 跨域 - //}); - options.AddPolicy("Default", builder => + options.AddPolicy("CorsPolicy", builder => { - builder.SetIsOriginAllowed(isOriginAllowed => true) - .AllowAnyMethod() - .AllowAnyHeader() - .AllowCredentials(); + builder.SetIsOriginAllowed(_ => true).AllowAnyMethod().AllowAnyHeader().AllowCredentials(); }); }); } diff --git a/build/src/docker/publish/apps/be/Web.Gateway/Web.Gateway.dll b/build/src/docker/publish/apps/be/Web.Gateway/Web.Gateway.dll index 961cd0322bb71e37e86affa3e99fc11f80b74ad8..5f4083c4a53bee4fb3a9ce43e9d9d03aee1b2e07 100644 GIT binary patch literal 103936 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

m4>OK&ue1|O+!@{gA;3!0l7?8MGJ%-$ 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

{sgCJ%)&_>zdF`$`VPCZ2)_I<#dK^&Gb{0Oc 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 diff --git a/build/src/docker/publish/apps/be/Web.Gateway/Web.Gateway.pdb b/build/src/docker/publish/apps/be/Web.Gateway/Web.Gateway.pdb index 83c73dd426f2ed0ee7f55bcf1c3eb9c30fce1e6a..1751df5ed337b092f402090ff80e4e001cb38d64 100644 GIT binary patch delta 3003 zcmZ9O3v5$m6vxkZ+jZ^wSj#$AHdwn&m|e$UGG23Bz-22_{ zyKP;a?wdMYU5?)sPn7m1k#Q)IULcdF^iexaIhSrU+gPb-^EcEoiYKUG#-1h0U1 z>;g}zd}S%PA^XV>4&;7av|(iSrS_}cZyi$3z3(J4%yl=JO*SG7O}C*rPzhiq^eK^z zyhyA8=-{(A9!!WYM!>BnKocP@lx@83j^Zx6Wrw&rwOkRjN|C6vP0;c-iH^aagRgBD zw5eSp(b3Nzz%yTl|F=V;E1iPwc1l#UOVE3v0_l{HwkUF=RPWc*4h8cJT+wvCF`6zy zSD_owokk-)*JPwcP(_o8UV>IaHPF>Y6V<}M1Fdh0p{-CO)By#Xcu+I#X)@D3=rD8w zItiVH`k+gGnBSqB&^<`kY^E5<0lAtjJH z%4yY6KGe@q^i*pUh143?ZS+N}jSfPmq3h5cwTAuB)?at_`&dd-15S>hb!~E~#dkzv_9>*OoI*VhWjIaQ&JBmtHcsUG(`F@r)Ai~d`OCR_WSFq7gQKz7PMLQ9P=g7;h;n( zppyf69dbH4kpgovm`rEYLNeV@y@%X5V?-XBvM1@*Lec_L+sGB=kX)lKmJUjcr>tUCP>gQ zPmrYHO_;!|;XhFKX*k9vue8tdPe3{{r5x=ceoUl<44$AAkoYywZwFn?wX zHEaYIX}CZlznXC1nJ%NaKipsln4f1|nB%}H;OsCv!MsT#91lJPE)Ca*g0F!y!Ba6| z0+=rkG)=>sF~6E{p}{Z|%b};yU|6_AL6{T42E>!0V$_qub!*fhdr+&!BXfNO>LuV$ z@D`ap;Cj?@ked!p3HLwmM}tU$U-N2k2^x$FH#jW@nd|GpGejI^gzHx{+=KcBs1)_g zaGi5yB4L27;O8{#k49pyCc!*k!`xwkhPl4*Azp+%5}EJ~)E8^mi5o1}FxQt2a>yO$ z5X1Vm37XTOr$j~2j7DB)o(4VTVrP;+x5W-}Ktt5*o)-KD6Mo_eKksNYuhj+5uP+h0 zPb0B+(s39IZ~${~hzfCT7EywjiSto~GqDEeU@hf|jd(TNu=)*HaRsaTD^~6zEfRWx z2N2~VRxA^CkuLx0e9hnIHd3&y*JGsl?fEGj*Q(Z&YNYB81vc2$r`jcH9D7C@>Fw=H zV5fD~rmGpRky3Yhye4{l=MuzwVNLYoP6csBun%@!(34@LuAt&mM^mjQlj9|NcA@j} zhA7Y8U!srO=foWund~hu?D2j!^sKw`E9}Ve}#MamboVBtTk!TE5 z;vd90Ij(EG(PhAIE+yv3WnDgff<)HPTU}Ygohf>0TLGKdY%18SWfNp`M*e=!g(0m7 z8}_sLML6Mu~%@sCxVH)GvaJvQ`vi=MV z#+u)=T2zF7=$RxXHQz_7Whjh#6N7EhY}A)a4gG!P^)EHp4_~Dv9J8Y#XUo$(1+kdyF5YEe|S^ zkMFBeX*X!EoWK9WOv62FMJG;Xz+fqUxnlY1tYy_JUahK(TPXA`S%vl|NdY*Zl~Eth{kmMZ9f D6_hlV delta 2911 zcmZ9N3s6*L6vxkZ_wIU^eIYC$Y`}sNUO@%Id{hdR68Q*4%2FnLRN6={EV0+RHZ{$Z zj&`jnC0JHiP!h1!&@n}Gv}kIwX3D0tn0%Cv%3fyg{^xSRt9SUF^Zm~`-{XFJzmE^r zTGryPFmT>WH1uhr-UK39pk2P~ktGk@S3`JCBq9bsw4$88LwhZ^ODallhObQ`dbJb! z#-$G~fc_}?r9T$V8&%YFHvizi@?SlUt0VOo+IB~J*kN}QVQBgT%mz~-9s+GdZc-6g z31NXBxo&?_!YycU^;iQ=+`jJnbSrmxQyVPKPQEuJ=<$$56C;9VMI_n|{~mmGi=beO zL_ff@UeVg8KZ8HhD$$WPLEpAXbZ@7i$D+m3r$X8o(i)|@fK1y$m}lS_MBg+HqSN3! z_#OP)sLu$>+P%fZv&e50M7g?|xf;TUQF5wI0(5A&c7+8uV#JD>*~21meG z;3PN~fcXXd3B)D`DZm2~LFy(a4Ffr#0E`DkpajeSyTeYZfS(5zg8M-aVu!)QXxD-O zcn+)v>%m442Ae@A2y|_7(NS<5oB=;=;#CW}sC#bnBT;*kM2XE3r8cv+(D-HxO$L41 zO4FLHv{TP<-c8-jZaM^x>M=L{Y2)%V+$vMqR_-HHetVz)Lid95I#>%@rF(AkBhj`FiFShSfw%=R3+>E+>F!9Q zLwX{OzSg~;oH$!Ve#+{^DzDd^%CyvRI0;_txs34_;4JI`tZmR4(MOdoTi^nu6Ox~a z;3Blk(0R~*Lc0yk`|}T32lQ{y61w*1`TSX~(6YExzh2@Sqfh%#J58bhDF}Fs2^J$5 zW70MZ<^uhBp1^&D_L%BQJa$%Kf~m_CluQ)LK$jTkNhWQFE;4DpK8sCSfxgkCi}8-E2jiViBe&Pc z$3gRcJxAD7E{I1U1A%;_zzaRsq!XY&g`R2T6QR#R=R)6v{z=gM_`%I4{j#BlAfJr( zd@u$1WTUf>Wm@p9GHr6#nz${{4F}kq z5?;8FQ#;v}ZNC+*GH^#UVP~Eg$HRp_fzgKxeZ}$wn;+Ty2h*6shU*%5$hyyAFxFGM zYQ>W1gh*oEII_oM%5o6Qj!xX)B?4+JE`$*vsJ@14WIG6|ZX6C31XbrC+}|Lm z24U;;Rsg^H1`t$#h4tXR4XQuGx^NQ*)y1&S=&k!4M5{nhJqCMGZyj|K{SJcaES%|T zmp-vpdmz<{b+#RhZa8qQsQw(QU%$J98yz({_HsoL>F aGsSdm%)6t+ZQ7!D_wg{Dvo!U+%>MyZK`rP2 diff --git a/build/src/docker/publish/apps/be/Web.Gateway/wwwroot/settings/appsettings.Development.json b/build/src/docker/publish/apps/be/Web.Gateway/wwwroot/settings/appsettings.Development.json new file mode 100644 index 000000000..5f8979a00 --- /dev/null +++ b/build/src/docker/publish/apps/be/Web.Gateway/wwwroot/settings/appsettings.Development.json @@ -0,0 +1,165 @@ +{ + "AlwaysAllowAuthorization": "False", + "App": { + "CorsOrigins": [ + "http://localhost:59080", + "http://localhost:59081", + "http://localhost:59090", + "http://localhost:59091", + "http://localhost:59093", + "http://localhost:59094", + "http://localhost:59095", + "http://localhost:59096", + "http://localhost:59097", + "http://localhost:59098", + "http://localhost:59099", + "http://localhost:59090", + "http://localhost:59091", + "http://localhost:59093", + "http://localhost:59094", + "http://localhost:59095", + "http://localhost:59096", + "http://localhost:59097", + "http://localhost:59098", + "http://localhost:59099", + "https://localhost:59090", + "https://localhost:59091", + "https://localhost:59093", + "https://localhost:59094", + "https://localhost:59095", + "https://localhost:59096", + "https://localhost:59097", + "https://localhost:59098", + "https://localhost:59099", + "https://localhost:59090", + "https://localhost:59091", + "https://localhost:59093", + "https://localhost:59094", + "https://localhost:59095", + "https://localhost:59096", + "https://localhost:59097", + "https://localhost:59098", + "https://localhost:59099", + "http://localhost:9527" + ] + }, + "AuthServer": { + "Audience": "Auth", + "Authority": "http://localhost:59093/", + "ClientId": "Auth_App", + "ClientSecret": "1q2w3E*", + "RequireHttpsMetadata": "false", + "SwaggerClientId": "Auth_App", + "SwaggerClientSecret": "1q2w3e*", + "UseAuth": "true" + }, + // "ConnectionStrings": { + // "AbpAuditLogging": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + // "AbpBackgroundJobs": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + // "AbpBlobStoring": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + // "AbpFeatureManagement": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + // "AbpIdentity": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + // "AbpIdentityServer": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + // "AbpPermissionManagement": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + // "AbpSettingManagement": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + // "AbpTenantManagement": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + // "Auth": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + // "Basedata": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + // "DataExchange": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + // "FileStorage": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + // "Inventory": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + // "Job": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + // "Label": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + // "Message": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + // "Store": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;" + // }, + "ConnectionStrings": { + "AbpAuditLogging": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "AbpBackgroundJobs": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "AbpBlobStoring": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "AbpFeatureManagement": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "AbpIdentity": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "AbpIdentityServer": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "AbpPermissionManagement": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "AbpSettingManagement": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "AbpTenantManagement": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "Auth": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "Basedata": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "DataExchange": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "FileStorage": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "Inventory": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "Job": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "Label": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "Message": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "Store": "Server=dev.ccwin-in.com,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;" + }, + "IdentityClients": { + "Default": { + "Authority": "http://localhost:59093", + "ClientId": "Auth_App", + "ClientSecret": "1q2w3E*", + "GrantType": "client_credentials", + "RequireHttps": "false", + "Scope": "Auth" + } + }, + "IsMultiTenancy": "True", + "Redis": { + "Configuration": "localhost:21194", + "KeyPrefix": "Wms:" + }, + "RemoteServices": { + "Auth": { + "BaseUrl": "http://dev.ccwin-in.com:59093/" + }, + "BaseData": { + "BaseUrl": "http://dev.ccwin-in.com:59094/" + }, + "Default": { + "BaseUrl": "http://dev.ccwin-in.com:59093" + }, + "FileStorage": { + "BaseUrl": "http://dev.ccwin-in.com:59092/" + }, + "Inventory": { + "BaseUrl": "http://dev.ccwin-in.com:59095/" + }, + "Job": { + "BaseUrl": "http://dev.ccwin-in.com:59095/" + }, + "Label": { + "BaseUrl": "http://dev.ccwin-in.com:59092/" + }, + "Message": { + "BaseUrl": "http://dev.ccwin-in.com:59092/" + }, + "Store": { + "BaseUrl": "http://dev.ccwin-in.com:59095/" + } + }, + "Serilog": { + "WriteTo": [ + { + "Args": { + "configure": [ + { + "Args": { + "path": "logs/log.txt", + "retainedFileCountLimit": "30", + "rollingInterval": "Day" + }, + "Name": "File" + } + ] + }, + "Name": "Async" + }, + { + "Args": { + "serverUrl": "http://localhost:5341" + }, + "Name": "Seq" + } + ] + } +} \ No newline at end of file diff --git a/build/src/docker/publish/apps/be/Web.Gateway/wwwroot/settings/appsettings.json b/build/src/docker/publish/apps/be/Web.Gateway/wwwroot/settings/appsettings.json new file mode 100644 index 000000000..6dd1cb14f --- /dev/null +++ b/build/src/docker/publish/apps/be/Web.Gateway/wwwroot/settings/appsettings.json @@ -0,0 +1,154 @@ +{ + //是否绕过权限验证 + "AlwaysAllowAuthorization": "True", + //跨域 + "App": { + "CorsOrigins": [ + "http://localhost:59080", + "http://localhost:59081", + "http://localhost:59090", + "http://localhost:59091", + "http://localhost:59093", + "http://localhost:59094", + "http://localhost:59095", + "http://localhost:59096", + "http://localhost:59097", + "http://localhost:59098", + "http://localhost:59099", + "http://localhost:59090", + "http://localhost:59091", + "http://localhost:59093", + "http://localhost:59094", + "http://localhost:59095", + "http://localhost:59096", + "http://localhost:59097", + "http://localhost:59098", + "http://localhost:59099", + "https://localhost:59090", + "https://localhost:59091", + "https://localhost:59093", + "https://localhost:59094", + "https://localhost:59095", + "https://localhost:59096", + "https://localhost:59097", + "https://localhost:59098", + "https://localhost:59099", + "https://localhost:59090", + "https://localhost:59091", + "https://localhost:59093", + "https://localhost:59094", + "https://localhost:59095", + "https://localhost:59096", + "https://localhost:59097", + "https://localhost:59098", + "https://localhost:59099", + "http://localhost:9527" + ] + }, + //ids4的建权服务端配置 + "AuthServer": { + "Audience": "Auth", + "Authority": "http://localhost:21093/", + "ClientId": "Auth_App", + "ClientSecret": "1q2w3E*", + "RequireHttpsMetadata": "false", + "SwaggerClientId": "Auth_App", + "SwaggerClientSecret": "1q2w3e*", + "UseAuth": "true" + }, + //ids4的建权客户端配置 配置要和服务端对应 + "IdentityClients": { + "Default": { + "Authority": "http://localhost:59093", + "ClientId": "Auth_App", + "ClientSecret": "1q2w3E*", + "GrantType": "client_credentials", + "RequireHttps": "false", + "Scope": "Auth" + } + }, + //数据库连接 + "Database": "SQLServer", + "ConnectionStrings": { + "AbpAuditLogging": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "AbpBackgroundJobs": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "AbpBlobStoring": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "AbpFeatureManagement": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "AbpIdentity": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "AbpIdentityServer": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "AbpPermissionManagement": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "AbpSettingManagement": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "AbpTenantManagement": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "Auth": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "Basedata": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "DataExchange": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "FileStorage": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "Inventory": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "Job": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "Label": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "Message": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;", + "Store": "Server=database,1433;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;" + }, + //多租户 + "IsMultiTenancy": "True", + //缓存服务器 + "Redis": { + "Configuration": "redis:6379", + "KeyPrefix": "Wms:" + }, + //转发地址配置 + "RemoteServices": { + "Auth": { + "BaseUrl": "http://dev.ccwin-in.com:59093/" + }, + "BaseData": { + "BaseUrl": "http://dev.ccwin-in.com:59094/" + }, + "Default": { + "BaseUrl": "http://dev.ccwin-in.com:59093" + }, + "FileStorage": { + "BaseUrl": "http://dev.ccwin-in.com:59092/" + }, + "Inventory": { + "BaseUrl": "http://dev.ccwin-in.com:59095/" + }, + "Job": { + "BaseUrl": "http://dev.ccwin-in.com:59095/" + }, + "Label": { + "BaseUrl": "http://dev.ccwin-in.com:59092/" + }, + "Message": { + "BaseUrl": "http://dev.ccwin-in.com:59092/" + }, + "Store": { + "BaseUrl": "http://dev.ccwin-in.com:59095/" + } + }, + "Serilog": { + "WriteTo": [ + { + "Args": { + "configure": [ + { + "Args": { + "path": "logs/log.txt", + "retainedFileCountLimit": "30", + "rollingInterval": "Day" + }, + "Name": "File" + } + ] + }, + "Name": "Async" + }, + { + "Args": { + "serverUrl": "http://seq:5341" + }, + "Name": "Seq" + } + ] + } +} \ No newline at end of file diff --git a/build/src/docker/publish/conf/gateway/appsettings.json b/build/src/docker/publish/conf/gateway/appsettings.json index 08e1db93b..d3167f637 100644 --- a/build/src/docker/publish/conf/gateway/appsettings.json +++ b/build/src/docker/publish/conf/gateway/appsettings.json @@ -6,7 +6,8 @@ "abp": { "AllowAnyOrigin": false, "Origins": [ - "http://localhost:9527" + "http://localhost:9527", + "http://dev.ccwin-in.com:21380" ] } }, diff --git a/build/src/docker/publish/conf/settings/appsettings.Production.json b/build/src/docker/publish/conf/settings/appsettings.Production.json new file mode 100644 index 000000000..2c63c0851 --- /dev/null +++ b/build/src/docker/publish/conf/settings/appsettings.Production.json @@ -0,0 +1,2 @@ +{ +} diff --git a/build/src/docker/publish/conf/settings/appsettings.json b/build/src/docker/publish/conf/settings/appsettings.json index b6b5d99db..315fb9b4b 100644 --- a/build/src/docker/publish/conf/settings/appsettings.json +++ b/build/src/docker/publish/conf/settings/appsettings.json @@ -48,12 +48,13 @@ //ids4的建权服务端配置 "AuthServer": { "Audience": "Auth", - "Authority": "http://localhost:21093/", + "Authority": "http://dev.ccwin-in.com:21293/", "ClientId": "Auth_App", "ClientSecret": "1q2w3E*", "RequireHttpsMetadata": "false", "SwaggerClientId": "Auth_App", "SwaggerClientSecret": "1q2w3e*", + "RequireHttps": false, "UseAuth": "true" }, //ids4的建权客户端配置 配置要和服务端对应 @@ -63,7 +64,7 @@ "ClientId": "Auth_App", "ClientSecret": "1q2w3E*", "GrantType": "client_credentials", - "RequireHttps": "false", + "RequireHttps": false, "Scope": "Auth" } }, diff --git a/build/src/docker/publish/docker-compose.yml b/build/src/docker/publish/docker-compose.yml index 5504dccd9..742636fa8 100644 --- a/build/src/docker/publish/docker-compose.yml +++ b/build/src/docker/publish/docker-compose.yml @@ -50,6 +50,7 @@ services: - ./data/redis:/data database: image: mcr.microsoft.com/mssql/server:${SQLSERVER_VERSION} + user: root environment: - ACCEPT_EULA=Y - MSSQL_SA_PASSWORD=${MSSQL_SA_PASSWORD} diff --git a/build/src/win-x64/publish/supervisord/supervisor.conf b/build/src/win-x64/publish/supervisord/supervisor.conf index 5c1c75657..f0185e0f0 100644 --- a/build/src/win-x64/publish/supervisord/supervisor.conf +++ b/build/src/win-x64/publish/supervisord/supervisor.conf @@ -27,6 +27,12 @@ command = dotnet Web.Gateway.dll --urls http://localhost:21093 autorestart=true stdout_logfile=./logs/gateway.log +[program:InfluxDB] +directory = ./influxdb/ +command = ./influxd.exe +autorestart=true +stdout_logfile=./logs/influxdb.log + [program:Sfs.Core.Host] directory = ./apps/be/Sfs.Core.Host/ command = dotnet Win_in.Sfs.Core.HttpApi.Host.dll --urls http://localhost:59092 diff --git a/fe/PC/public/config.js b/fe/PC/public/config.js index 9be1ae048..188653b47 100644 --- a/fe/PC/public/config.js +++ b/fe/PC/public/config.js @@ -20,7 +20,7 @@ // localhost window.SITE_CONFIG['base'] = 'http://localhost:21093' -window.SITE_CONFIG['user'] = 'http://dev.ccwin-in.com:21093/api/auth' +window.SITE_CONFIG['user'] = 'http://localhost:21093/api/auth' window.SITE_CONFIG['print'] = 'print' window.SITE_CONFIG['largeScreen'] = 'http://localhost:59082' window.SITE_CONFIG['warehouseCode'] = 'T8'