Loading dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/configuration/AppConfiguration.java +2 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ public class AppConfiguration implements WebMvcConfigurer { public static final String LOGIN_INTERCEPTOR_PATH_PATTERN = "/**/*"; public static final String LOGIN_PATH_PATTERN = "/login"; public static final String REGISTER_PATH_PATTERN = "/users/register"; public static final String PATH_PATTERN = "/**"; public static final String LOCALE_LANGUAGE_COOKIE = "language"; public static final int COOKIE_MAX_AGE = 3600; Loading Loading @@ -76,7 +77,7 @@ public class AppConfiguration implements WebMvcConfigurer { //i18n registry.addInterceptor(localeChangeInterceptor()); registry.addInterceptor(loginInterceptor()).addPathPatterns(LOGIN_INTERCEPTOR_PATH_PATTERN).excludePathPatterns(LOGIN_PATH_PATTERN,"/swagger-resources/**", "/webjars/**", "/v2/**", "/doc.html", "*.html", "/ui/**"); registry.addInterceptor(loginInterceptor()).addPathPatterns(LOGIN_INTERCEPTOR_PATH_PATTERN).excludePathPatterns(LOGIN_PATH_PATTERN, REGISTER_PATH_PATTERN, "/swagger-resources/**", "/webjars/**", "/v2/**", "/doc.html", "*.html", "/ui/**"); } Loading dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UsersController.java +31 −0 Original line number Diff line number Diff line Loading @@ -410,5 +410,36 @@ public class UsersController extends BaseController { } } /** * user register * * @param userName user name * @param userPassword user password * @param repeatPassword repeat password * @param email user email */ @ApiOperation(value="registerUser",notes = "REGISTER_USER_NOTES") @ApiImplicitParams({ @ApiImplicitParam(name = "userName", value = "USER_NAME", type = "String"), @ApiImplicitParam(name = "userPassword", value = "USER_PASSWORD", type = "String"), @ApiImplicitParam(name = "repeatPassword", value = "REPEAT_PASSWORD", type = "String"), @ApiImplicitParam(name = "email", value = "EMAIL", type = "String"), }) @PostMapping("/register") @ResponseStatus(HttpStatus.OK) @ApiException(CREATE_USER_ERROR) public Result<Object> registerUser(@RequestParam(value = "userName") String userName, @RequestParam(value = "userPassword") String userPassword, @RequestParam(value = "repeatPassword") String repeatPassword, @RequestParam(value = "email") String email) throws Exception { userName = userName.replaceAll("[\n|\r|\t]", ""); userPassword = userPassword.replaceAll("[\n|\r|\t]", ""); repeatPassword = repeatPassword.replaceAll("[\n|\r|\t]", ""); email = email.replaceAll("[\n|\r|\t]", ""); logger.info("user self-register, userName: {}, userPassword {}, repeatPassword {}, eamil {}", userName, userPassword, repeatPassword, email); Map<String, Object> result = usersService.registerUser(userName, userPassword, repeatPassword, email); return returnDataList(result); } } dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UsersService.java +33 −0 Original line number Diff line number Diff line Loading @@ -908,4 +908,37 @@ public class UsersService extends BaseService { } } } /** * register user, default state is 0, default tenant_id is 1, no phone, no queue * * @param userName user name * @param userPassword user password * @param repeatPassword repeat password * @param email email * @return register result code * @throws Exception exception */ @Transactional(rollbackFor = Exception.class) public Map<String, Object> registerUser(String userName, String userPassword, String repeatPassword, String email) throws Exception { Map<String, Object> result = new HashMap<>(5); //check user params String msg = this.checkUserParams(userName, userPassword, email, ""); if (!StringUtils.isEmpty(msg)) { putMsg(result, Status.REQUEST_PARAMS_NOT_VALID_ERROR,msg); return result; } if (!userPassword.equals(repeatPassword)) { putMsg(result, Status.REQUEST_PARAMS_NOT_VALID_ERROR, "two passwords are not same"); return result; } createUser(userName, userPassword, email, 1, "", "", 0); putMsg(result, Status.SUCCESS); return result; } } dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UsersControllerTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -268,4 +268,23 @@ public class UsersControllerTest extends AbstractControllerTest{ Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); logger.info(mvcResult.getResponse().getContentAsString()); } @Test public void testRegisterUser() throws Exception { MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>(); paramsMap.add("userName","user_test"); paramsMap.add("userPassword","123456qwe?"); paramsMap.add("repeatPassword", "123456qwe?"); paramsMap.add("email","12343534@qq.com"); MvcResult mvcResult = mockMvc.perform(post("/users/register") .params(paramsMap)) .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8)) .andReturn(); Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); logger.info(mvcResult.getResponse().getContentAsString()); } } dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/UsersServiceTest.java +45 −0 Original line number Diff line number Diff line Loading @@ -453,6 +453,51 @@ public class UsersServiceTest { Assert.assertTrue(CollectionUtils.isNotEmpty(userList)); } @Test public void testRegisterUser() { String userName = "userTest0002~"; String userPassword = "userTest"; String repeatPassword = "userTest"; String email = "123@qq.com"; try { //userName error Map<String, Object> result = usersService.registerUser(userName, userPassword, repeatPassword, email); logger.info(result.toString()); Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, result.get(Constants.STATUS)); userName = "userTest0002"; userPassword = "userTest000111111111111111"; //password error result = usersService.registerUser(userName, userPassword, repeatPassword, email); logger.info(result.toString()); Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, result.get(Constants.STATUS)); userPassword = "userTest0002"; email = "1q.com"; //email error result = usersService.registerUser(userName, userPassword, repeatPassword, email); logger.info(result.toString()); Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, result.get(Constants.STATUS)); //repeatPassword error email = "7400@qq.com"; repeatPassword = "userPassword"; result = usersService.registerUser(userName, userPassword, repeatPassword, email); logger.info(result.toString()); Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, result.get(Constants.STATUS)); //success repeatPassword = "userTest0002"; result = usersService.registerUser(userName, userPassword, repeatPassword, email); logger.info(result.toString()); Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS)); } catch (Exception e) { logger.error(Status.CREATE_USER_ERROR.getMsg(),e); Assert.assertTrue(false); } } /** * get user * @return Loading Loading
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/configuration/AppConfiguration.java +2 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ public class AppConfiguration implements WebMvcConfigurer { public static final String LOGIN_INTERCEPTOR_PATH_PATTERN = "/**/*"; public static final String LOGIN_PATH_PATTERN = "/login"; public static final String REGISTER_PATH_PATTERN = "/users/register"; public static final String PATH_PATTERN = "/**"; public static final String LOCALE_LANGUAGE_COOKIE = "language"; public static final int COOKIE_MAX_AGE = 3600; Loading Loading @@ -76,7 +77,7 @@ public class AppConfiguration implements WebMvcConfigurer { //i18n registry.addInterceptor(localeChangeInterceptor()); registry.addInterceptor(loginInterceptor()).addPathPatterns(LOGIN_INTERCEPTOR_PATH_PATTERN).excludePathPatterns(LOGIN_PATH_PATTERN,"/swagger-resources/**", "/webjars/**", "/v2/**", "/doc.html", "*.html", "/ui/**"); registry.addInterceptor(loginInterceptor()).addPathPatterns(LOGIN_INTERCEPTOR_PATH_PATTERN).excludePathPatterns(LOGIN_PATH_PATTERN, REGISTER_PATH_PATTERN, "/swagger-resources/**", "/webjars/**", "/v2/**", "/doc.html", "*.html", "/ui/**"); } Loading
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UsersController.java +31 −0 Original line number Diff line number Diff line Loading @@ -410,5 +410,36 @@ public class UsersController extends BaseController { } } /** * user register * * @param userName user name * @param userPassword user password * @param repeatPassword repeat password * @param email user email */ @ApiOperation(value="registerUser",notes = "REGISTER_USER_NOTES") @ApiImplicitParams({ @ApiImplicitParam(name = "userName", value = "USER_NAME", type = "String"), @ApiImplicitParam(name = "userPassword", value = "USER_PASSWORD", type = "String"), @ApiImplicitParam(name = "repeatPassword", value = "REPEAT_PASSWORD", type = "String"), @ApiImplicitParam(name = "email", value = "EMAIL", type = "String"), }) @PostMapping("/register") @ResponseStatus(HttpStatus.OK) @ApiException(CREATE_USER_ERROR) public Result<Object> registerUser(@RequestParam(value = "userName") String userName, @RequestParam(value = "userPassword") String userPassword, @RequestParam(value = "repeatPassword") String repeatPassword, @RequestParam(value = "email") String email) throws Exception { userName = userName.replaceAll("[\n|\r|\t]", ""); userPassword = userPassword.replaceAll("[\n|\r|\t]", ""); repeatPassword = repeatPassword.replaceAll("[\n|\r|\t]", ""); email = email.replaceAll("[\n|\r|\t]", ""); logger.info("user self-register, userName: {}, userPassword {}, repeatPassword {}, eamil {}", userName, userPassword, repeatPassword, email); Map<String, Object> result = usersService.registerUser(userName, userPassword, repeatPassword, email); return returnDataList(result); } }
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UsersService.java +33 −0 Original line number Diff line number Diff line Loading @@ -908,4 +908,37 @@ public class UsersService extends BaseService { } } } /** * register user, default state is 0, default tenant_id is 1, no phone, no queue * * @param userName user name * @param userPassword user password * @param repeatPassword repeat password * @param email email * @return register result code * @throws Exception exception */ @Transactional(rollbackFor = Exception.class) public Map<String, Object> registerUser(String userName, String userPassword, String repeatPassword, String email) throws Exception { Map<String, Object> result = new HashMap<>(5); //check user params String msg = this.checkUserParams(userName, userPassword, email, ""); if (!StringUtils.isEmpty(msg)) { putMsg(result, Status.REQUEST_PARAMS_NOT_VALID_ERROR,msg); return result; } if (!userPassword.equals(repeatPassword)) { putMsg(result, Status.REQUEST_PARAMS_NOT_VALID_ERROR, "two passwords are not same"); return result; } createUser(userName, userPassword, email, 1, "", "", 0); putMsg(result, Status.SUCCESS); return result; } }
dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UsersControllerTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -268,4 +268,23 @@ public class UsersControllerTest extends AbstractControllerTest{ Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); logger.info(mvcResult.getResponse().getContentAsString()); } @Test public void testRegisterUser() throws Exception { MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>(); paramsMap.add("userName","user_test"); paramsMap.add("userPassword","123456qwe?"); paramsMap.add("repeatPassword", "123456qwe?"); paramsMap.add("email","12343534@qq.com"); MvcResult mvcResult = mockMvc.perform(post("/users/register") .params(paramsMap)) .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8)) .andReturn(); Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); logger.info(mvcResult.getResponse().getContentAsString()); } }
dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/UsersServiceTest.java +45 −0 Original line number Diff line number Diff line Loading @@ -453,6 +453,51 @@ public class UsersServiceTest { Assert.assertTrue(CollectionUtils.isNotEmpty(userList)); } @Test public void testRegisterUser() { String userName = "userTest0002~"; String userPassword = "userTest"; String repeatPassword = "userTest"; String email = "123@qq.com"; try { //userName error Map<String, Object> result = usersService.registerUser(userName, userPassword, repeatPassword, email); logger.info(result.toString()); Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, result.get(Constants.STATUS)); userName = "userTest0002"; userPassword = "userTest000111111111111111"; //password error result = usersService.registerUser(userName, userPassword, repeatPassword, email); logger.info(result.toString()); Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, result.get(Constants.STATUS)); userPassword = "userTest0002"; email = "1q.com"; //email error result = usersService.registerUser(userName, userPassword, repeatPassword, email); logger.info(result.toString()); Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, result.get(Constants.STATUS)); //repeatPassword error email = "7400@qq.com"; repeatPassword = "userPassword"; result = usersService.registerUser(userName, userPassword, repeatPassword, email); logger.info(result.toString()); Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, result.get(Constants.STATUS)); //success repeatPassword = "userTest0002"; result = usersService.registerUser(userName, userPassword, repeatPassword, email); logger.info(result.toString()); Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS)); } catch (Exception e) { logger.error(Status.CREATE_USER_ERROR.getMsg(),e); Assert.assertTrue(false); } } /** * get user * @return Loading