1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package com.tanpu.community.util;
import com.tanpu.common.auth.UserHolder;
import com.tanpu.common.redis.RedisHelper;
import com.tanpu.community.api.constants.RedisKeyConstant;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpCookie;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.Optional;
/**
* @Description TODO
* @Author wangyalei
* @Date 2021/9/23 下午8:31
**/
@Slf4j
@Service
public class HttpServletHelper {
@Resource
private RedisHelper redisHelper;
@Resource
private UserHolder userHolder;
public String getCurrentUserId() {
// String userId = null;
// HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
// String clientEnv = request.getHeader(RedisKeyConstant.ENV);
// if (isAndroid(clientEnv) || isIOS(clientEnv) || isPc(clientEnv) || isMiniProgram(clientEnv)) {
// // android,ios,pc,小程序用token
// String token = request.getHeader(RedisKeyConstant.TAMP_TOKEN);
// // redis获取的value,都带有 "",这里去掉
// userId = StringUtils.remove(redisHelper.get(RedisKeyConstant.REDIS_PREFIX_TOKEN + token), "\"");
// } else {
// // 用cookie
// Cookie[] cookies = request.getCookies();
// if (cookies != null) {
// Optional<Cookie> first = Arrays.stream(request.getCookies())
// .filter(cookie -> StringUtils.equalsIgnoreCase(RedisKeyConstant.SESSION_COOKIE_NAME, cookie.getName()))
// .findFirst();
// if (first.isPresent()) {
// userId = first.get().getValue();
// }
// }
// }
String userId = userHolder.getUserId();
log.debug("当前登录用户Id: {}", userId);
return userId;
}
public static boolean isAndroid(String clientEnv) {
return "android".equalsIgnoreCase(clientEnv);
}
public static boolean isIOS(String clientEnv) {
return "ios".equalsIgnoreCase(clientEnv);
}
public static boolean isPc(String clientEnv) {
return "pc".equalsIgnoreCase(clientEnv);
}
public static boolean isMiniProgram(String clientEnv) {
return "xcx".equalsIgnoreCase(clientEnv);
}
}