mirror of
http://git.pig4cloud.com/pig/pigx.git
synced 2026-11-14 22:29:00 +08:00
fix(upms): 保存网站配置时保留各终端验证码开关
移除网站验证码模式变更时对所有 OAuth 终端 captcha_flag 的批量同步,保留前端对默认登录终端的同步行为。 Refs: pig/pigx#7631 (cherry picked from commit 836c2ea5e22f9e9a88f60d8a699e4a66e88979b9)
This commit is contained in:
1 parent
ca84985d63
commit
65f184ace6
1 file changed
-38
-38
@@ -18,23 +18,15 @@
|
|||||||
package com.pig4cloud.pigx.admin.service.impl;
|
package com.pig4cloud.pigx.admin.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import cn.hutool.json.JSONObject;
|
|
||||||
import cn.hutool.json.JSONUtil;
|
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.pig4cloud.pigx.admin.api.dto.SiteConfigDTO;
|
import com.pig4cloud.pigx.admin.api.dto.SiteConfigDTO;
|
||||||
import com.pig4cloud.pigx.admin.api.entity.SysOauthClientDetails;
|
|
||||||
import com.pig4cloud.pigx.admin.api.entity.SysPublicParam;
|
import com.pig4cloud.pigx.admin.api.entity.SysPublicParam;
|
||||||
import com.pig4cloud.pigx.admin.config.ClientDetailsInitRunner;
|
|
||||||
import com.pig4cloud.pigx.admin.service.SysI18nService;
|
import com.pig4cloud.pigx.admin.service.SysI18nService;
|
||||||
import com.pig4cloud.pigx.admin.service.SysOauthClientDetailsService;
|
|
||||||
import com.pig4cloud.pigx.admin.service.SysPublicParamService;
|
import com.pig4cloud.pigx.admin.service.SysPublicParamService;
|
||||||
import com.pig4cloud.pigx.admin.service.SysSiteConfigService;
|
import com.pig4cloud.pigx.admin.service.SysSiteConfigService;
|
||||||
import com.pig4cloud.pigx.common.core.constant.CacheConstants;
|
import com.pig4cloud.pigx.common.core.constant.CacheConstants;
|
||||||
import com.pig4cloud.pigx.common.core.constant.CommonConstants;
|
|
||||||
import com.pig4cloud.pigx.common.core.constant.enums.DictTypeEnum;
|
import com.pig4cloud.pigx.common.core.constant.enums.DictTypeEnum;
|
||||||
import com.pig4cloud.pigx.common.core.constant.enums.YesNoEnum;
|
import com.pig4cloud.pigx.common.core.constant.enums.YesNoEnum;
|
||||||
import com.pig4cloud.pigx.common.core.util.SpringContextHolder;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.cache.annotation.CacheEvict;
|
import org.springframework.cache.annotation.CacheEvict;
|
||||||
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.cache.annotation.Cacheable;
|
||||||
@@ -94,8 +86,6 @@ public class SysSiteConfigServiceImpl implements SysSiteConfigService {
|
|||||||
|
|
||||||
private final SysI18nService sysI18nService;
|
private final SysI18nService sysI18nService;
|
||||||
|
|
||||||
private final SysOauthClientDetailsService sysOauthClientDetailsService;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Cacheable(value = CacheConstants.SITE_CONFIG_DETAILS)
|
@Cacheable(value = CacheConstants.SITE_CONFIG_DETAILS)
|
||||||
public Map<String, Object> getAggregatedConfig() {
|
public Map<String, Object> getAggregatedConfig() {
|
||||||
@@ -164,11 +154,6 @@ public class SysSiteConfigServiceImpl implements SysSiteConfigService {
|
|||||||
sysPublicParamService.save(newParam);
|
sysPublicParamService.save(newParam);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 同步 captcha_flag 到 OAuth 客户端扩展信息
|
|
||||||
if (dto.getCaptchaType() != null) {
|
|
||||||
syncCaptchaFlagToClients(!"none".equals(dto.getCaptchaType()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -180,27 +165,4 @@ public class SysSiteConfigServiceImpl implements SysSiteConfigService {
|
|||||||
// 仅触发 @CacheEvict,无需额外逻辑
|
// 仅触发 @CacheEvict,无需额外逻辑
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 同步验证码开关到所有 OAuth 客户端的 additionalInformation
|
|
||||||
*
|
|
||||||
* @param captchaEnable 是否启用验证码
|
|
||||||
*/
|
|
||||||
private void syncCaptchaFlagToClients(Boolean captchaEnable) {
|
|
||||||
String captchaFlag = YesNoEnum.getCode(captchaEnable);
|
|
||||||
List<SysOauthClientDetails> clients = sysOauthClientDetailsService.list();
|
|
||||||
|
|
||||||
for (SysOauthClientDetails client : clients) {
|
|
||||||
if (StrUtil.isBlank(client.getAdditionalInformation())) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
JSONObject informationObj = JSONUtil.parseObj(client.getAdditionalInformation());
|
|
||||||
informationObj.set(CommonConstants.CAPTCHA_FLAG, captchaFlag);
|
|
||||||
client.setAdditionalInformation(informationObj.toString());
|
|
||||||
sysOauthClientDetailsService.updateById(client);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 刷新 Redis 客户端缓存
|
|
||||||
SpringContextHolder.publishEvent(new ClientDetailsInitRunner.ClientDetailsInitEvent(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user