登录-封禁-ticket加判封禁状态
This commit is contained in:
@@ -9,7 +9,6 @@ import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.common.utils.CommonUtil;
|
||||
import com.accompany.core.exception.ServiceException;
|
||||
import com.accompany.core.model.*;
|
||||
import com.accompany.core.mybatismapper.PrettyNumberMapper;
|
||||
import com.accompany.core.mybatismapper.PrettyNumberRecordMapper;
|
||||
import com.accompany.core.service.SysConfService;
|
||||
import com.accompany.core.service.account.AccountService;
|
||||
@@ -17,7 +16,6 @@ import com.accompany.core.service.account.LoginRecordService;
|
||||
import com.accompany.core.service.account.UserAppService;
|
||||
import com.accompany.core.service.common.JedisService;
|
||||
import com.accompany.core.service.region.RegionNetworkService;
|
||||
import com.accompany.core.service.region.RegionService;
|
||||
import com.accompany.core.service.user.PhoneBlackService;
|
||||
import com.accompany.core.service.user.UsersBaseService;
|
||||
import com.accompany.core.util.I18NMessageSourceUtil;
|
||||
@@ -173,11 +171,6 @@ public class MyUserDetailsServiceImpl implements MyUserDetailsService {
|
||||
throw new ServiceException(BusiStatus.ILLEGAL_OPERATE);
|
||||
}
|
||||
|
||||
// 检查账号是否在号段黑名单
|
||||
if (phoneBlackService.checkIsNeedIntercept(account.getPhone())) {
|
||||
throw new ServiceException(BusiStatus.PHONE_BE_INTERCEPTED);
|
||||
}
|
||||
|
||||
Long blockEndTime = accountBlockCheckService.checkReturnEndTime(account.getErbanNo(), account.getPhone(), deviceId, ip);
|
||||
//检查账号、设备号、号段是否封禁
|
||||
if (null != blockEndTime){
|
||||
|
@@ -7,7 +7,6 @@ import com.accompany.common.utils.AppVersionUtil;
|
||||
import com.accompany.common.utils.DESUtils;
|
||||
import com.accompany.common.utils.StringUtils;
|
||||
import com.accompany.core.service.SysConfService;
|
||||
import com.accompany.core.service.user.PhoneBlackService;
|
||||
import com.accompany.core.util.KeyStore;
|
||||
import com.accompany.core.util.MD5;
|
||||
import com.accompany.oauth2.constant.LoginTypeEnum;
|
||||
@@ -17,7 +16,6 @@ import com.accompany.oauth2.util.RequestContextHolderUtils;
|
||||
import org.apache.commons.beanutils.BeanUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.authentication.AuthenticationProvider;
|
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||
import org.springframework.security.core.Authentication;
|
||||
@@ -41,9 +39,6 @@ public class PasswordAuthenticationProvider implements AuthenticationProvider {
|
||||
|
||||
private final SysConfService sysConfService;
|
||||
|
||||
@Autowired
|
||||
private PhoneBlackService phoneBlackService;
|
||||
|
||||
public PasswordAuthenticationProvider(MyUserDetailsService myUserDetailsService, SysConfService sysConfService) {
|
||||
this.myUserDetailsService = myUserDetailsService;
|
||||
this.sysConfService = sysConfService;
|
||||
@@ -80,15 +75,7 @@ public class PasswordAuthenticationProvider implements AuthenticationProvider {
|
||||
} else if (StringUtils.isNotBlank(password)) {
|
||||
loginTypeEnum = LoginTypeEnum.PASSWORD;
|
||||
}
|
||||
// 低于1.5版本不能进行登录
|
||||
String limitAppVersion = sysConfService.getDefaultSysConfValueById(Constant.SysConfId.APP_VERSION_LIMIT, Constant.LOWEST_VERSION_FOR_USE);
|
||||
if (deviceInfo.getAppVersion() == null || AppVersionUtil.compareVersion(deviceInfo.getAppVersion(), limitAppVersion) < 0) {
|
||||
throw new CustomOAuth2Exception(CustomOAuth2Exception.APP_VERSION_TOO_OLD, BusiStatus.APP_VERSION_TOO_OLD.getReasonPhrase());
|
||||
}
|
||||
if (phoneBlackService.checkIsNeedIntercept(username)) {
|
||||
throw new CustomOAuth2Exception(CustomOAuth2Exception.PHONE_BE_INTERCEPTED,
|
||||
BusiStatus.PHONE_BE_INTERCEPTED.getReasonPhrase());
|
||||
}
|
||||
|
||||
UserDetails userDetails;
|
||||
try {
|
||||
userDetails = myUserDetailsService.loadUserByPhone(username, phoneAreaCode, smsCode, deviceInfo, ipAddress);
|
||||
@@ -102,6 +89,7 @@ public class PasswordAuthenticationProvider implements AuthenticationProvider {
|
||||
}
|
||||
myUserDetailsService.handlePwdLogin(username, password, userDetails);
|
||||
}
|
||||
|
||||
myUserDetailsService.login(username, userDetails, loginTypeEnum, deviceInfo, ipAddress, "", "", smsCode);
|
||||
} catch (CustomOAuth2Exception ce) {
|
||||
throw ce;
|
||||
|
@@ -3,10 +3,15 @@ package com.accompany.oauth2.ticket;
|
||||
import com.accompany.common.device.DeviceInfo;
|
||||
import com.accompany.core.model.Account;
|
||||
import com.accompany.core.model.AccountLoginRecord;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.accompany.core.service.account.AccountBlockCheckService;
|
||||
import com.accompany.core.service.account.AccountService;
|
||||
import com.accompany.core.service.account.LoginRecordService;
|
||||
import com.accompany.core.service.account.UserAppService;
|
||||
import com.accompany.core.service.user.UsersBaseService;
|
||||
import com.accompany.core.util.I18NMessageSourceUtil;
|
||||
import com.accompany.oauth2.constant.LoginTypeEnum;
|
||||
import com.accompany.oauth2.exception.CustomOAuth2Exception;
|
||||
import com.accompany.oauth2.model.AccountDetails;
|
||||
import com.accompany.oauth2.service.MyUserDetailsService;
|
||||
import com.accompany.oauth2.vo.TicketVo;
|
||||
@@ -27,6 +32,8 @@ import org.springframework.util.Assert;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import static com.accompany.core.enumeration.I18nAlertEnum.ACCOUNT_LOGIN_BLOCK_MSG;
|
||||
|
||||
/**
|
||||
* Created by PaperCut on 2018/8/10.
|
||||
*/
|
||||
@@ -47,6 +54,10 @@ public class TicketServices implements InitializingBean {
|
||||
private MyUserDetailsService myUserDetailsService;
|
||||
@Autowired
|
||||
private UserAppService userAppService;
|
||||
@Autowired
|
||||
private AccountBlockCheckService accountBlockCheckService;
|
||||
@Autowired
|
||||
private UsersBaseService usersBaseService;
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
@@ -92,7 +103,19 @@ public class TicketServices implements InitializingBean {
|
||||
throw new InvalidTokenException("Access token expired: " + accessTokenValue);
|
||||
}
|
||||
|
||||
Long uid = accountDetails.getAccount().getUid();
|
||||
Account account = accountDetails.getAccount();
|
||||
Long uid = account.getUid();
|
||||
Users users = usersBaseService.getUsersByUid(uid);
|
||||
Long blockEndTime = accountBlockCheckService.checkReturnEndTime(account.getErbanNo(), account.getPhone(), "", "");
|
||||
//检查账号、设备号、号段是否封禁
|
||||
if (null != blockEndTime){
|
||||
CustomOAuth2Exception exception = new CustomOAuth2Exception(CustomOAuth2Exception.ACCOUNT_ERROR, "");
|
||||
Integer partitionId = users.getPartitionId();
|
||||
exception.addAdditionalInformation("reason", I18NMessageSourceUtil.getMessage(ACCOUNT_LOGIN_BLOCK_MSG, new Object[]{users.getErbanNo()}, partitionId));
|
||||
exception.addAdditionalInformation("date", String.valueOf(blockEndTime));
|
||||
throw exception;
|
||||
}
|
||||
|
||||
String uidStr = uid.toString();
|
||||
String realAccessToken = ticketStore.readAccessToken(uidStr);
|
||||
logger.info("issueTicket. uid:{},realAccessToken:{},accessTokenValue:{}", uid, realAccessToken, accessTokenValue);
|
||||
|
@@ -53,12 +53,6 @@ public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdap
|
||||
@Autowired
|
||||
AuthenticationManager authenticationManager;
|
||||
@Autowired
|
||||
RedisConnectionFactory redisConnectionFactory;
|
||||
@Autowired
|
||||
ApplicationContext applicationContext;
|
||||
@Autowired
|
||||
SuperAdminGrantService superAdminGrantService;
|
||||
@Autowired
|
||||
OAuthConfig oAuthConfig;
|
||||
@Autowired
|
||||
TokenStore tokenStore;
|
||||
|
Reference in New Issue
Block a user