refactor: 优化后台判断是否登陆的逻辑

This commit is contained in:
CaptainB 2022-12-02 13:11:06 +08:00
parent 5dd07611f3
commit baee39b50a
1 changed files with 6 additions and 3 deletions

View File

@ -24,11 +24,11 @@ import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.http.ResponseEntity;
import org.springframework.session.data.redis.RedisIndexedSessionRepository;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;
@ -46,11 +46,14 @@ public class LoginController {
private String serviceId;
@Value("${server.port}")
private Integer port;
@Resource
private RedisIndexedSessionRepository redisIndexedSessionRepository;
@GetMapping(value = "/is-login")
public ResultHolder isLogin(HttpSession session) throws Exception {
public ResultHolder isLogin(@RequestHeader(name = SessionConstants.HEADER_TOKEN, required = false) String sessionId) throws Exception {
RsaKey rsaKey = RsaUtil.getRsaKey();
Object user = session.getAttribute("user");
Object user = redisIndexedSessionRepository.getSessionRedisOperations().opsForHash().get("spring:session:sessions:" + sessionId, "sessionAttr:user");
if (user != null) {
UserDTO userDTO = baseUserService.getUserDTO((String) MethodUtils.invokeMethod(user, "getId"));
if (StringUtils.isBlank(userDTO.getLanguage())) {