mirror of
https://github.com/didi/KnowStreaming.git
synced 2026-01-05 13:08:48 +08:00
optimize login failed message
This commit is contained in:
@@ -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<AccountDO> getAccountDO(String username);
|
||||
|
||||
/**
|
||||
* 删除用户
|
||||
|
||||
@@ -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<Account> login(HttpServletRequest request, HttpServletResponse response, LoginDTO dto);
|
||||
|
||||
void logout(HttpServletRequest request, HttpServletResponse response, Boolean needJump2LoginPage);
|
||||
|
||||
|
||||
@@ -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<String> loginAndGetLdap(HttpServletRequest request, HttpServletResponse response, LoginDTO dto);
|
||||
|
||||
public abstract void logout(HttpServletRequest request, HttpServletResponse response, Boolean needJump2LoginPage);
|
||||
|
||||
|
||||
@@ -41,7 +41,14 @@ public class BaseEnterpriseStaffService extends AbstractEnterpriseStaffService {
|
||||
@Override
|
||||
public List<EnterpriseStaff> searchEnterpriseStaffByKeyWord(String keyWord) {
|
||||
try {
|
||||
List<AccountDO> doList = accountDao.searchByNamePrefix(keyWord);
|
||||
List<AccountDO> doList = null;
|
||||
if (ValidateUtils.isBlank(keyWord)) {
|
||||
// 当用户没有任何输入的时候, 返回全部的用户
|
||||
doList = accountDao.list();
|
||||
} else {
|
||||
doList = accountDao.searchByNamePrefix(keyWord);
|
||||
}
|
||||
|
||||
if (ValidateUtils.isEmptyList(doList)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
@@ -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<String> 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<AccountDO> 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
|
||||
|
||||
@@ -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<AccountDO> 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
|
||||
|
||||
@@ -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<Account> login(HttpServletRequest request, HttpServletResponse response, LoginDTO loginDTO) {
|
||||
Result<String> 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) {
|
||||
|
||||
Reference in New Issue
Block a user