Browse Source

1.调整拦截TokenDto Filter的逻辑

dev
wxz 5 years ago
parent
commit
022bf25985
  1. 5
      epmet-commons/epmet-common-clienttoken/src/main/java/com/epmet/common/token/util/TokenUtil.java
  2. 6
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/CpUserDetailRedis.java
  3. 11
      epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java
  4. 3
      epmet-gateway/src/main/java/com/epmet/filter/UserTokenFilter.java

5
epmet-commons/epmet-common-clienttoken/src/main/java/com/epmet/common/token/util/TokenUtil.java

@ -25,11 +25,6 @@ public class TokenUtil {
@Autowired
private CpUserDetailRedis redisUtils;
public TokenDto getTokenInfo(String app, String client, String userId) {
TokenDto tokenDto = redisUtils.get(app,client,userId);
return tokenDto;
}
public void expireToken(String app,String client,String userId) {
redisUtils.logout(app,client,userId);
}

6
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/CpUserDetailRedis.java

@ -49,7 +49,7 @@ public class CpUserDetailRedis {
* @param userId oper_usercustomer_usercustomer_staff表主键
* @return
*/
public TokenDto get(String app, String client, String userId) {
public <T> T get(String app, String client, String userId, Class<T> clz) {
String key = RedisKeys.getCpUserKey(app,client,userId);
Map<String, Object> map = redisUtils.hGetAll(key);
@ -58,9 +58,7 @@ public class CpUserDetailRedis {
}
//map to bean
TokenDto user = BeanUtil.mapToBean(map, TokenDto.class, true);
return user;
return BeanUtil.mapToBean(map, clz, true);
}
/**

11
epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java

@ -7,6 +7,7 @@ import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.Constant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.BaseTokenDto;
import com.epmet.commons.tools.security.dto.GovTokenDto;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.CpUserDetailRedis;
import com.epmet.commons.tools.utils.Result;
@ -93,7 +94,15 @@ public class CpAuthGatewayFilterFactory extends AbstractGatewayFilterFactory<CpA
}
try {
BaseTokenDto baseTokenDto = getBaseTokenDto(token, jwtTokenUtils);
validateTokenDto(baseTokenDto, token);
if (AppClientConstant.APP_RESI.equals(baseTokenDto.getApp())) {
// 居民端
TokenDto resiTokenDto = getLoginUserInfoByToken(token, jwtTokenUtils, cpUserDetailRedis, TokenDto.class);
validateTokenDto(resiTokenDto, token);
} else if (AppClientConstant.APP_GOV.equals(baseTokenDto.getApp())) {
// 政府端
GovTokenDto govTokenDto = getLoginUserInfoByToken(token, jwtTokenUtils, cpUserDetailRedis, GovTokenDto.class);
validateTokenDto(govTokenDto, token);
}
//当前登录用户userId,添加到header中
String redisKey = baseTokenDto.getApp() + "-" + baseTokenDto.getClient() + "-" + baseTokenDto.getUserId();

3
epmet-gateway/src/main/java/com/epmet/filter/UserTokenFilter.java

@ -29,8 +29,7 @@ public interface UserTokenFilter {
default <T> T getLoginUserInfoByToken(String token, JwtTokenUtils jwtTokenUtils, CpUserDetailRedis cpUserDetailRedis, Class<T> clz) {
BaseTokenDto baseTokenDto = getBaseTokenDto(token, jwtTokenUtils);
//查询Redis
T tokenDto = (T)cpUserDetailRedis.get(baseTokenDto.getApp(), baseTokenDto.getClient(), baseTokenDto.getUserId());
return tokenDto;
return cpUserDetailRedis.get(baseTokenDto.getApp(), baseTokenDto.getClient(), baseTokenDto.getUserId(), clz);
}
}

Loading…
Cancel
Save