Browse Source

Merge pull request #583 from colinin/security-smtp-setting

security: 检查未经授权的邮件配置.
pull/645/head
yx lin 4 years ago
committed by GitHub
parent
commit
701e98d76e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 91
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/LINGYUN/Abp/SettingManagement/SettingAppService.cs
  2. 122
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/LINGYUN/Abp/SettingManagement/UserSettingAppService.cs

91
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/LINGYUN/Abp/SettingManagement/SettingAppService.cs

@ -349,6 +349,7 @@ namespace LINGYUN.Abp.SettingManagement
#region 邮件设置 #region 邮件设置
var emailSettingGroup = new SettingGroupDto(L["DisplayName:Emailing"], L["Description:Emailing"]); var emailSettingGroup = new SettingGroupDto(L["DisplayName:Emailing"], L["Description:Emailing"]);
var defaultMailSetting = emailSettingGroup.AddSetting(L["DisplayName:Emailing.Default"], L["Description:Emailing.Default"]); var defaultMailSetting = emailSettingGroup.AddSetting(L["DisplayName:Emailing.Default"], L["Description:Emailing.Default"]);
defaultMailSetting.AddDetail( defaultMailSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.DefaultFromAddress), SettingDefinitionManager.Get(EmailSettingNames.DefaultFromAddress),
@ -363,49 +364,53 @@ namespace LINGYUN.Abp.SettingManagement
ValueType.String, ValueType.String,
providerName); providerName);
var smtpSetting = emailSettingGroup.AddSetting(L["DisplayName:Emailing.Smtp"], L["Description:Emailing.Smtp"]); // 防止邮件设置泄露
smtpSetting.AddDetail( if (await AuthorizationService.IsGrantedAsync(AbpSettingManagementPermissions.Settings.Manager))
SettingDefinitionManager.Get(EmailSettingNames.Smtp.EnableSsl), {
StringLocalizerFactory, var smtpSetting = emailSettingGroup.AddSetting(L["DisplayName:Emailing.Smtp"], L["Description:Emailing.Smtp"]);
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.EnableSsl, providerName, providerKey), smtpSetting.AddDetail(
ValueType.Boolean, SettingDefinitionManager.Get(EmailSettingNames.Smtp.EnableSsl),
providerName); StringLocalizerFactory,
smtpSetting.AddDetail( await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.EnableSsl, providerName, providerKey),
SettingDefinitionManager.Get(EmailSettingNames.Smtp.UseDefaultCredentials), ValueType.Boolean,
StringLocalizerFactory, providerName);
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.UseDefaultCredentials, providerName, providerKey), smtpSetting.AddDetail(
ValueType.Boolean, SettingDefinitionManager.Get(EmailSettingNames.Smtp.UseDefaultCredentials),
providerName); StringLocalizerFactory,
smtpSetting.AddDetail( await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.UseDefaultCredentials, providerName, providerKey),
SettingDefinitionManager.Get(EmailSettingNames.Smtp.Domain), ValueType.Boolean,
StringLocalizerFactory, providerName);
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Domain, providerName, providerKey), smtpSetting.AddDetail(
ValueType.String, SettingDefinitionManager.Get(EmailSettingNames.Smtp.Domain),
providerName); StringLocalizerFactory,
smtpSetting.AddDetail( await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Domain, providerName, providerKey),
SettingDefinitionManager.Get(EmailSettingNames.Smtp.Host), ValueType.String,
StringLocalizerFactory, providerName);
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Host, providerName, providerKey), smtpSetting.AddDetail(
ValueType.String, SettingDefinitionManager.Get(EmailSettingNames.Smtp.Host),
providerName); StringLocalizerFactory,
smtpSetting.AddDetail( await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Host, providerName, providerKey),
SettingDefinitionManager.Get(EmailSettingNames.Smtp.Port), ValueType.String,
StringLocalizerFactory, providerName);
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Port, providerName, providerKey), smtpSetting.AddDetail(
ValueType.Number, SettingDefinitionManager.Get(EmailSettingNames.Smtp.Port),
providerName); StringLocalizerFactory,
smtpSetting.AddDetail( await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Port, providerName, providerKey),
SettingDefinitionManager.Get(EmailSettingNames.Smtp.UserName), ValueType.Number,
StringLocalizerFactory, providerName);
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.UserName, providerName, providerKey), smtpSetting.AddDetail(
ValueType.String, SettingDefinitionManager.Get(EmailSettingNames.Smtp.UserName),
providerName); StringLocalizerFactory,
smtpSetting.AddDetail( await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.UserName, providerName, providerKey),
SettingDefinitionManager.Get(EmailSettingNames.Smtp.Password), ValueType.String,
StringLocalizerFactory, providerName);
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Password, providerName, providerKey), smtpSetting.AddDetail(
ValueType.String, SettingDefinitionManager.Get(EmailSettingNames.Smtp.Password),
providerName); StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Password, providerName, providerKey),
ValueType.String,
providerName);
}
settingGroups.AddGroup(emailSettingGroup); settingGroups.AddGroup(emailSettingGroup);

122
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/LINGYUN/Abp/SettingManagement/UserSettingAppService.cs

