yonge há 3 anos atrás
pai
commit
a91b975bcc

+ 26 - 5
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/TokenController.java

@@ -22,6 +22,7 @@ import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.oauth2.common.OAuth2AccessToken;
+import org.springframework.security.oauth2.provider.OAuth2Authentication;
 import org.springframework.security.oauth2.provider.token.ResourceServerTokenServices;
 import org.springframework.security.oauth2.provider.token.TokenStore;
 import org.springframework.util.LinkedMultiValueMap;
@@ -42,7 +43,6 @@ import com.ym.mec.common.entity.ImResult;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.security.AuthUser;
 import com.ym.mec.common.security.SecurityConstants;
-import com.ym.mec.common.security.SecurityUtils;
 import com.ym.mec.im.ImFeignService;
 
 @RestController
@@ -81,8 +81,10 @@ public class TokenController extends BaseController {
     }
 
     @GetMapping("/queryUserInfo")
-    public SysUser queryUserInfo() {
-		AuthUser authUser = SecurityUtils.getUser();
+    public SysUser queryUserInfo(HttpServletRequest request) {
+		
+		AuthUser authUser = getAuthUser(request);
+    	
 		if(authUser != null){
 			SysUser sysUser = userService.get(authUser.getUserId());
 			if(StringUtils.isEmpty(sysUser.getImToken())){
@@ -98,8 +100,10 @@ public class TokenController extends BaseController {
 
 	@ApiOperation(value = "获取用户信息")
     @GetMapping("/api/queryUserInfo")
-    public Object apiQueryUserInfo() {
-		AuthUser authUser = SecurityUtils.getUser();
+    public Object apiQueryUserInfo(HttpServletRequest request) {
+		
+		AuthUser authUser = getAuthUser(request);
+		
 		if(authUser != null){
 			return succeed(userService.queryUserInfo(authUser.getUserId()));
 		}
@@ -203,5 +207,22 @@ public class TokenController extends BaseController {
 
 		return succeed();
 	}
+	
+	private AuthUser getAuthUser(HttpServletRequest request){
+		String authHeader = request.getHeader(HttpHeaders.AUTHORIZATION);
+		if (StringUtils.isBlank(authHeader)) {
+			return null;
+		}
+
+		String token = authHeader.toLowerCase().replace(OAuth2AccessToken.BEARER_TYPE.toLowerCase(), StringUtils.EMPTY).trim();
+		
+		OAuth2AccessToken oAuth2AccessToken = tokenStore.readAccessToken(token);
+    	if (null != oAuth2AccessToken) {
+    	    OAuth2Authentication auth2Authentication = tokenStore.readAuthentication(token);
+    	    return (AuthUser) auth2Authentication.getUserAuthentication().getPrincipal();
+    	}
+    	
+    	return null;
+	}
 
 }