fix: default register client id

This commit is contained in:
yuhaiming
2026-08-14 10:35:42 +08:00
parent 2f7597ed53
commit b789c1c07e
8 changed files with 141 additions and 1 deletions

View File

@@ -201,7 +201,11 @@ public class AuthController {
*/
@ApiEncrypt
@PostMapping("/register")
public R<Void> register(@Validated @RequestBody RegisterBody user) {
public R<Void> register(@RequestBody RegisterBody user) {
if (StringUtils.isBlank(user.getClientId())) {
user.setClientId("32324a04c0175c8d61ac8a282553aea1");
}
ValidatorUtils.validate(user);
if (!configService.selectRegisterEnabled(user.getTenantId())) {
return R.fail("当前系统没有开启注册功能!");
}

View File

@@ -1,20 +1,28 @@
package org.dromara.web.controller;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.extra.spring.SpringUtil;
import jakarta.validation.Validation;
import jakarta.validation.ValidatorFactory;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.domain.model.AccountCancelBody;
import org.dromara.common.core.domain.model.RegisterBody;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.service.ISysConfigService;
import org.dromara.web.service.AccountCancellationService;
import org.dromara.web.service.SysRegisterService;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.MockedStatic;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.context.support.GenericApplicationContext;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
@Tag("dev")
@@ -23,6 +31,12 @@ class AuthControllerUnitTest {
@Mock
private AccountCancellationService accountCancellationService;
@Mock
private SysRegisterService registerService;
@Mock
private ISysConfigService configService;
@Test
void cancelAccount_checksLoginCancelsAccountAndLogsOut() {
AuthController controller = new AuthController(
@@ -52,4 +66,38 @@ class AuthControllerUnitTest {
stpUtil.verify(() -> StpUtil.logout(100L));
}
}
@Test
void register_defaultsClientIdWhenMissing() {
AuthController controller = new AuthController(
null,
null,
registerService,
configService,
null,
null,
null,
null,
null,
accountCancellationService
);
RegisterBody user = new RegisterBody();
user.setUsername("register-user");
user.setPassword("12345");
user.setGrantType("password");
when(configService.selectRegisterEnabled(user.getTenantId())).thenReturn(true);
try (ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
GenericApplicationContext context = new GenericApplicationContext()) {
context.getBeanFactory().registerSingleton("validator", validatorFactory.getValidator());
context.refresh();
new SpringUtil().setApplicationContext(context);
R<Void> result = controller.register(user);
assertThat(result.getCode()).isEqualTo(200);
assertThat(user.getClientId()).isEqualTo("32324a04c0175c8d61ac8a282553aea1");
verify(registerService).register(user);
}
}
}