diff --git a/src/main/java/cn/xf/basedemo/common/model/LoginUser.java b/src/main/java/cn/xf/basedemo/common/model/LoginUser.java index ced5ebc..3db0d64 100644 --- a/src/main/java/cn/xf/basedemo/common/model/LoginUser.java +++ b/src/main/java/cn/xf/basedemo/common/model/LoginUser.java @@ -2,6 +2,8 @@ package cn.xf.basedemo.common.model; import lombok.Data; +import java.io.Serializable; + /** * @program: xf-boot-base * @ClassName LoginUserInfo @@ -10,7 +12,7 @@ import lombok.Data; * @create: 2022-06-17 14:54 **/ @Data -public class LoginUser { +public class LoginUser implements Serializable { private Integer id; diff --git a/src/main/java/cn/xf/basedemo/controller/UserController.java b/src/main/java/cn/xf/basedemo/controller/UserController.java index 84621e6..8066eb3 100644 --- a/src/main/java/cn/xf/basedemo/controller/UserController.java +++ b/src/main/java/cn/xf/basedemo/controller/UserController.java @@ -1,10 +1,11 @@ package cn.xf.basedemo.controller; +import cn.xf.basedemo.common.model.LoginUser; import cn.xf.basedemo.common.model.RetObj; +import cn.xf.basedemo.interceptor.SessionContext; import cn.xf.basedemo.model.res.LoginInfoRes; import cn.xf.basedemo.service.UserService; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; -import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -33,4 +34,12 @@ public class UserController { return userService.login(res); } + + @ApiOperation(value = "用户信息", notes = "用户信息") + @ApiOperationSupport(order = 1) + @PostMapping("/info") + public RetObj info(){ + LoginUser loginUser = SessionContext.getInstance().get(); + return RetObj.success(loginUser); + } } diff --git a/src/main/java/cn/xf/basedemo/interceptor/InterceptorConfig.java b/src/main/java/cn/xf/basedemo/interceptor/InterceptorConfig.java index 92cdda3..4e9cfda 100644 --- a/src/main/java/cn/xf/basedemo/interceptor/InterceptorConfig.java +++ b/src/main/java/cn/xf/basedemo/interceptor/InterceptorConfig.java @@ -19,6 +19,6 @@ public class InterceptorConfig implements WebMvcConfigurer { public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new TokenInterceptor()) //登录逻辑拦截类 .addPathPatterns("/**") //需要拦截的请求(设置的全部拦截) - .excludePathPatterns("/user/**","/web/**"); //忽略的请求 + .excludePathPatterns("/user/login","/web/**"); //忽略的请求 } } diff --git a/src/main/java/cn/xf/basedemo/interceptor/TokenInterceptor.java b/src/main/java/cn/xf/basedemo/interceptor/TokenInterceptor.java index 4afa245..18003e3 100644 --- a/src/main/java/cn/xf/basedemo/interceptor/TokenInterceptor.java +++ b/src/main/java/cn/xf/basedemo/interceptor/TokenInterceptor.java @@ -2,11 +2,11 @@ package cn.xf.basedemo.interceptor; import cn.xf.basedemo.common.model.LoginUser; import cn.xf.basedemo.common.utils.ApplicationContextUtils; +import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.web.servlet.HandlerInterceptor; import javax.servlet.http.HttpServletRequest; @@ -28,9 +28,6 @@ public class TokenInterceptor implements HandlerInterceptor { RedisTemplate redisTemplate = (RedisTemplate) ApplicationContextUtils.getBean("redisTemplate"); - @Autowired - private ObjectMapper objectMapper; - //不拦截的请求列表 private static final List EXCLUDE_PATH_LIST = Arrays.asList("/user/login","/web/login"); @@ -52,7 +49,9 @@ public class TokenInterceptor implements HandlerInterceptor { if(StringUtils.isEmpty(value)){ return false; } - LoginUser loginUserInfo = objectMapper.convertValue(value, LoginUser.class); + JSONObject jsonObject = JSONObject.parseObject(value); + //JSON对象转换成Java对象 + LoginUser loginUserInfo = JSONObject.toJavaObject(jsonObject, LoginUser.class); if(loginUserInfo == null || loginUserInfo.getId() <= 0){ return false; }