[房间切换]-修改appVersion保存逻辑
This commit is contained in:
@@ -128,6 +128,7 @@ public class MyUserDetailsServiceImpl implements MyUserDetailsService {
|
||||
String deviceId = deviceInfo.getDeviceId();
|
||||
String client = deviceInfo.getClient();
|
||||
String app = deviceInfo.getApp();
|
||||
String appVersion = deviceInfo.getAppVersion();
|
||||
Long uid = account.getUid();
|
||||
Date date = new Date();
|
||||
// 拦截指定账号登录
|
||||
@@ -172,7 +173,7 @@ public class MyUserDetailsServiceImpl implements MyUserDetailsService {
|
||||
account.setLastLoginIp(ip);
|
||||
accountService.updateById(account);
|
||||
//更新用户正在使用的app字段
|
||||
userAppService.updateCurrentApp(uid, app, date, ip);
|
||||
userAppService.updateCurrentApp(uid, app, date, ip, appVersion);
|
||||
//将用户信息登记
|
||||
AccountLoginRecord accountLoginRecord = buildAccountLoginRecord(ip, account, loginType.getValue(), deviceInfo, openId);
|
||||
loginRecordService.addAccountLoginRecordAsync(accountLoginRecord);
|
||||
|
@@ -30,7 +30,7 @@ import java.util.*;
|
||||
/**
|
||||
* Created by PaperCut on 2018/8/10.
|
||||
*/
|
||||
public class TicketServices implements InitializingBean{
|
||||
public class TicketServices implements InitializingBean {
|
||||
private static final Logger logger = LoggerFactory.getLogger(TicketServices.class);
|
||||
|
||||
private final int ticketValiditySeconds = 60 * 60; //ticket过期时间
|
||||
@@ -73,21 +73,21 @@ public class TicketServices implements InitializingBean{
|
||||
|
||||
public Map<String, Object> issueTicket(String accessTokenValue) {
|
||||
OAuth2AccessToken accessToken = tokenStore.readAccessToken(accessTokenValue);
|
||||
if(accessToken == null){
|
||||
if (accessToken == null) {
|
||||
throw new InvalidTokenException("Invalid access token: " + accessTokenValue);
|
||||
}else if(accessToken.isExpired()){
|
||||
} else if (accessToken.isExpired()) {
|
||||
throw new InvalidTokenException("Access token expired: " + accessTokenValue);
|
||||
}
|
||||
|
||||
OAuth2Authentication authentication = tokenStore.readAuthentication(accessToken);
|
||||
UserDetails userDetails = userDetailsService.loadUserByUsername(authentication.getName());
|
||||
AccountDetails accountDetails = userDetails instanceof AccountDetails ? (AccountDetails)userDetails : null;
|
||||
if(accountDetails == null){
|
||||
AccountDetails accountDetails = userDetails instanceof AccountDetails ? (AccountDetails) userDetails : null;
|
||||
if (accountDetails == null) {
|
||||
throw new InvalidTokenException("accountDetails null: " + accessTokenValue);
|
||||
}
|
||||
|
||||
int ticketValidityMillSeconds = calTicketValiditySeconds(accessToken) * 1000;
|
||||
if(ticketValidityMillSeconds < 2000){
|
||||
if (ticketValidityMillSeconds < 2000) {
|
||||
//accessToken剩余2秒超时,直接抛出过期异常
|
||||
throw new InvalidTokenException("Access token expired: " + accessTokenValue);
|
||||
}
|
||||
@@ -96,10 +96,10 @@ public class TicketServices implements InitializingBean{
|
||||
String uidStr = uid.toString();
|
||||
String realAccessToken = ticketStore.readAccessToken(uidStr);
|
||||
logger.info("issueTicket. uid:{},realAccessToken:{},accessTokenValue:{}", uid, realAccessToken, accessTokenValue);
|
||||
if(StringUtils.isEmpty(realAccessToken)){
|
||||
if (StringUtils.isEmpty(realAccessToken)) {
|
||||
throw new InvalidTokenException("accessTokenCache null: " + accessTokenValue);
|
||||
}
|
||||
if(!realAccessToken.equals(accessTokenValue)){
|
||||
if (!realAccessToken.equals(accessTokenValue)) {
|
||||
throw new InvalidTokenException("acessToken error...please relogin now. " + accessTokenValue);
|
||||
}
|
||||
|
||||
@@ -108,17 +108,17 @@ public class TicketServices implements InitializingBean{
|
||||
defaultTicket.setExpiresIn(ticketValidityMillSeconds);
|
||||
|
||||
List<TicketVo> tickets = new ArrayList<>();
|
||||
Ticket newTicket = ticketEnhancer.enhance(defaultTicket,authentication,accountDetails);
|
||||
Ticket newTicket = ticketEnhancer.enhance(defaultTicket, authentication, accountDetails);
|
||||
ticketStore.storeTicket(newTicket, authentication, accountDetails);
|
||||
tickets.add(new TicketVo(newTicket));
|
||||
|
||||
Map<String,Object> maps = Maps.newHashMap();
|
||||
maps.put("tickets",tickets);
|
||||
Map<String, Object> maps = Maps.newHashMap();
|
||||
maps.put("tickets", tickets);
|
||||
maps.put("uid", uid);
|
||||
return maps;
|
||||
}
|
||||
|
||||
private int calTicketValiditySeconds(OAuth2AccessToken accessToken){
|
||||
private int calTicketValiditySeconds(OAuth2AccessToken accessToken) {
|
||||
int accessTokenExpiresIn = accessToken.getExpiresIn();
|
||||
return accessTokenExpiresIn > ticketValiditySeconds ? ticketValiditySeconds : accessTokenExpiresIn;
|
||||
}
|
||||
@@ -126,8 +126,7 @@ public class TicketServices implements InitializingBean{
|
||||
@Async
|
||||
public void saveLoginRecord(Long uid, String ipAddress, DeviceInfo deviceInfo) {
|
||||
Optional.ofNullable(uid).ifPresent(id -> {
|
||||
userAppService.updateCurrentApp(uid, deviceInfo.getApp(), new Date(), ipAddress);
|
||||
|
||||
userAppService.updateCurrentApp(uid, deviceInfo.getApp(), new Date(), ipAddress, deviceInfo.getAppVersion());
|
||||
int count = loginRecordService.countLoginRecordToday(id);
|
||||
if (count == 0) {
|
||||
Account account = accountService.getById(id);
|
||||
|
Reference in New Issue
Block a user