chore: demo fixed-code opt-in flag, sop tweaks and doc sync
短信固定验证码增加 aihr.sms.demo-fixed-code-enabled 显式开关(prod 默认仍禁用,演示环境可显式放行);SOP 服务小调整;mobile base 支持 VITE_BASE;作战清单/TechSpec/API_INTEGRATION/docs README 同步。
This commit is contained in:
@@ -62,11 +62,14 @@ public class CaptchaController {
|
||||
|
||||
/**
|
||||
* 演示/开发兜底:配置后不真发短信,验证码固定为该值,把短信通道从演示关键路径摘掉。
|
||||
* prod profile 下无条件忽略(代码级闸门,防止配置失误造成登录绕过)。
|
||||
* prod profile 仅在 aihr.sms.demo-fixed-code-enabled=true 时临时放行。
|
||||
*/
|
||||
@Value("${aihr.sms.dev-fixed-code:}")
|
||||
private String smsDevFixedCode;
|
||||
|
||||
@Value("${aihr.sms.demo-fixed-code-enabled:false}")
|
||||
private boolean smsDemoFixedCodeEnabled;
|
||||
|
||||
private final Environment environment;
|
||||
|
||||
/**
|
||||
@@ -80,7 +83,9 @@ public class CaptchaController {
|
||||
@NotBlank(message = "{user.phonenumber.not.blank}")
|
||||
@Pattern(regexp = RegexConstants.MOBILE, message = "{user.mobile.phone.number.not.valid}") String phonenumber) {
|
||||
String key = GlobalConstants.CAPTCHA_CODE_KEY + phonenumber;
|
||||
if (StringUtils.isNotBlank(smsDevFixedCode) && !environment.acceptsProfiles(Profiles.of("prod"))) {
|
||||
boolean fixedCodeEnabled = StringUtils.isNotBlank(smsDevFixedCode)
|
||||
&& (!environment.acceptsProfiles(Profiles.of("prod")) || smsDemoFixedCodeEnabled);
|
||||
if (fixedCodeEnabled) {
|
||||
log.warn("aihr.sms.dev-fixed-code 已启用,短信验证码走固定码,未真实发送短信");
|
||||
RedisUtils.setCacheObject(key, smsDevFixedCode, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
|
||||
return R.ok();
|
||||
|
||||
Reference in New Issue
Block a user