From 53b6400ec10c8ca61ccec91c82c358d2488eead8 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 20 十二月 2024 09:50:39 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java | 72 ++++++++++++++++++++++++++++++++++- 1 files changed, 69 insertions(+), 3 deletions(-) diff --git a/server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java b/server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java index f88920c..fff1fdd 100644 --- a/server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java +++ b/server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java @@ -1,29 +1,46 @@ package com.doumee.config.jwt; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.utils.Constants; +import com.doumee.core.utils.HttpsUtil; +import com.doumee.dao.system.SystemUserMapper; +import com.doumee.dao.system.model.SystemUser; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.io.IOException; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; @Component +@Slf4j public class JwtTokenUtil { @Autowired private RedisTemplate<String,Object> redisTemplate; @Resource private JwtProperties jwtProperties; - - + @Autowired + private SystemDictDataBiz systemDictDataBiz ; + @Autowired + private SystemUserMapper systemUserMapper; /** * 鐢熸垚token浠ょ墝 * @@ -113,12 +130,61 @@ */ public void logout(String token) { try { - redisTemplate.delete(Constants.REDIS_TOKEN_KEY+token);//鍒犻櫎鑰佺殑token + //鐧诲嚭娴峰悍绯荤粺鏁版嵁 + LoginUserInfo loginUserInfo = this.getUserInfoByToken(token); + String url = systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_HTTPS).getCode() + + systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_HOST).getCode() + + systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.LOGIN_OUT_URL).getCode(); + if(StringUtils.isNotBlank(loginUserInfo.getHkMenuToken())){ + log.info("璋冭捣娴峰悍閫�鍑虹櫥褰�=======================>"+url+"?token="+loginUserInfo.getHkMenuToken()); +// this.hkLoginOut(url+"?token="+loginUserInfo.getHkMenuToken()); + HttpsUtil.get(url+"?token="+loginUserInfo.getHkMenuToken(),true); + } + //鍒犻櫎鑰佺殑token + redisTemplate.delete(Constants.REDIS_TOKEN_KEY+token); } catch (Exception e) { e.printStackTrace(); } } + public void logoutForH5(String token) { + try { + //鐧诲嚭娴峰悍绯荤粺鏁版嵁 + LoginUserInfo loginUserInfo = this.getUserInfoByToken(token); + //鍒犻櫎鑰佺殑token + redisTemplate.delete(Constants.REDIS_TOKEN_KEY+token); + systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda().set(SystemUser::getOpenid,null).eq(SystemUser::getId,loginUserInfo.getId())); + + } catch (Exception e) { + e.printStackTrace(); + } + } + public void hkLoginOut(String url){ + try { + // 鍒涘缓HttpClient瀵硅薄 + HttpClient httpClient = HttpClientBuilder.create().build(); + // 鍒涘缓HttpGet瀵硅薄锛屾寚瀹氳璁块棶鐨刄RL鍦板潃 + HttpGet httpGet = new HttpGet(url); + // 鍙戦�丟ET璇锋眰锛岃幏鍙栧搷搴� + HttpResponse response = httpClient.execute(httpGet); + // 鑾峰彇鍝嶅簲鐘舵�佺爜 + int statusCode = response.getStatusLine().getStatusCode(); + // 鍒ゆ柇璇锋眰鏄惁鎴愬姛 + if (statusCode == 200) { + // 鑾峰彇鍝嶅簲鍐呭 + HttpEntity entity = response.getEntity(); + String responseContent = EntityUtils.toString(entity, "UTF-8"); + System.out.println(responseContent); + log.info("璋冭捣娴峰悍閫�鍑虹櫥褰曡繑鍥炰俊鎭�=======================>"+responseContent); + } else { + System.out.println("璇锋眰澶辫触锛屽搷搴旂爜锛�" + statusCode); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** * 楠岃瘉浠ょ墝 * -- Gitblit v1.9.3