diff --git a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/AccountService.java b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/AccountService.java index bb845932..8b208385 100644 --- a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/AccountService.java +++ b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/AccountService.java @@ -2,6 +2,7 @@ package com.xiaojukeji.kafka.manager.account; import com.xiaojukeji.kafka.manager.account.common.EnterpriseStaff; import com.xiaojukeji.kafka.manager.common.bizenum.AccountRoleEnum; +import com.xiaojukeji.kafka.manager.common.entity.Result; import com.xiaojukeji.kafka.manager.common.entity.ResultStatus; import com.xiaojukeji.kafka.manager.common.entity.ao.account.Account; import com.xiaojukeji.kafka.manager.common.entity.pojo.AccountDO; @@ -25,7 +26,7 @@ public interface AccountService { * @param username 用户名 * @return */ - AccountDO getAccountDO(String username); + Result getAccountDO(String username); /** * 删除用户 diff --git a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/LoginService.java b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/LoginService.java index 0a061737..98e8bab1 100644 --- a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/LoginService.java +++ b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/LoginService.java @@ -1,5 +1,6 @@ package com.xiaojukeji.kafka.manager.account; +import com.xiaojukeji.kafka.manager.common.entity.Result; import com.xiaojukeji.kafka.manager.common.entity.ao.account.Account; import com.xiaojukeji.kafka.manager.common.entity.dto.normal.LoginDTO; @@ -11,7 +12,7 @@ import javax.servlet.http.HttpServletResponse; * @date 20/8/20 */ public interface LoginService { - Account login(HttpServletRequest request, HttpServletResponse response, LoginDTO dto); + Result login(HttpServletRequest request, HttpServletResponse response, LoginDTO dto); void logout(HttpServletRequest request, HttpServletResponse response, Boolean needJump2LoginPage); diff --git a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/component/AbstractSingleSignOn.java b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/component/AbstractSingleSignOn.java index d5528f0b..d6257364 100644 --- a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/component/AbstractSingleSignOn.java +++ b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/component/AbstractSingleSignOn.java @@ -1,5 +1,6 @@ package com.xiaojukeji.kafka.manager.account.component; +import com.xiaojukeji.kafka.manager.common.entity.Result; import com.xiaojukeji.kafka.manager.common.entity.dto.normal.LoginDTO; import javax.servlet.http.HttpServletRequest; @@ -18,7 +19,7 @@ public abstract class AbstractSingleSignOn { protected static final String HEADER_REDIRECT_KEY = "location"; - public abstract String loginAndGetLdap(HttpServletRequest request, HttpServletResponse response, LoginDTO dto); + public abstract Result loginAndGetLdap(HttpServletRequest request, HttpServletResponse response, LoginDTO dto); public abstract void logout(HttpServletRequest request, HttpServletResponse response, Boolean needJump2LoginPage); diff --git a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/component/account/BaseEnterpriseStaffService.java b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/component/account/BaseEnterpriseStaffService.java index b931eecd..2eef7774 100644 --- a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/component/account/BaseEnterpriseStaffService.java +++ b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/component/account/BaseEnterpriseStaffService.java @@ -41,7 +41,14 @@ public class BaseEnterpriseStaffService extends AbstractEnterpriseStaffService { @Override public List searchEnterpriseStaffByKeyWord(String keyWord) { try { - List doList = accountDao.searchByNamePrefix(keyWord); + List doList = null; + if (ValidateUtils.isBlank(keyWord)) { + // 当用户没有任何输入的时候, 返回全部的用户 + doList = accountDao.list(); + } else { + doList = accountDao.searchByNamePrefix(keyWord); + } + if (ValidateUtils.isEmptyList(doList)) { return new ArrayList<>(); } diff --git a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/component/sso/BaseSessionSignOn.java b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/component/sso/BaseSessionSignOn.java index 1e2dbb97..89be275b 100644 --- a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/component/sso/BaseSessionSignOn.java +++ b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/component/sso/BaseSessionSignOn.java @@ -3,6 +3,7 @@ package com.xiaojukeji.kafka.manager.account.component.sso; import com.xiaojukeji.kafka.manager.account.AccountService; import com.xiaojukeji.kafka.manager.account.component.AbstractSingleSignOn; import com.xiaojukeji.kafka.manager.common.constant.LoginConstant; +import com.xiaojukeji.kafka.manager.common.entity.Result; import com.xiaojukeji.kafka.manager.common.entity.dto.normal.LoginDTO; import com.xiaojukeji.kafka.manager.common.entity.pojo.AccountDO; import com.xiaojukeji.kafka.manager.common.utils.EncryptUtil; @@ -23,18 +24,21 @@ public class BaseSessionSignOn extends AbstractSingleSignOn { private AccountService accountService; @Override - public String loginAndGetLdap(HttpServletRequest request, HttpServletResponse response, LoginDTO dto) { + public Result loginAndGetLdap(HttpServletRequest request, HttpServletResponse response, LoginDTO dto) { if (ValidateUtils.isBlank(dto.getUsername()) || ValidateUtils.isNull(dto.getPassword())) { return null; } - AccountDO accountDO = accountService.getAccountDO(dto.getUsername()); - if (ValidateUtils.isNull(accountDO)) { - return null; + Result accountResult = accountService.getAccountDO(dto.getUsername()); + if (ValidateUtils.isNull(accountResult) || accountResult.failed()) { + return new Result<>(accountResult.getCode(), accountResult.getMessage()); } - if (!accountDO.getPassword().equals(EncryptUtil.md5(dto.getPassword()))) { - return null; + if (ValidateUtils.isNull(accountResult.getData())) { + return Result.buildFailure("username illegal"); } - return dto.getUsername(); + if (!accountResult.getData().getPassword().equals(EncryptUtil.md5(dto.getPassword()))) { + return Result.buildFailure("password illegal"); + } + return Result.buildSuc(accountResult.getData().getUsername()); } @Override diff --git a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/impl/AccountServiceImpl.java b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/impl/AccountServiceImpl.java index b03cd195..39d773ed 100644 --- a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/impl/AccountServiceImpl.java +++ b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/impl/AccountServiceImpl.java @@ -7,6 +7,7 @@ import com.xiaojukeji.kafka.manager.account.common.EnterpriseStaff; import com.xiaojukeji.kafka.manager.account.component.AbstractEnterpriseStaffService; import com.xiaojukeji.kafka.manager.common.bizenum.AccountRoleEnum; import com.xiaojukeji.kafka.manager.common.constant.Constant; +import com.xiaojukeji.kafka.manager.common.entity.Result; import com.xiaojukeji.kafka.manager.common.entity.ResultStatus; import com.xiaojukeji.kafka.manager.common.entity.ao.account.Account; import com.xiaojukeji.kafka.manager.common.entity.pojo.AccountDO; @@ -101,7 +102,7 @@ public class AccountServiceImpl implements AccountService { return ResultStatus.ACCOUNT_NOT_EXIST; } - if (!ValidateUtils.isNull(accountDO.getPassword())) { + if (!ValidateUtils.isBlank(accountDO.getPassword())) { accountDO.setPassword(EncryptUtil.md5(accountDO.getPassword())); } else { accountDO.setPassword(oldAccountDO.getPassword()); @@ -117,8 +118,13 @@ public class AccountServiceImpl implements AccountService { } @Override - public AccountDO getAccountDO(String username) { - return accountDao.getByName(username); + public Result getAccountDO(String username) { + try { + return Result.buildSuc(accountDao.getByName(username)); + } catch (Exception e) { + LOGGER.warn("class=AccountServiceImpl||method=getAccountDO||username={}||errMsg={}||msg=get account fail", username, e.getMessage()); + } + return Result.buildFrom(ResultStatus.MYSQL_ERROR); } @Override diff --git a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/impl/LoginServiceImpl.java b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/impl/LoginServiceImpl.java index d6acb2f1..142dd239 100644 --- a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/impl/LoginServiceImpl.java +++ b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/impl/LoginServiceImpl.java @@ -6,6 +6,7 @@ import com.xiaojukeji.kafka.manager.account.LoginService; import com.xiaojukeji.kafka.manager.common.bizenum.AccountRoleEnum; import com.xiaojukeji.kafka.manager.common.constant.ApiPrefix; import com.xiaojukeji.kafka.manager.common.constant.LoginConstant; +import com.xiaojukeji.kafka.manager.common.entity.Result; import com.xiaojukeji.kafka.manager.common.entity.ao.account.Account; import com.xiaojukeji.kafka.manager.common.entity.dto.normal.LoginDTO; import com.xiaojukeji.kafka.manager.common.utils.ValidateUtils; @@ -34,15 +35,15 @@ public class LoginServiceImpl implements LoginService { private AbstractSingleSignOn singleSignOn; @Override - public Account login(HttpServletRequest request, HttpServletResponse response, LoginDTO loginDTO) { - String username = singleSignOn.loginAndGetLdap(request, response, loginDTO); - if (ValidateUtils.isBlank(username)) { + public Result login(HttpServletRequest request, HttpServletResponse response, LoginDTO loginDTO) { + Result userResult = singleSignOn.loginAndGetLdap(request, response, loginDTO); + if (ValidateUtils.isNull(userResult) || userResult.failed()) { logout(request, response, false); - return null; + return new Result<>(userResult.getCode(), userResult.getMessage()); } - Account account = accountService.getAccountFromCache(username); + Account account = accountService.getAccountFromCache(userResult.getData()); initLoginContext(request, response, account); - return account; + return Result.buildSuc(account); } private void initLoginContext(HttpServletRequest request, HttpServletResponse response, Account account) { diff --git a/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/LoginController.java b/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/LoginController.java index 06ef70a6..462b46a6 100644 --- a/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/LoginController.java +++ b/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/LoginController.java @@ -1,8 +1,6 @@ package com.xiaojukeji.kafka.manager.web.api.versionone; -import com.xiaojukeji.kafka.manager.common.constant.Constant; import com.xiaojukeji.kafka.manager.common.entity.Result; -import com.xiaojukeji.kafka.manager.common.entity.ResultStatus; import com.xiaojukeji.kafka.manager.common.entity.ao.account.Account; import com.xiaojukeji.kafka.manager.common.entity.dto.normal.LoginDTO; import com.xiaojukeji.kafka.manager.common.entity.vo.common.AccountVO; @@ -11,8 +9,6 @@ import com.xiaojukeji.kafka.manager.account.LoginService; import com.xiaojukeji.kafka.manager.common.constant.ApiPrefix; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -28,26 +24,22 @@ import javax.servlet.http.HttpServletResponse; @RestController @RequestMapping(ApiPrefix.API_V1_SSO_PREFIX) public class LoginController { - private static final Logger LOGGER = LoggerFactory.getLogger(LoginController.class); - @Autowired private LoginService loginService; @ApiOperation(value = "登陆", notes = "") @RequestMapping(value = "login", method = RequestMethod.POST) @ResponseBody - public Result login(HttpServletRequest request, - HttpServletResponse response, - @RequestBody LoginDTO dto){ - Account account = loginService.login(request, response, dto); - if (ValidateUtils.isNull(account)) { - return Result.buildFrom(ResultStatus.LOGIN_FAILED); + public Result login(HttpServletRequest request, HttpServletResponse response, @RequestBody LoginDTO dto){ + Result accountResult = loginService.login(request, response, dto); + if (ValidateUtils.isNull(accountResult) || accountResult.failed()) { + return new Result<>(accountResult.getCode(), accountResult.getMessage()); } AccountVO vo = new AccountVO(); - vo.setUsername(account.getUsername()); - vo.setChineseName(account.getChineseName()); - vo.setDepartment(account.getDepartment()); - vo.setRole(account.getAccountRoleEnum().getRole()); + vo.setUsername(accountResult.getData().getUsername()); + vo.setChineseName(accountResult.getData().getChineseName()); + vo.setDepartment(accountResult.getData().getDepartment()); + vo.setRole(accountResult.getData().getAccountRoleEnum().getRole()); return new Result<>(vo); } @@ -58,28 +50,4 @@ public class LoginController { loginService.logout(request, response, true); return new Result(); } - - @Deprecated - @ApiOperation(value = "登录检查", notes = "检查SSO返回的Code") - @RequestMapping(value = "xiaojukeji/login-check", method = RequestMethod.POST) - @ResponseBody - public Result checkCodeAndGetStaffInfo(HttpServletRequest request, - HttpServletResponse response, - @RequestBody LoginDTO dto) { - Result ra = login(request, response, dto); - if (!Constant.SUCCESS.equals(ra.getCode())) { - LOGGER.info("user login failed, req:{} result:{}.", dto, ra); - } else { - LOGGER.info("user login success, req:{} result:{}.", dto, ra); - } - return ra; - } - - @Deprecated - @ApiOperation(value = "登出", notes = "") - @RequestMapping(value = "xiaojukeji/logout", method = RequestMethod.DELETE) - @ResponseBody - public Result logout(HttpServletRequest request, HttpServletResponse response) { - return logoff(request, response); - } } diff --git a/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/rd/RdAccountController.java b/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/rd/RdAccountController.java index 1df3dce6..5efbbfce 100644 --- a/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/rd/RdAccountController.java +++ b/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/rd/RdAccountController.java @@ -35,7 +35,7 @@ public class RdAccountController { @RequestMapping(value = "accounts", method = RequestMethod.POST) @ResponseBody public Result addAccount(@RequestBody AccountDTO dto) { - if (!dto.legal() || ValidateUtils.isNull(dto.getPassword())) { + if (!dto.legal() || ValidateUtils.isBlank(dto.getPassword())) { return Result.buildFrom(ResultStatus.PARAM_ILLEGAL); } ResultStatus rs = accountService.createAccount(AccountConverter.convert2AccountDO(dto)); diff --git a/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/config/SwaggerConfig.java b/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/config/SwaggerConfig.java index 209d15b5..91d0080c 100644 --- a/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/config/SwaggerConfig.java +++ b/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/config/SwaggerConfig.java @@ -39,10 +39,10 @@ public class SwaggerConfig implements WebMvcConfigurer { private ApiInfo apiInfo() { return new ApiInfoBuilder() - .title("Kafka云平台-接口文档") - .description("欢迎使用滴滴出行开源kafka-manager") + .title("Logi-KafkaManager 接口文档") + .description("欢迎使用滴滴Logi-KafkaManager") .contact("huangyiminghappy@163.com") - .version("2.0") + .version("2.2.0") .build(); }