登录-封禁-ticket加判封禁状态

This commit is contained in:
khalil
2024-11-06 16:07:05 +08:00
parent 8125b007e7
commit 0586c2a913
4 changed files with 26 additions and 28 deletions

View File

@@ -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){

View File

@@ -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;

View File

@@ -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);

View File

@@ -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;