Commit 7dd6c4b8 authored by zhouxudong's avatar zhouxudong

更新代码

parent 5afb96eb
...@@ -2,8 +2,13 @@ package com.lyy.user.config.auth; ...@@ -2,8 +2,13 @@ package com.lyy.user.config.auth;
import com.lyy.user.config.exception.ServiceException; import com.lyy.user.config.exception.ServiceException;
import com.lyy.user.config.other.BaseContextHandler; import com.lyy.user.config.other.BaseContextHandler;
import com.lyy.user.constant.Constants;
import com.lyy.user.util.jwt.JwtTokenUtil; import com.lyy.user.util.jwt.JwtTokenUtil;
import com.lyy.user.util.redis.RedisUtil;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.servlet.AsyncHandlerInterceptor; import org.springframework.web.servlet.AsyncHandlerInterceptor;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
...@@ -11,16 +16,19 @@ import javax.servlet.http.HttpServletResponse; ...@@ -11,16 +16,19 @@ import javax.servlet.http.HttpServletResponse;
/** 服务拦截器,根据配置的请求路径,进行请求的拦截,执行preHandle方法 */ /** 服务拦截器,根据配置的请求路径,进行请求的拦截,执行preHandle方法 */
public class CurrentUserInterceptor implements AsyncHandlerInterceptor { public class CurrentUserInterceptor implements AsyncHandlerInterceptor {
private static final String TOKEN_HEADER = "Authorization";
@Override @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception { throws Exception {
// 从header中获取权限请求头 // 从header中获取权限请求头
String token = request.getHeader(TOKEN_HEADER); String token = request.getHeader(Constants.TOKEN_HEADER);
if(StringUtils.isBlank(token)){ if(StringUtils.isBlank(token)){
throw new ServiceException("未授权,登录失败"); throw new ServiceException("未授权,登录失败");
} }
Object redisToken = RedisUtil.get(Constants.token + token);
if(ObjectUtils.isEmpty(redisToken)){
throw new ServiceException("请重新登录");
}
// 根据token信息,生成当前登录用户信息的设置,存放容器threadlocal // 根据token信息,生成当前登录用户信息的设置,存放容器threadlocal
BaseContextHandler.setCurrentUserInfo(JwtTokenUtil.getJwtUser(token)); BaseContextHandler.setCurrentUserInfo(JwtTokenUtil.getJwtUser(token));
return true; return true;
......
...@@ -3,13 +3,8 @@ package com.lyy.user.config.redis; ...@@ -3,13 +3,8 @@ package com.lyy.user.config.redis;
import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.cache.annotation.CachingConfigurer;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.RedisConnectionFactory;
......
...@@ -116,4 +116,6 @@ public class Constants { ...@@ -116,4 +116,6 @@ public class Constants {
public static final String token="bearer "; public static final String token="bearer ";
//手机验证码 规则: 手机验证码:验证码类型:手机号 //手机验证码 规则: 手机验证码:验证码类型:手机号
public static final String MSG_KEY="phone:message:"; public static final String MSG_KEY="phone:message:";
public static final String TOKEN_HEADER = "Authorization";
} }
...@@ -73,7 +73,7 @@ public class SysPcLoginController { ...@@ -73,7 +73,7 @@ public class SysPcLoginController {
* @return: boolean * @return: boolean
*/ */
@PostMapping("/sendMsg/{phone}") @PostMapping("/sendMsg/{phone}")
public boolean sendMsg(String phone) { public boolean sendMsg(@PathVariable("phone") String phone) {
return this.sysUserInfoService.sendMsg(phone); return this.sysUserInfoService.sendMsg(phone);
} }
......
...@@ -5,6 +5,7 @@ import lombok.*; ...@@ -5,6 +5,7 @@ import lombok.*;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
/** /**
...@@ -22,7 +23,7 @@ import java.util.Date; ...@@ -22,7 +23,7 @@ import java.util.Date;
@Accessors(chain = true) @Accessors(chain = true)
public class SysSmsLogEntity implements Serializable { public class SysSmsLogEntity implements Serializable {
/** 主键id */ /** 主键id */
@TableId private String id; @TableId private Long id;
/** 返回标识符 */ /** 返回标识符 */
private String code; private String code;
/** 返回字段描述 */ /** 返回字段描述 */
...@@ -42,11 +43,11 @@ public class SysSmsLogEntity implements Serializable { ...@@ -42,11 +43,11 @@ public class SysSmsLogEntity implements Serializable {
private String createBy; private String createBy;
/** 创建时间 */ /** 创建时间 */
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime; private LocalDateTime createTime;
/** 更新人 */ /** 更新人 */
@TableField(value = "update_by", fill = FieldFill.UPDATE) @TableField(value = "update_by", fill = FieldFill.UPDATE)
private String updateBy; private String updateBy;
/** 更新时间 */ /** 更新时间 */
@TableField(value = "update_time", fill = FieldFill.UPDATE) @TableField(value = "update_time", fill = FieldFill.UPDATE)
private Date updateTime; private LocalDateTime updateTime;
} }
package com.lyy.user.moudle.user.controller; package com.lyy.user.moudle.user.controller;
import com.lyy.user.config.auth.CurrentUserInterceptor;
import com.lyy.user.config.other.BaseContextHandler;
import com.lyy.user.constant.Constants;
import com.lyy.user.domain.JwtInfo;
import com.lyy.user.moudle.user.service.SysUserInfoService; import com.lyy.user.moudle.user.service.SysUserInfoService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.tomcat.util.bcel.Const;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -25,8 +30,8 @@ public class SysUserController { ...@@ -25,8 +30,8 @@ public class SysUserController {
* @param: [request] * @param: [request]
* @return: boolean * @return: boolean
*/ */
@PostMapping("logout") @PostMapping("/logout")
public boolean logout(HttpServletRequest request) { public boolean logout(HttpServletRequest request) {
return this.sysUserInfoService.logout(request.getHeader("token")); return this.sysUserInfoService.logout(request.getHeader(Constants.TOKEN_HEADER));
} }
} }
...@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; ...@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.ReUtil;
import cn.hutool.json.JSONUtil;
import cn.hutool.jwt.JWT; import cn.hutool.jwt.JWT;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
...@@ -139,7 +140,7 @@ public class SysUserInfoServiceImpl extends ServiceImpl<SysUserInfoMapper, SysUs ...@@ -139,7 +140,7 @@ public class SysUserInfoServiceImpl extends ServiceImpl<SysUserInfoMapper, SysUs
private String getPhoneKey(String phone, Integer type) { private String getPhoneKey(String phone, Integer type) {
return stringRedisTemplate return stringRedisTemplate
.opsForValue() .opsForValue()
.get(Constants.MSG_KEY + SendMsgTypeEnum.LOGIN.getCode() + ":" + phone); .get(Constants.MSG_KEY + phone);
} }
/** /**
* @description: 退出 * @description: 退出
...@@ -183,7 +184,7 @@ public class SysUserInfoServiceImpl extends ServiceImpl<SysUserInfoMapper, SysUs ...@@ -183,7 +184,7 @@ public class SysUserInfoServiceImpl extends ServiceImpl<SysUserInfoMapper, SysUs
if (ObjectUtils.isEmpty(result)) { if (ObjectUtils.isEmpty(result)) {
throw new ServiceException("短信发送失败"); throw new ServiceException("短信发送失败");
} }
SmsVo smsVo = BeanUtil.toBean(result, SmsVo.class); SmsVo smsVo = JSONUtil.toBean(result, SmsVo.class);
SysSmsLogEntity sysSmsLog = new SysSmsLogEntity(); SysSmsLogEntity sysSmsLog = new SysSmsLogEntity();
sysSmsLog sysSmsLog
.setCode(smsVo.getCode()) .setCode(smsVo.getCode())
...@@ -224,7 +225,7 @@ public class SysUserInfoServiceImpl extends ServiceImpl<SysUserInfoMapper, SysUs ...@@ -224,7 +225,7 @@ public class SysUserInfoServiceImpl extends ServiceImpl<SysUserInfoMapper, SysUs
sendPhoneVo.getPhone(), sendPhoneVo.getPhone(),
SendMsgTypeEnum.getTemplateId(sendPhoneVo.getType()), SendMsgTypeEnum.getTemplateId(sendPhoneVo.getType()),
temp.toString()); temp.toString());
SmsVo smsVo = BeanUtil.toBean(result, SmsVo.class); SmsVo smsVo = JSONUtil.toBean(result, SmsVo.class);
if (ObjectUtils.isEmpty(smsVo)) { if (ObjectUtils.isEmpty(smsVo)) {
throw new ServiceException("短信发送失败"); throw new ServiceException("短信发送失败");
} }
......
...@@ -17,7 +17,7 @@ spring: ...@@ -17,7 +17,7 @@ spring:
host: r-2zekq6swp5wr808a3lpd.redis.rds.aliyuncs.com host: r-2zekq6swp5wr808a3lpd.redis.rds.aliyuncs.com
port: 6379 port: 6379
password: techbook4redis#&20190909 password: techbook4redis#&20190909
timeout: 3000 timeout: 20000
database: 3 database: 3
lettuce: lettuce:
pool: pool:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment