获取用户信息接口实现

This commit is contained in:
xiongfeng
2022-07-06 17:57:30 +08:00
parent 1c5e244a95
commit 55ebf4ab7f
4 changed files with 18 additions and 8 deletions

View File

@@ -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;

View File

@@ -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);
}
}

View File

@@ -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/**"); //忽略的请求
}
}

View File

@@ -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<Object,Object> redisTemplate =
(RedisTemplate<Object,Object>) ApplicationContextUtils.getBean("redisTemplate");
@Autowired
private ObjectMapper objectMapper;
//不拦截的请求列表
private static final List<String> 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;
}