查询某个用户的所有令牌应该过滤掉过期的令牌

pull/165/head
gao 2023-09-18 11:58:39 +08:00
parent 543373d58a
commit 9d90ba4467
1 changed files with 38 additions and 29 deletions

View File

@ -107,10 +107,10 @@ public class AuthSessionServiceImpl implements AuthSessionService {
Page<AuthSessionPageResult> defaultPage = CommonPageRequest.defaultPage(); Page<AuthSessionPageResult> defaultPage = CommonPageRequest.defaultPage();
long current = defaultPage.getCurrent(); long current = defaultPage.getCurrent();
int total = StpUtil.searchSessionId("", -1, Convert.toInt(defaultPage.getSize()), true).size(); int total = StpUtil.searchSessionId("", -1, Convert.toInt(defaultPage.getSize()), true).size();
if(ObjectUtil.isNotEmpty(total)) { if (ObjectUtil.isNotEmpty(total)) {
defaultPage = new Page<>(current, defaultPage.getSize(), total); defaultPage = new Page<>(current, defaultPage.getSize(), total);
String keyword = ""; String keyword = "";
if(ObjectUtil.isNotEmpty(authSessionPageParam.getUserId())) { if (ObjectUtil.isNotEmpty(authSessionPageParam.getUserId())) {
keyword = authSessionPageParam.getUserId(); keyword = authSessionPageParam.getUserId();
} }
List<String> userIdList = StpUtil.searchSessionId(keyword, List<String> userIdList = StpUtil.searchSessionId(keyword,
@ -124,31 +124,37 @@ public class AuthSessionServiceImpl implements AuthSessionService {
authSessionPageResult.setSessionId(saSession.getId()); authSessionPageResult.setSessionId(saSession.getId());
authSessionPageResult.setSessionCreateTime(DateTime.of(saSession.getCreateTime())); authSessionPageResult.setSessionCreateTime(DateTime.of(saSession.getCreateTime()));
long sessionTimeOut = saSession.getTimeout(); long sessionTimeOut = saSession.getTimeout();
if(sessionTimeOut == -1) { if (sessionTimeOut == -1) {
authSessionPageResult.setSessionTimeout("永久"); authSessionPageResult.setSessionTimeout("永久");
} else { } else {
authSessionPageResult.setSessionTimeout(CommonTimeFormatUtil.formatSeconds(saSession.getTimeout())); authSessionPageResult.setSessionTimeout(CommonTimeFormatUtil.formatSeconds(saSession.getTimeout()));
} }
List<AuthSessionPageResult.TokenSignInfo> tokenInfoList = saSession.getTokenSignList().stream().map(tokenSign -> { List<AuthSessionPageResult.TokenSignInfo> tokenInfoList = saSession.getTokenSignList().stream()
AuthSessionPageResult.TokenSignInfo tokenSignInfo = new AuthSessionPageResult.TokenSignInfo(); .filter(tokenSign -> {
tokenSignInfo.setTokenValue(tokenSign.getValue()); long tokenTimeout = SaManager.getSaTokenDao().getTimeout(StpUtil.stpLogic.splicingKeyTokenValue(tokenSign.getValue()));
tokenSignInfo.setTokenDevice(tokenSign.getDevice()); return tokenTimeout != -2; // 过滤掉tokenTimeout为-2的元素
long tokenTimeout = SaManager.getSaTokenDao().getTimeout(StpUtil.stpLogic.splicingKeyTokenValue(tokenSign.getValue())); })
long tokenTimeoutConfig = StpUtil.stpLogic.getConfig().getTimeout(); .map(tokenSign -> {
if(tokenTimeout == -1) { AuthSessionPageResult.TokenSignInfo tokenSignInfo = new AuthSessionPageResult.TokenSignInfo();
tokenSignInfo.setTokenTimeout("永久"); tokenSignInfo.setTokenValue(tokenSign.getValue());
tokenSignInfo.setTokenTimeoutPercent(100d); tokenSignInfo.setTokenDevice(tokenSign.getDevice());
} else { long tokenTimeout = SaManager.getSaTokenDao().getTimeout(StpUtil.stpLogic.splicingKeyTokenValue(tokenSign.getValue()));
tokenSignInfo.setTokenTimeout(CommonTimeFormatUtil.formatSeconds(SaManager.getSaTokenDao() long tokenTimeoutConfig = StpUtil.stpLogic.getConfig().getTimeout();
.getTimeout(StpUtil.stpLogic.splicingKeyTokenValue(tokenSign.getValue())))); if (tokenTimeout == -1) {
if(tokenTimeoutConfig == -1) { tokenSignInfo.setTokenTimeout("永久");
tokenSignInfo.setTokenTimeoutPercent(0d); tokenSignInfo.setTokenTimeoutPercent(100d);
} else { } else {
tokenSignInfo.setTokenTimeoutPercent(NumberUtil.div(tokenTimeout, tokenTimeoutConfig)); tokenSignInfo.setTokenTimeout(CommonTimeFormatUtil.formatSeconds(SaManager.getSaTokenDao()
} .getTimeout(StpUtil.stpLogic.splicingKeyTokenValue(tokenSign.getValue()))));
} if (tokenTimeoutConfig == -1) {
return tokenSignInfo; tokenSignInfo.setTokenTimeoutPercent(0d);
}).collect(Collectors.toList()); } else {
tokenSignInfo.setTokenTimeoutPercent(NumberUtil.div(tokenTimeout, tokenTimeoutConfig));
}
}
return tokenSignInfo;
})
.collect(Collectors.toList());
authSessionPageResult.setTokenCount(tokenInfoList.size()); authSessionPageResult.setTokenCount(tokenInfoList.size());
authSessionPageResult.setTokenSignList(tokenInfoList); authSessionPageResult.setTokenSignList(tokenInfoList);
return authSessionPageResult; return authSessionPageResult;
@ -164,10 +170,10 @@ public class AuthSessionServiceImpl implements AuthSessionService {
Page<AuthSessionPageResult> defaultPage = CommonPageRequest.defaultPage(); Page<AuthSessionPageResult> defaultPage = CommonPageRequest.defaultPage();
long current = defaultPage.getCurrent(); long current = defaultPage.getCurrent();
int total = StpClientUtil.searchSessionId("", -1, Convert.toInt(defaultPage.getSize()), true).size(); int total = StpClientUtil.searchSessionId("", -1, Convert.toInt(defaultPage.getSize()), true).size();
if(ObjectUtil.isNotEmpty(total)) { if (ObjectUtil.isNotEmpty(total)) {
defaultPage = new Page<>(current, defaultPage.getSize(), total); defaultPage = new Page<>(current, defaultPage.getSize(), total);
String keyword = ""; String keyword = "";
if(ObjectUtil.isNotEmpty(authSessionPageParam.getUserId())) { if (ObjectUtil.isNotEmpty(authSessionPageParam.getUserId())) {
keyword = authSessionPageParam.getUserId(); keyword = authSessionPageParam.getUserId();
} }
List<String> userIdList = StpClientUtil.searchSessionId(keyword, List<String> userIdList = StpClientUtil.searchSessionId(keyword,
@ -181,24 +187,27 @@ public class AuthSessionServiceImpl implements AuthSessionService {
authSessionPageResult.setSessionId(saSession.getId()); authSessionPageResult.setSessionId(saSession.getId());
authSessionPageResult.setSessionCreateTime(DateTime.of(saSession.getCreateTime())); authSessionPageResult.setSessionCreateTime(DateTime.of(saSession.getCreateTime()));
long sessionTimeOut = saSession.getTimeout(); long sessionTimeOut = saSession.getTimeout();
if(sessionTimeOut == -1) { if (sessionTimeOut == -1) {
authSessionPageResult.setSessionTimeout("永久"); authSessionPageResult.setSessionTimeout("永久");
} else { } else {
authSessionPageResult.setSessionTimeout(CommonTimeFormatUtil.formatSeconds(saSession.getTimeout())); authSessionPageResult.setSessionTimeout(CommonTimeFormatUtil.formatSeconds(saSession.getTimeout()));
} }
List<AuthSessionPageResult.TokenSignInfo> tokenInfoList = saSession.getTokenSignList().stream().map(tokenSign -> { List<AuthSessionPageResult.TokenSignInfo> tokenInfoList = saSession.getTokenSignList().stream().filter(tokenSign -> {
long tokenTimeout = SaManager.getSaTokenDao().getTimeout(StpUtil.stpLogic.splicingKeyTokenValue(tokenSign.getValue()));
return tokenTimeout != -2; // 过滤掉tokenTimeout为-2的元素
}).map(tokenSign -> {
AuthSessionPageResult.TokenSignInfo tokenSignInfo = new AuthSessionPageResult.TokenSignInfo(); AuthSessionPageResult.TokenSignInfo tokenSignInfo = new AuthSessionPageResult.TokenSignInfo();
tokenSignInfo.setTokenValue(tokenSign.getValue()); tokenSignInfo.setTokenValue(tokenSign.getValue());
tokenSignInfo.setTokenDevice(tokenSign.getDevice()); tokenSignInfo.setTokenDevice(tokenSign.getDevice());
long tokenTimeout = SaManager.getSaTokenDao().getTimeout(StpClientUtil.stpLogic.splicingKeyTokenValue(tokenSign.getValue())); long tokenTimeout = SaManager.getSaTokenDao().getTimeout(StpClientUtil.stpLogic.splicingKeyTokenValue(tokenSign.getValue()));
long tokenTimeoutConfig = StpClientUtil.stpLogic.getConfig().getTimeout(); long tokenTimeoutConfig = StpClientUtil.stpLogic.getConfig().getTimeout();
if(tokenTimeout == -1) { if (tokenTimeout == -1) {
tokenSignInfo.setTokenTimeout("永久"); tokenSignInfo.setTokenTimeout("永久");
tokenSignInfo.setTokenTimeoutPercent(100d); tokenSignInfo.setTokenTimeoutPercent(100d);
} else { } else {
tokenSignInfo.setTokenTimeout(CommonTimeFormatUtil.formatSeconds(SaManager.getSaTokenDao() tokenSignInfo.setTokenTimeout(CommonTimeFormatUtil.formatSeconds(SaManager.getSaTokenDao()
.getTimeout(StpClientUtil.stpLogic.splicingKeyTokenValue(tokenSign.getValue())))); .getTimeout(StpClientUtil.stpLogic.splicingKeyTokenValue(tokenSign.getValue()))));
if(tokenTimeoutConfig == -1) { if (tokenTimeoutConfig == -1) {
tokenSignInfo.setTokenTimeoutPercent(0d); tokenSignInfo.setTokenTimeoutPercent(0d);
} else { } else {
tokenSignInfo.setTokenTimeoutPercent(NumberUtil.div(tokenTimeout, tokenTimeoutConfig)); tokenSignInfo.setTokenTimeoutPercent(NumberUtil.div(tokenTimeout, tokenTimeoutConfig));