diff --git a/spzx-common/common-service/src/main/java/com/atguigu/utils/InterceptorUtil.java b/spzx-common/common-service/src/main/java/com/atguigu/utils/InterceptorUtil.java new file mode 100644 index 0000000..558b0ac --- /dev/null +++ b/spzx-common/common-service/src/main/java/com/atguigu/utils/InterceptorUtil.java @@ -0,0 +1,41 @@ +package com.atguigu.utils; + +import com.alibaba.fastjson.JSON; +import com.atguigu.constant.MessageConstant; +import com.atguigu.spzx.model.vo.result.Result; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; + +import java.io.IOException; + +@Slf4j +public class InterceptorUtil { + /** + * 用户未登录返回响应 + * + * @param response 返回体 + */ + public static void unLoginInterceptor(HttpServletResponse response) throws IOException { + log.warn("InterceptorUtil===>用户未登录"); + customLoginInterceptor(response, MessageConstant.USER_NOT_LOGIN, ""); + } + + /** + * 构建用户登录失败 + * + * @param response HttpServletResponse + * @param message 消息 + * @param data 内容 + */ + public static void customLoginInterceptor(HttpServletResponse response, String message, String data) throws IOException { + response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); + response.setContentType("application/json"); + response.setCharacterEncoding("UTF-8"); + Result result = new Result<>(); + result.setCode(HttpServletResponse.SC_UNAUTHORIZED); + result.setData(data); + result.setMessage(message); + // 将消息写入响应体 + response.getWriter().write(JSON.toJSONString(result)); + } +} \ No newline at end of file diff --git a/spzx-common/common-util/src/main/java/com/atguigu/utils/StringEmptyUtil.java b/spzx-common/common-service/src/main/java/com/atguigu/utils/StringEmptyUtil.java similarity index 100% rename from spzx-common/common-util/src/main/java/com/atguigu/utils/StringEmptyUtil.java rename to spzx-common/common-service/src/main/java/com/atguigu/utils/StringEmptyUtil.java diff --git a/spzx-common/common-service/target/classes/com/atguigu/config/WebMvcConfiguration.class b/spzx-common/common-service/target/classes/com/atguigu/config/WebMvcConfiguration.class index c031957..188f997 100644 Binary files a/spzx-common/common-service/target/classes/com/atguigu/config/WebMvcConfiguration.class and b/spzx-common/common-service/target/classes/com/atguigu/config/WebMvcConfiguration.class differ diff --git a/spzx-common/common-service/target/classes/com/atguigu/constant/LocalDateTimeConstant.class b/spzx-common/common-service/target/classes/com/atguigu/constant/LocalDateTimeConstant.class deleted file mode 100644 index c33655f..0000000 Binary files a/spzx-common/common-service/target/classes/com/atguigu/constant/LocalDateTimeConstant.class and /dev/null differ diff --git a/spzx-common/common-service/target/classes/com/atguigu/constant/MessageConstant.class b/spzx-common/common-service/target/classes/com/atguigu/constant/MessageConstant.class deleted file mode 100644 index bd8cd10..0000000 Binary files a/spzx-common/common-service/target/classes/com/atguigu/constant/MessageConstant.class and /dev/null differ diff --git a/spzx-common/common-service/target/classes/com/atguigu/constant/PasswordConstant.class b/spzx-common/common-service/target/classes/com/atguigu/constant/PasswordConstant.class deleted file mode 100644 index 075bc8b..0000000 Binary files a/spzx-common/common-service/target/classes/com/atguigu/constant/PasswordConstant.class and /dev/null differ diff --git a/spzx-common/common-service/target/classes/com/atguigu/constant/StatusConstant.class b/spzx-common/common-service/target/classes/com/atguigu/constant/StatusConstant.class deleted file mode 100644 index 730e26e..0000000 Binary files a/spzx-common/common-service/target/classes/com/atguigu/constant/StatusConstant.class and /dev/null differ diff --git a/spzx-common/common-service/target/classes/com/atguigu/exception/EnumException.class b/spzx-common/common-service/target/classes/com/atguigu/exception/EnumException.class deleted file mode 100644 index 7346b58..0000000 Binary files a/spzx-common/common-service/target/classes/com/atguigu/exception/EnumException.class and /dev/null differ diff --git a/spzx-common/common-service/target/classes/com/atguigu/interceptor/LoginAuthInterceptor.class b/spzx-common/common-service/target/classes/com/atguigu/interceptor/LoginAuthInterceptor.class new file mode 100644 index 0000000..0a34552 Binary files /dev/null and b/spzx-common/common-service/target/classes/com/atguigu/interceptor/LoginAuthInterceptor.class differ diff --git a/spzx-common/common-service/target/classes/com/atguigu/utils/InterceptorUtil.class b/spzx-common/common-service/target/classes/com/atguigu/utils/InterceptorUtil.class new file mode 100644 index 0000000..17b5ef0 Binary files /dev/null and b/spzx-common/common-service/target/classes/com/atguigu/utils/InterceptorUtil.class differ diff --git a/spzx-common/common-util/target/classes/com/atguigu/utils/StringEmptyUtil.class b/spzx-common/common-service/target/classes/com/atguigu/utils/StringEmptyUtil.class similarity index 100% rename from spzx-common/common-util/target/classes/com/atguigu/utils/StringEmptyUtil.class rename to spzx-common/common-service/target/classes/com/atguigu/utils/StringEmptyUtil.class diff --git a/spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java b/spzx-common/common-util/src/main/java/com/atguigu/constant/ExceptionConstant.java similarity index 91% rename from spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java rename to spzx-common/common-util/src/main/java/com/atguigu/constant/ExceptionConstant.java index ce52e32..2dcd39e 100644 --- a/spzx-common/common-service/src/main/java/com/atguigu/exception/EnumException.java +++ b/spzx-common/common-util/src/main/java/com/atguigu/constant/ExceptionConstant.java @@ -1,10 +1,10 @@ -package com.atguigu.exception; +package com.atguigu.constant; import lombok.Data; @Data -public class EnumException { +public class ExceptionConstant { public static final String USER_NOT_FOUND = "用户不存在"; public static final String USERNAME_IS_EMPTY = "用户名不能为空"; public static final String PASSWORD_ERROR = "密码错误"; diff --git a/spzx-common/common-service/src/main/java/com/atguigu/constant/LocalDateTimeConstant.java b/spzx-common/common-util/src/main/java/com/atguigu/constant/LocalDateTimeConstant.java similarity index 100% rename from spzx-common/common-service/src/main/java/com/atguigu/constant/LocalDateTimeConstant.java rename to spzx-common/common-util/src/main/java/com/atguigu/constant/LocalDateTimeConstant.java diff --git a/spzx-common/common-service/src/main/java/com/atguigu/constant/MessageConstant.java b/spzx-common/common-util/src/main/java/com/atguigu/constant/MessageConstant.java similarity index 100% rename from spzx-common/common-service/src/main/java/com/atguigu/constant/MessageConstant.java rename to spzx-common/common-util/src/main/java/com/atguigu/constant/MessageConstant.java diff --git a/spzx-common/common-service/src/main/java/com/atguigu/constant/PasswordConstant.java b/spzx-common/common-util/src/main/java/com/atguigu/constant/PasswordConstant.java similarity index 100% rename from spzx-common/common-service/src/main/java/com/atguigu/constant/PasswordConstant.java rename to spzx-common/common-util/src/main/java/com/atguigu/constant/PasswordConstant.java diff --git a/spzx-common/common-service/src/main/java/com/atguigu/constant/StatusConstant.java b/spzx-common/common-util/src/main/java/com/atguigu/constant/StatusConstant.java similarity index 100% rename from spzx-common/common-service/src/main/java/com/atguigu/constant/StatusConstant.java rename to spzx-common/common-util/src/main/java/com/atguigu/constant/StatusConstant.java diff --git a/spzx-common/common-util/src/main/java/com/atguigu/context/BaseContext.java b/spzx-common/common-util/src/main/java/com/atguigu/context/BaseContext.java index 5b5d2e0..3885860 100644 --- a/spzx-common/common-util/src/main/java/com/atguigu/context/BaseContext.java +++ b/spzx-common/common-util/src/main/java/com/atguigu/context/BaseContext.java @@ -1,12 +1,15 @@ package com.atguigu.context; +import com.atguigu.spzx.model.entity.system.SysUser; +import com.atguigu.spzx.model.entity.user.UserInfo; + public class BaseContext { public static ThreadLocal threadLocal = new ThreadLocal<>(); + public static ThreadLocal sysUserThreadLocal = new ThreadLocal<>(); + public static ThreadLocal userInfoThreadLocal = new ThreadLocal<>(); /** * 获取当前用户id - * - * @return 用户id */ public static Long getUserId() { return threadLocal.get(); @@ -14,17 +17,57 @@ public class BaseContext { /** * 设置用户id - * - * @param userId 用户id */ public static void setUserId(Long userId) { threadLocal.set(userId); } + /** + * 获取当前 系统用户实体类 + */ + public static SysUser getSysUser() { + return sysUserThreadLocal.get(); + } + + /** + * 设置当前 系统用户实体类 + */ + public static void setSysUser(SysUser sysUser) { + sysUserThreadLocal.set(sysUser); + } + + /** + * 获取当前 用户实体类 + */ + public static UserInfo getUserInfo() { + return userInfoThreadLocal.get(); + } + + /** + * 设置当前 用户实体类 + */ + public static void setUserInfo(UserInfo userInfo) { + userInfoThreadLocal.set(userInfo); + } + /** * 移出当前id */ - public static void removeCurrentId() { + public static void remove() { threadLocal.remove(); } + + /** + * 移出当前 系统用户实体类 + */ + public static void removeSysUser() { + sysUserThreadLocal.remove(); + } + + /** + * 移出当前 用户实体类 + */ + public static void removeUserInfo() { + userInfoThreadLocal.remove(); + } } diff --git a/spzx-common/common-util/src/main/java/com/atguigu/json/JacksonObjectMapper.java b/spzx-common/common-util/src/main/java/com/atguigu/json/JacksonObjectMapper.java new file mode 100644 index 0000000..b1abf54 --- /dev/null +++ b/spzx-common/common-util/src/main/java/com/atguigu/json/JacksonObjectMapper.java @@ -0,0 +1,46 @@ +package com.atguigu.json; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; + +import static com.atguigu.constant.LocalDateTimeConstant.*; +import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES; + +/** + * 对象映射器:基于jackson将Java对象转为json,或者将json转为Java对象 + * 将JSON解析为Java对象的过程称为 [从JSON反序列化Java对象] + * 从Java对象生成JSON的过程称为 [序列化Java对象到JSON] + */ +public class JacksonObjectMapper extends ObjectMapper { + public JacksonObjectMapper() { + super(); + // 收到未知属性时不报异常 + this.configure(FAIL_ON_UNKNOWN_PROPERTIES, false); + + // 反序列化时,属性不存在的兼容处理 + this.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + + SimpleModule simpleModule = new SimpleModule() + .addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT))) + .addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT))) + .addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT))) + .addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT))) + .addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT))) + .addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT))); + + // 注册功能模块 例如,可以添加自定义序列化器和反序列化器 + this.registerModule(simpleModule); + } +} diff --git a/spzx-common/common-util/src/main/java/com/atguigu/utils/MD5.java b/spzx-common/common-util/src/main/java/com/atguigu/lib/MD5.java similarity index 97% rename from spzx-common/common-util/src/main/java/com/atguigu/utils/MD5.java rename to spzx-common/common-util/src/main/java/com/atguigu/lib/MD5.java index 3071662..4241dee 100644 --- a/spzx-common/common-util/src/main/java/com/atguigu/utils/MD5.java +++ b/spzx-common/common-util/src/main/java/com/atguigu/lib/MD5.java @@ -1,4 +1,4 @@ -package com.atguigu.utils; +package com.atguigu.lib; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; diff --git a/spzx-common/common-util/src/main/java/com/atguigu/properties/InterceptorsProperties.java b/spzx-common/common-util/src/main/java/com/atguigu/properties/InterceptorsProperties.java new file mode 100644 index 0000000..08e3d82 --- /dev/null +++ b/spzx-common/common-util/src/main/java/com/atguigu/properties/InterceptorsProperties.java @@ -0,0 +1,14 @@ +package com.atguigu.properties; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +import java.util.List; + +@Configuration +@ConfigurationProperties(prefix = "bunny.spzx") +@Data +public class InterceptorsProperties { + private List noAuthUrls; +} diff --git a/spzx-common/common-util/target/classes/com/atguigu/context/BaseContext.class b/spzx-common/common-util/target/classes/com/atguigu/context/BaseContext.class index bb2efee..b6e8f61 100644 Binary files a/spzx-common/common-util/target/classes/com/atguigu/context/BaseContext.class and b/spzx-common/common-util/target/classes/com/atguigu/context/BaseContext.class differ diff --git a/spzx-common/common-util/target/classes/com/atguigu/properties/InterceptorsProperties.class b/spzx-common/common-util/target/classes/com/atguigu/properties/InterceptorsProperties.class new file mode 100644 index 0000000..bc8a0e8 Binary files /dev/null and b/spzx-common/common-util/target/classes/com/atguigu/properties/InterceptorsProperties.class differ diff --git a/spzx-common/common-util/target/classes/com/atguigu/utils/MD5.class b/spzx-common/common-util/target/classes/com/atguigu/utils/MD5.class deleted file mode 100644 index 26fd447..0000000 Binary files a/spzx-common/common-util/target/classes/com/atguigu/utils/MD5.class and /dev/null differ diff --git a/spzx-manager/src/main/resources/application.yml b/spzx-manager/src/main/resources/application.yml index 8bc2f8d..2dcaf49 100644 --- a/spzx-manager/src/main/resources/application.yml +++ b/spzx-manager/src/main/resources/application.yml @@ -34,8 +34,8 @@ logging: mybatis: type-aliases-package: com.atguigu.spzx.model mapper-locations: classpath:mapper/*.xml - config-location: classpath:mybatis-config.xml -# configuration: -# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl -# map-underscore-to-camel-case: true -# auto-mapping-behavior: full \ No newline at end of file + # config-location: classpath:mybatis-config.xml + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + map-underscore-to-camel-case: true + auto-mapping-behavior: full \ No newline at end of file diff --git a/spzx-manager/target/classes/application.yml b/spzx-manager/target/classes/application.yml index 8bc2f8d..2dcaf49 100644 --- a/spzx-manager/target/classes/application.yml +++ b/spzx-manager/target/classes/application.yml @@ -34,8 +34,8 @@ logging: mybatis: type-aliases-package: com.atguigu.spzx.model mapper-locations: classpath:mapper/*.xml - config-location: classpath:mybatis-config.xml -# configuration: -# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl -# map-underscore-to-camel-case: true -# auto-mapping-behavior: full \ No newline at end of file + # config-location: classpath:mybatis-config.xml + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + map-underscore-to-camel-case: true + auto-mapping-behavior: full \ No newline at end of file