@ -173,66 +173,68 @@ namespace LINGYUN.Abp.SettingManagement
#region 邮件设置 #region 邮件设置
var emailSettingGroup = new SettingGroupDto(L["DisplayName:Emailing"], L["Description:Emailing"]); // 控制用户行为, 禁止返回邮件配置
var defaultMailSetting = emailSettingGroup.AddSetting(L["DisplayName:Emailing.Default"], L["Description:Emailing.Default"]);
defaultMailSetting.AddDetail( //var emailSettingGroup = new SettingGroupDto(L["DisplayName:Emailing"], L["Description:Emailing"]);
SettingDefinitionManager.Get(EmailSettingNames.DefaultFromAddress), //var defaultMailSetting = emailSettingGroup.AddSetting(L["DisplayName:Emailing.Default"], L["Description:Emailing.Default"]);
StringLocalizerFactory, //defaultMailSetting.AddDetail(
await SettingManager.GetOrNullAsync(EmailSettingNames.DefaultFromAddress, providerName, providerKey), // SettingDefinitionManager.Get(EmailSettingNames.DefaultFromAddress),
ValueType.String, // StringLocalizerFactory,
providerName); // await SettingManager.GetOrNullAsync(EmailSettingNames.DefaultFromAddress, providerName, providerKey),
defaultMailSetting.AddDetail( // ValueType.String,
SettingDefinitionManager.Get(EmailSettingNames.DefaultFromDisplayName), // providerName);
StringLocalizerFactory, //defaultMailSetting.AddDetail(
await SettingManager.GetOrNullAsync(EmailSettingNames.DefaultFromDisplayName, providerName, providerKey), // SettingDefinitionManager.Get(EmailSettingNames.DefaultFromDisplayName),
ValueType.String, // StringLocalizerFactory,
providerName); // await SettingManager.GetOrNullAsync(EmailSettingNames.DefaultFromDisplayName, providerName, providerKey),
// ValueType.String,
var smtpSetting = emailSettingGroup.AddSetting(L["DisplayName:Emailing.Smtp"], L["Description:Emailing.Smtp"]); // providerName);
smtpSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.Smtp.EnableSsl), //var smtpSetting = emailSettingGroup.AddSetting(L["DisplayName:Emailing.Smtp"], L["Description:Emailing.Smtp"]);
StringLocalizerFactory, //smtpSetting.AddDetail(
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.EnableSsl, providerName, providerKey), // SettingDefinitionManager.Get(EmailSettingNames.Smtp.EnableSsl),
ValueType.Boolean, // StringLocalizerFactory,
providerName); // await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.EnableSsl, providerName, providerKey),
smtpSetting.AddDetail( // ValueType.Boolean,
SettingDefinitionManager.Get(EmailSettingNames.Smtp.UseDefaultCredentials), // providerName);
StringLocalizerFactory, //smtpSetting.AddDetail(
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.UseDefaultCredentials, providerName, providerKey), // SettingDefinitionManager.Get(EmailSettingNames.Smtp.UseDefaultCredentials),
ValueType.Boolean, // StringLocalizerFactory,
providerName); // await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.UseDefaultCredentials, providerName, providerKey),
smtpSetting.AddDetail( // ValueType.Boolean,
SettingDefinitionManager.Get(EmailSettingNames.Smtp.Domain), // providerName);
StringLocalizerFactory, //smtpSetting.AddDetail(
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Domain, providerName, providerKey), // SettingDefinitionManager.Get(EmailSettingNames.Smtp.Domain),
ValueType.String, // StringLocalizerFactory,
providerName); // await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Domain, providerName, providerKey),
smtpSetting.AddDetail( // ValueType.String,
SettingDefinitionManager.Get(EmailSettingNames.Smtp.Host), // providerName);
StringLocalizerFactory, //smtpSetting.AddDetail(
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Host, providerName, providerKey), // SettingDefinitionManager.Get(EmailSettingNames.Smtp.Host),
ValueType.String, // StringLocalizerFactory,
providerName); // await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Host, providerName, providerKey),
smtpSetting.AddDetail( // ValueType.String,
SettingDefinitionManager.Get(EmailSettingNames.Smtp.Port), // providerName);
StringLocalizerFactory, //smtpSetting.AddDetail(
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Port, providerName, providerKey), // SettingDefinitionManager.Get(EmailSettingNames.Smtp.Port),
ValueType.Number, // StringLocalizerFactory,
providerName); // await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Port, providerName, providerKey),
smtpSetting.AddDetail( // ValueType.Number,
SettingDefinitionManager.Get(EmailSettingNames.Smtp.UserName), // providerName);
StringLocalizerFactory, //smtpSetting.AddDetail(
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.UserName, providerName, providerKey), // SettingDefinitionManager.Get(EmailSettingNames.Smtp.UserName),
ValueType.String, // StringLocalizerFactory,
providerName); // await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.UserName, providerName, providerKey),
smtpSetting.AddDetail( // ValueType.String,
SettingDefinitionManager.Get(EmailSettingNames.Smtp.Password), // providerName);
StringLocalizerFactory, //smtpSetting.AddDetail(
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Password, providerName, providerKey), // SettingDefinitionManager.Get(EmailSettingNames.Smtp.Password),
ValueType.String, // StringLocalizerFactory,
providerName); // await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Password, providerName, providerKey),
// ValueType.String,
settingGroups.AddGroup(emailSettingGroup); // providerName);
//settingGroups.AddGroup(emailSettingGroup);
#endregion #endregion

Loading…
Cancel
Save