增加登录用户状态验证
This commit is contained in:
parent
f4afb708a7
commit
5d528dc23c
@ -11,8 +11,10 @@ import ink.wgink.login.app.pojo.vos.appsign.AppLoginVO;
|
|||||||
import ink.wgink.login.app.service.appdeviceuser.IAppDeviceUserService;
|
import ink.wgink.login.app.service.appdeviceuser.IAppDeviceUserService;
|
||||||
import ink.wgink.login.app.service.appsign.IAppSignService;
|
import ink.wgink.login.app.service.appsign.IAppSignService;
|
||||||
import ink.wgink.login.app.service.appversion.IAppVersionService;
|
import ink.wgink.login.app.service.appversion.IAppVersionService;
|
||||||
|
import ink.wgink.login.base.exceptions.UserAuthenticationException;
|
||||||
import ink.wgink.login.base.service.BaseAppSignService;
|
import ink.wgink.login.base.service.BaseAppSignService;
|
||||||
import ink.wgink.pojo.bos.LoginAppUser;
|
import ink.wgink.pojo.bos.LoginAppUser;
|
||||||
|
import ink.wgink.service.user.enums.UserStateEnum;
|
||||||
import ink.wgink.service.user.pojo.pos.UserPO;
|
import ink.wgink.service.user.pojo.pos.UserPO;
|
||||||
import ink.wgink.service.user.service.IUserService;
|
import ink.wgink.service.user.service.IUserService;
|
||||||
import ink.wgink.util.date.DateUtil;
|
import ink.wgink.util.date.DateUtil;
|
||||||
@ -60,6 +62,18 @@ public class AppSignServiceImpl extends BaseAppSignService implements IAppSignSe
|
|||||||
if (userPO == null) {
|
if (userPO == null) {
|
||||||
throw new SearchException("用户不存在");
|
throw new SearchException("用户不存在");
|
||||||
}
|
}
|
||||||
|
if (userPO.getUserState() == UserStateEnum.UN_EXAMINE.getValue()) {
|
||||||
|
throw new SearchException("用户未审核");
|
||||||
|
}
|
||||||
|
if (userPO.getUserState() == UserStateEnum.UN_PASS.getValue()) {
|
||||||
|
throw new SearchException("用户审核未通过");
|
||||||
|
}
|
||||||
|
if (userPO.getUserState() == UserStateEnum.LOCK.getValue()) {
|
||||||
|
throw new SearchException("用户已锁定");
|
||||||
|
}
|
||||||
|
if(DateUtil.isDateExpired(userPO.getUserExpiredDate())) {
|
||||||
|
throw new UserAuthenticationException("账号已经过期");
|
||||||
|
}
|
||||||
if (!passwordEncoder.matches(userPassword, userPO.getUserPassword())) {
|
if (!passwordEncoder.matches(userPassword, userPO.getUserPassword())) {
|
||||||
throw new SearchException("用户名或密码错误");
|
throw new SearchException("用户名或密码错误");
|
||||||
}
|
}
|
||||||
@ -140,4 +154,5 @@ public class AppSignServiceImpl extends BaseAppSignService implements IAppSignSe
|
|||||||
UserPO userPO = userService.getPO(userId);
|
UserPO userPO = userService.getPO(userId);
|
||||||
return getToken(userPO);
|
return getToken(userPO);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,16 @@
|
|||||||
package ink.wgink.login.base.service.user;
|
package ink.wgink.login.base.service.user;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import ink.wgink.exceptions.SearchException;
|
||||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||||
import ink.wgink.interfaces.user.IUserDetailCheckService;
|
import ink.wgink.interfaces.user.IUserDetailCheckService;
|
||||||
import ink.wgink.login.base.exceptions.UserAuthenticationException;
|
import ink.wgink.login.base.exceptions.UserAuthenticationException;
|
||||||
import ink.wgink.login.base.manager.ConfigManager;
|
import ink.wgink.login.base.manager.ConfigManager;
|
||||||
import ink.wgink.pojo.bos.LoginUser;
|
import ink.wgink.pojo.bos.LoginUser;
|
||||||
|
import ink.wgink.service.user.enums.UserStateEnum;
|
||||||
import ink.wgink.service.user.pojo.pos.UserPO;
|
import ink.wgink.service.user.pojo.pos.UserPO;
|
||||||
import ink.wgink.service.user.service.IUserService;
|
import ink.wgink.service.user.service.IUserService;
|
||||||
|
import ink.wgink.util.date.DateUtil;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.joda.time.DateTime;
|
import org.joda.time.DateTime;
|
||||||
import org.joda.time.format.DateTimeFormat;
|
import org.joda.time.format.DateTimeFormat;
|
||||||
@ -50,10 +53,16 @@ public class UserDetailServiceImpl implements UserDetailsService, IUserDetailChe
|
|||||||
if (null == userPO) {
|
if (null == userPO) {
|
||||||
throw new UserAuthenticationException("账号不存在");
|
throw new UserAuthenticationException("账号不存在");
|
||||||
}
|
}
|
||||||
if (userPO.getUserState() == 1) {
|
if (userPO.getUserState() == UserStateEnum.UN_EXAMINE.getValue()) {
|
||||||
throw new UserAuthenticationException("账号已冻结");
|
throw new SearchException("用户未审核");
|
||||||
}
|
}
|
||||||
if (isAccountExpired(userPO)) {
|
if (userPO.getUserState() == UserStateEnum.UN_PASS.getValue()) {
|
||||||
|
throw new SearchException("用户审核未通过");
|
||||||
|
}
|
||||||
|
if (userPO.getUserState() == UserStateEnum.LOCK.getValue()) {
|
||||||
|
throw new UserAuthenticationException("账号已锁定");
|
||||||
|
}
|
||||||
|
if (DateUtil.isDateExpired(userPO.getUserExpiredDate())) {
|
||||||
throw new UserAuthenticationException("账号已经过期");
|
throw new UserAuthenticationException("账号已经过期");
|
||||||
}
|
}
|
||||||
return createUserBO(userPO);
|
return createUserBO(userPO);
|
||||||
@ -131,22 +140,4 @@ public class UserDetailServiceImpl implements UserDetailsService, IUserDetailChe
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 账号是否过期
|
|
||||||
*
|
|
||||||
* @param userPO
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private boolean isAccountExpired(UserPO userPO) {
|
|
||||||
if (StringUtils.isBlank(userPO.getUserExpiredDate())) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
DateTime now = DateTime.now();
|
|
||||||
DateTime expiredDateTime = DateTime.parse(userPO.getUserExpiredDate(), DateTimeFormat.forPattern(ISystemConstant.DATE_FORMATTER_YYYY_MM_DD_HH_MM_SS));
|
|
||||||
if (expiredDateTime.isAfter(now)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user