Browse Source

fix用户IM签名

Eric 1 year ago
parent
commit
a443ab1ad7

+ 35 - 34
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/handler/BaseAuthenticationSuccessEventHandler.java

@@ -1,20 +1,16 @@
 package com.yonge.cooleshow.auth.core.handler;
 
-import java.io.IOException;
-import java.util.Base64;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import com.yonge.cooleshow.auth.config.RongCloudConfig;
-import com.yonge.cooleshow.common.entity.ImResult;
-import com.yonge.cooleshow.common.entity.ImUserModel;
-import com.yonge.toolset.base.exception.BizException;
-import io.rong.models.response.TokenResult;
-import io.rong.models.user.UserModel;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.yonge.cooleshow.api.feign.AdminFeignService;
+import com.yonge.cooleshow.api.feign.dto.ImUserInfo;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.auth.api.entity.SysUserLogin;
+import com.yonge.cooleshow.auth.api.entity.SysUserLoginLog;
+import com.yonge.cooleshow.auth.service.SysUserLoginLogService;
+import com.yonge.cooleshow.auth.service.SysUserLoginService;
+import com.yonge.cooleshow.auth.service.SysUserService;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.security.SecurityConstants;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -36,15 +32,13 @@ import org.springframework.security.oauth2.provider.token.AuthorizationServerTok
 import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
 import org.springframework.stereotype.Component;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
-import com.yonge.cooleshow.auth.api.entity.SysUserLogin;
-import com.yonge.cooleshow.auth.api.entity.SysUserLoginLog;
-import com.yonge.cooleshow.auth.service.SysUserLoginLogService;
-import com.yonge.cooleshow.auth.service.SysUserLoginService;
-import com.yonge.cooleshow.auth.service.SysUserService;
-import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import com.yonge.cooleshow.common.security.SecurityConstants;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Base64;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
 
 @Component
 public class BaseAuthenticationSuccessEventHandler extends SavedRequestAwareAuthenticationSuccessHandler {
@@ -59,6 +53,8 @@ public class BaseAuthenticationSuccessEventHandler extends SavedRequestAwareAuth
 	private ObjectMapper objectMapper;
 	@Autowired
 	private ClientDetailsService clientDetailsService;
+	@Autowired
+	private AdminFeignService adminFeignService;
 
 	@Autowired
 	private AuthorizationServerTokenServices defaultAuthorizationServerTokenServices;
@@ -83,22 +79,27 @@ public class BaseAuthenticationSuccessEventHandler extends SavedRequestAwareAuth
 		}else {
 			sysUser = sysUserService.queryLockByPhone(username.split(":")[1]);
 		}
-		if(StringUtils.isEmpty(sysUser.getImToken())){
+		/*if(StringUtils.isEmpty(sysUser.getImToken())){
 			String name = sysUser.getUsername();
 			if(StringUtils.isEmpty(name)){
 				name = sysUser.getRealName();
 			}
-			try {
-				TokenResult result = RongCloudConfig.rongCloud.user.register(new UserModel(sysUser.getId().toString(), name, sysUser.getAvatar()));
+
+		}*/
+		// 强制更新im_token
+		try {
+				/*TokenResult result = RongCloudConfig.rongCloud.user.register(new UserModel(sysUser.getId().toString(), name, sysUser.getAvatar()));
 				if(!result.code.equals(200)){
 					logger.error("获取用户token失败:{}",result.errorMessage);
-				}
-				sysUser.setImToken(result.getToken());
-				sysUser.setUpdateTime(new Date());
-				sysUserService.update(sysUser);
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
+				}*/
+
+			ImUserInfo register = adminFeignService.register(sysUser.getId().toString(), clientId.toUpperCase(), sysUser.getUsername(), sysUser.getAvatar());
+
+			sysUser.setImToken(register.getImToken());
+			sysUser.setUpdateTime(new Date());
+			sysUserService.update(sysUser);
+		} catch (Exception e) {
+			logger.error("获取用户im_token失败:{}",e.getMessage());
 		}
 		Date date = new Date();
 		//修改添加登录信息