From e1d498a6e753efbc94fe3ea5ffcf92db1e4d9ff3 Mon Sep 17 00:00:00 2001 From: zhaoxiaohao <279049017@qq.com> Date: Wed, 31 Mar 2021 18:45:00 +0800 Subject: [PATCH] 添加clientid glssz --- kidgrow-uaa/kidgrow-uaa-biz/src/main/java/com/kidgrow/oauth2/service/impl/RedisTokensServiceImpl.java | 31 +++++++++++++++++++++++-------- 1 files changed, 23 insertions(+), 8 deletions(-) diff --git a/kidgrow-uaa/kidgrow-uaa-biz/src/main/java/com/kidgrow/oauth2/service/impl/RedisTokensServiceImpl.java b/kidgrow-uaa/kidgrow-uaa-biz/src/main/java/com/kidgrow/oauth2/service/impl/RedisTokensServiceImpl.java index dc7af4f..74d1ccc 100644 --- a/kidgrow-uaa/kidgrow-uaa-biz/src/main/java/com/kidgrow/oauth2/service/impl/RedisTokensServiceImpl.java +++ b/kidgrow-uaa/kidgrow-uaa-biz/src/main/java/com/kidgrow/oauth2/service/impl/RedisTokensServiceImpl.java @@ -6,21 +6,25 @@ import com.kidgrow.common.model.PageResult; import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.utils.StringUtils; -import com.kidgrow.redis.template.RedisRepository; import com.kidgrow.oauth2.model.TokenVo; import com.kidgrow.oauth2.service.ITokensService; +import com.kidgrow.redis.template.RedisRepository; import com.kidgrow.redis.util.RedisUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken; +import org.springframework.security.oauth2.common.OAuth2AccessToken; import org.springframework.security.oauth2.provider.OAuth2Authentication; import org.springframework.security.oauth2.provider.OAuth2Request; +import org.springframework.security.oauth2.provider.token.TokenStore; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> @@ -37,6 +41,8 @@ private RedisRepository redisRepository; @Autowired private RedisUtils redisUtils; + @Autowired + private TokenStore tokenStore; @Override public PageResult<TokenVo> listTokens(Map<String, Object> params, String clientId) { @@ -87,6 +93,11 @@ return result; } + /** + * 获取用户是否登录; + * @param map + * @return + */ @Override public ResultBody getBeforLogin(Map<String, Object> map) { String name = MapUtils.getString(map, "name"); @@ -97,16 +108,20 @@ if (StringUtils.isBlank(webApp)) { return ResultBody.failed("请输入应用id"); } - List<Object> objectList = redisUtils.lGet(SecurityConstants.REDIS_UNAME_TO_ACCESS+webApp+":"+name,0,0 - ); - if(objectList!=null){ - if (objectList.size()>0) { - return ResultBody.ok().data(false); - }else { + Collection<OAuth2AccessToken> tokensByClientIdAndUserName = tokenStore.findTokensByClientIdAndUserName(webApp, name); + List<OAuth2AccessToken> collect = tokensByClientIdAndUserName.stream().collect(Collectors.toList()); + if(collect!=null&&collect.size()>0){ + //获取最后一次token + OAuth2AccessToken oAuth2AccessToken = collect.get(collect.size() - 1); + //获取最亲的token + OAuth2AccessToken oAuth2AccessTokenNew = tokenStore.readAccessToken(oAuth2AccessToken.getValue()); + if(oAuth2AccessTokenNew!=null&&oAuth2AccessTokenNew.isExpired()){ return ResultBody.ok().data(true); + }else if (oAuth2AccessTokenNew!=null&&!oAuth2AccessTokenNew.isExpired()){ + return ResultBody.ok().data(false); } - }else { return ResultBody.ok().data(true); } + return ResultBody.ok().data(true); } } -- Gitblit v1.8.0