From a5440d8d81499de6fd1cfab81274d20e3c08165c Mon Sep 17 00:00:00 2001
From: mrz <17966059@qq.com>
Date: Fri, 19 Apr 2024 13:30:22 +0800
Subject: [PATCH] change: 配置文件更改为生产环境和开发环境 update: 用户状态判定增加用户锁定和用户禁用状态判定. bugfix: 1 增加用户登录成功后返回用户的禁用状态和锁定状态, 2 数据MAPPER增加对应字段的查询

---
 config/application.yml                                                                 | 157 -------------------------------------------------------------------------------------------------------------------------------------------------------------
 config/application_dev.yml                                                             | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 config/application_prd.yml                                                             | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 config/logback-dev.xml                                                                 |  10 +++++-----
 src/main/java/com/tianbo/warehouse/controller/AnonymousController.java                 |   2 +-
 src/main/java/com/tianbo/warehouse/controller/HeartBeatController.java                 |   2 +-
 src/main/java/com/tianbo/warehouse/model/USERS.java                                    |   9 +++++++--
 src/main/java/com/tianbo/warehouse/security/handel/MyAuthenticationSuccessHandler.java |   2 ++
 src/main/java/com/tianbo/warehouse/security/login/SM3EncryptUtil.java                  |   2 +-
 src/main/resources/mapping/USERSMapper.xml                                             |   2 +-
 10 files changed, 332 insertions(+), 168 deletions(-)
 delete mode 100755 config/application.yml
 create mode 100755 config/application_dev.yml
 create mode 100755 config/application_prd.yml

diff --git a/config/application.yml b/config/application.yml
deleted file mode 100755
index a31b756..0000000
--- a/config/application.yml
+++ /dev/null
@@ -1,157 +0,0 @@
-
-#上传文件的路径,要带斜杠
-web:
-  upload-path: upload/
-server:
-  port: 8066
-  servlet:
-    context-path: ${SERVER_CONTEXTPATH:}
-spring:
-  devtools:
-    add-properties: false
-  profiles:
-    active: dev
-  mvc:
-    #静态资源,设置上传文件的访问,
-    static-path-pattern: /**
-  zipkin:
-    base-url: http://192.168.1.63:9411
-  sleuth:
-    sampler:
-      probability: 0.1
-  resources:
-    static-locations: classpath:/META-INF/resources/,classpath:/static,classpath:/resources/,file:${web.upload-path}
-
-  application:
-    name: cloud-user-center
-  redis:
-#    host: 127.0.0.1
-    host: 192.168.1.53
-    port: 6379
-  jackson:
-    serialization:
-      FAIL_ON_EMPTY_BEANS: false
-    #springboot2.0之后会把Date类型字段自动给转成UTC字符串 如:1990-11-26T16:00:00.000+0000,如果想转成时间戳在application.properties配置文件增加以下配置
-    date-format: yyyy-MM-dd HH:mm:ss
-    #时区必须要设置
-    time-zone: GMT+8
-    #ALWAYS的意思是即时属性为null,仍然也会输出这个key
-    default-property-inclusion: always
-
-  cloud:
-  #eureka主机名,会在控制页面中显示
-  #DEV环境关闭注册。
-    features:
-      enabled: true
-    discovery:
-      enabled: true
-    service-registry:
-      auto-registration:
-        enabled: true
-
-  datasource:
-        type: com.alibaba.druid.pool.DruidDataSource
-        #oracle
-        #driver-class-name=oracle.jdbc.OracleDriver
-        #url=jdbc:oracle:thin:@10.50.3.68:1521:CGODW
-        #username=CGOETL
-        #password=1q2w3e4r
-        #spring datasource mysql,注意编码配置,缺少数据库编码配置容易引起中文入库乱码
-        url: jdbc:mysql://118.31.66.166:3306/statistics?useUnicode=true&characterEncoding=utf8
-        username: 110
-        password: QAHqCJf2kFYCLirM
-        driver-class-name: com.mysql.cj.jdbc.Driver
-        #配置初始化大小/最小/最大
-        druid:
-          initial-size: 1
-          min-idle: 1
-          max-active: 20
-          #获取连接等待超时时间
-          max-wait: 60000
-          #一个连接在池中最小生存的时间
-          min-evictable-idle-time-millis: 300000
-          #间隔多久进行一次检测,检测需要关闭的空闲连接
-          time-between-eviction-runs-millis: 60000
-          #mysql
-          validation-query: SELECT 1 FROM DUAL
-          #oracle
-          #druid.validation-query:SELECT 'x' FROM DUAL
-          test-while-idle: true
-          test-on-borrow: false
-          test-on-return: false
-          default-auto-commit: true
-#        tomcat:
-#          max-wait: 10
-#          max-idle: 10000
-#          min-idle: 5
-#          initial-size: 5
-
-eureka:
-  instance:
-    #eureka服务器页面中status的请求路径
-#    status-page-url:  http://${eureka.instance.hostname}:${server.port}/index
-    prefer-ip-address: true
-    instance-id:  ${spring.cloud.client.ip-address}:${server.port}
-    hostname: ${spring.cloud.client.ip-address}
-    lease-renewal-interval-in-seconds: 15
-    lease-expiration-duration-in-seconds: 45
-    health-check-url-path: /actuator/health
-    metadata-map:
-          user:
-            name: "admin"         #These two are needed so that the server
-            password: "123456"
-  client:
-    #eureka注册中心服务器地址
-    service-url:
-#      defaultZone: http://127.0.0.1:12345/eureka/
-      defaultZone: http://192.168.1.53:12345/eureka/
-    registry-fetch-interval-seconds:  30
-
-
-
-management:
-  endpoints:
-    enabled-by-default: true
-    web:
-      exposure:
-        include: "*"
-  endpoint:
-    health:
-      show-details: always
-    shutdown:
-      enabled: true
-
-mybatis:
-  mapper-locations: classpath:mapping/*.xml
-  type-aliases-package: com.tianbo.warehouse.model
-pagehelper:
-  #auto-dialect: true
-  #auto-runtime-dialect: true
-  helper-dialect: mysql
-  reasonable: true
-
-  support-methods-arguments: true
-  params: count=countSql
-
-#debug配置,debug或者为true的时候,logback才会记录和写入日志文件
-trace: false
-debug: false
-
-logging:
-  file:
-    path: ./logs/
-    name: system.log
-  config: config/logback-dev.xml
-  #转移到logback配置文件中
-  #level:
-    #org.apache.tomcat: info
-    #com.tianbo.warehouse.dao: DEBUG
-    #org.springframework.security: trace
-  #日志配置,输出到文本,
-#Java Web Token 时效时间,单位秒
-jwt:
-  max-alive: 30000
-
-info:
-  version: 2.0
-  description: "具有公司及部门管理级别的用户管理中心"
diff --git a/config/application_dev.yml b/config/application_dev.yml
new file mode 100755
index 0000000..6d570cf
--- /dev/null
+++ b/config/application_dev.yml
@@ -0,0 +1,157 @@
+
+#上传文件的路径,要带斜杠
+web:
+  upload-path: upload/
+server:
+  port: 8066
+  servlet:
+    context-path: ${SERVER_CONTEXTPATH:}
+spring:
+  devtools:
+    add-properties: false
+  profiles:
+    active: dev
+  mvc:
+    #静态资源,设置上传文件的访问,
+    static-path-pattern: /**
+  zipkin:
+    base-url: http://192.168.1.63:9411
+  sleuth:
+    sampler:
+      probability: 0.1
+  resources:
+    static-locations: classpath:/META-INF/resources/,classpath:/static,classpath:/resources/,file:${web.upload-path}
+
+  application:
+    name: cloud-user-center
+  redis:
+#    host: 127.0.0.1
+    host: 192.168.1.53
+    port: 6379
+  jackson:
+    serialization:
+      FAIL_ON_EMPTY_BEANS: false
+    #springboot2.0之后会把Date类型字段自动给转成UTC字符串 如:1990-11-26T16:00:00.000+0000,如果想转成时间戳在application.properties配置文件增加以下配置
+    date-format: yyyy-MM-dd HH:mm:ss
+    #时区必须要设置
+    time-zone: GMT+8
+    #ALWAYS的意思是即时属性为null,仍然也会输出这个key
+    default-property-inclusion: always
+
+  cloud:
+  #eureka主机名,会在控制页面中显示
+  #DEV环境关闭注册。
+    features:
+      enabled: true
+    discovery:
+      enabled: true
+    service-registry:
+      auto-registration:
+        enabled: true
+
+  datasource:
+        type: com.alibaba.druid.pool.DruidDataSource
+        #oracle
+        #driver-class-name=oracle.jdbc.OracleDriver
+        #url=jdbc:oracle:thin:@10.50.3.68:1521:CGODW
+        #username=CGOETL
+        #password=1q2w3e4r
+        #spring datasource mysql,注意编码配置,缺少数据库编码配置容易引起中文入库乱码
+        url: jdbc:mysql://118.31.66.166:3306/cloud_user_center?useUnicode=true&characterEncoding=utf8
+        username: 110
+        password: QAHqCJf2kFYCLirM
+        driver-class-name: com.mysql.cj.jdbc.Driver
+        #配置初始化大小/最小/最大
+        druid:
+          initial-size: 1
+          min-idle: 1
+          max-active: 20
+          #获取连接等待超时时间
+          max-wait: 60000
+          #一个连接在池中最小生存的时间
+          min-evictable-idle-time-millis: 300000
+          #间隔多久进行一次检测,检测需要关闭的空闲连接
+          time-between-eviction-runs-millis: 60000
+          #mysql
+          validation-query: SELECT 1 FROM DUAL
+          #oracle
+          #druid.validation-query:SELECT 'x' FROM DUAL
+          test-while-idle: true
+          test-on-borrow: false
+          test-on-return: false
+          default-auto-commit: true
+#        tomcat:
+#          max-wait: 10
+#          max-idle: 10000
+#          min-idle: 5
+#          initial-size: 5
+
+eureka:
+  instance:
+    #eureka服务器页面中status的请求路径
+#    status-page-url:  http://${eureka.instance.hostname}:${server.port}/index
+    prefer-ip-address: true
+    instance-id:  ${spring.cloud.client.ip-address}:${server.port}
+    hostname: ${spring.cloud.client.ip-address}
+    lease-renewal-interval-in-seconds: 15
+    lease-expiration-duration-in-seconds: 45
+    health-check-url-path: /actuator/health
+    metadata-map:
+          user:
+            name: "admin"         #These two are needed so that the server
+            password: "123456"
+  client:
+    #eureka注册中心服务器地址
+    service-url:
+#      defaultZone: http://127.0.0.1:12345/eureka/
+      defaultZone: http://192.168.1.53:12345/eureka/
+    registry-fetch-interval-seconds:  30
+
+
+
+management:
+  endpoints:
+    enabled-by-default: true
+    web:
+      exposure:
+        include: "*"
+  endpoint:
+    health:
+      show-details: always
+    shutdown:
+      enabled: true
+
+mybatis:
+  mapper-locations: classpath:mapping/*.xml
+  type-aliases-package: com.tianbo.warehouse.model
+pagehelper:
+  #auto-dialect: true
+  #auto-runtime-dialect: true
+  helper-dialect: mysql
+  reasonable: true
+
+  support-methods-arguments: true
+  params: count=countSql
+
+#debug配置,debug或者为true的时候,logback才会记录和写入日志文件
+trace: false
+debug: false
+
+logging:
+  file:
+    path: ./logs/
+    name: system.log
+  config: config/logback-dev.xml
+  #转移到logback配置文件中
+  #level:
+    #org.apache.tomcat: info
+    #com.tianbo.warehouse.dao: DEBUG
+    #org.springframework.security: trace
+  #日志配置,输出到文本,
+#Java Web Token 时效时间,单位秒
+jwt:
+  max-alive: 30000
+
+info:
+  version: 2.0
+  description: "统一用户认证中心服务,具备用户认证,接口鉴权|数据鉴权功能."
diff --git a/config/application_prd.yml b/config/application_prd.yml
new file mode 100755
index 0000000..b1550ba
--- /dev/null
+++ b/config/application_prd.yml
@@ -0,0 +1,157 @@
+
+#上传文件的路径,要带斜杠
+web:
+  upload-path: upload/
+server:
+  port: 8066
+  servlet:
+    context-path: ${SERVER_CONTEXTPATH:}
+spring:
+  devtools:
+    add-properties: false
+  profiles:
+    active: prd
+  mvc:
+    #静态资源,设置上传文件的访问,
+    static-path-pattern: /**
+  zipkin:
+    base-url: http://192.168.1.63:9411
+  sleuth:
+    sampler:
+      probability: 0.1
+  resources:
+    static-locations: classpath:/META-INF/resources/,classpath:/static,classpath:/resources/,file:${web.upload-path}
+
+  application:
+    name: cloud-user-center
+  redis:
+#    host: 127.0.0.1
+    host: 192.168.1.53
+    port: 6379
+  jackson:
+    serialization:
+      FAIL_ON_EMPTY_BEANS: false
+    #springboot2.0之后会把Date类型字段自动给转成UTC字符串 如:1990-11-26T16:00:00.000+0000,如果想转成时间戳在application.properties配置文件增加以下配置
+    date-format: yyyy-MM-dd HH:mm:ss
+    #时区必须要设置
+    time-zone: GMT+8
+    #ALWAYS的意思是即时属性为null,仍然也会输出这个key
+    default-property-inclusion: always
+
+  cloud:
+  #eureka主机名,会在控制页面中显示
+  #DEV环境关闭注册。
+    features:
+      enabled: true
+    discovery:
+      enabled: true
+    service-registry:
+      auto-registration:
+        enabled: true
+
+  datasource:
+        type: com.alibaba.druid.pool.DruidDataSource
+        #oracle
+        #driver-class-name=oracle.jdbc.OracleDriver
+        #url=jdbc:oracle:thin:@10.50.3.68:1521:CGODW
+        #username=CGOETL
+        #password=1q2w3e4r
+        #spring datasource mysql,注意编码配置,缺少数据库编码配置容易引起中文入库乱码
+        url: jdbc:mysql://118.31.66.166:3306/statistics?useUnicode=true&characterEncoding=utf8
+        username: 110
+        password: QAHqCJf2kFYCLirM
+        driver-class-name: com.mysql.cj.jdbc.Driver
+        #配置初始化大小/最小/最大
+        druid:
+          initial-size: 1
+          min-idle: 1
+          max-active: 20
+          #获取连接等待超时时间
+          max-wait: 60000
+          #一个连接在池中最小生存的时间
+          min-evictable-idle-time-millis: 300000
+          #间隔多久进行一次检测,检测需要关闭的空闲连接
+          time-between-eviction-runs-millis: 60000
+          #mysql
+          validation-query: SELECT 1 FROM DUAL
+          #oracle
+          #druid.validation-query:SELECT 'x' FROM DUAL
+          test-while-idle: true
+          test-on-borrow: false
+          test-on-return: false
+          default-auto-commit: true
+#        tomcat:
+#          max-wait: 10
+#          max-idle: 10000
+#          min-idle: 5
+#          initial-size: 5
+
+eureka:
+  instance:
+    #eureka服务器页面中status的请求路径
+#    status-page-url:  http://${eureka.instance.hostname}:${server.port}/index
+    prefer-ip-address: true
+    instance-id:  ${spring.cloud.client.ip-address}:${server.port}
+    hostname: ${spring.cloud.client.ip-address}
+    lease-renewal-interval-in-seconds: 15
+    lease-expiration-duration-in-seconds: 45
+    health-check-url-path: /actuator/health
+    metadata-map:
+          user:
+            name: "admin"         #These two are needed so that the server
+            password: "123456"
+  client:
+    #eureka注册中心服务器地址
+    service-url:
+#      defaultZone: http://127.0.0.1:12345/eureka/
+      defaultZone: http://192.168.1.53:12345/eureka/
+    registry-fetch-interval-seconds:  30
+
+
+
+management:
+  endpoints:
+    enabled-by-default: true
+    web:
+      exposure:
+        include: "*"
+  endpoint:
+    health:
+      show-details: always
+    shutdown:
+      enabled: true
+
+mybatis:
+  mapper-locations: classpath:mapping/*.xml
+  type-aliases-package: com.tianbo.warehouse.model
+pagehelper:
+  #auto-dialect: true
+  #auto-runtime-dialect: true
+  helper-dialect: mysql
+  reasonable: true
+
+  support-methods-arguments: true
+  params: count=countSql
+
+#debug配置,debug或者为true的时候,logback才会记录和写入日志文件
+trace: false
+debug: false
+
+logging:
+  file:
+    path: ./logs/
+    name: system.log
+  config: config/logback-dev.xml
+  #转移到logback配置文件中
+  #level:
+    #org.apache.tomcat: info
+    #com.tianbo.warehouse.dao: DEBUG
+    #org.springframework.security: trace
+  #日志配置,输出到文本,
+#Java Web Token 时效时间,单位秒
+jwt:
+  max-alive: 30000
+
+info:
+  version: 2.0
+  description: "具有公司及部门管理级别的用户管理中心"
diff --git a/config/logback-dev.xml b/config/logback-dev.xml
index 76ddc20..7a9d9f3 100644
--- a/config/logback-dev.xml
+++ b/config/logback-dev.xml
@@ -176,15 +176,15 @@
         <logger name="org.apache.tomcat" level="info" />
         <root level="INFO">
             <appender-ref ref="CONSOLE" />
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="WARN_FILE" />
-            <appender-ref ref="ERROR_FILE" />
+<!--            <appender-ref ref="DEBUG_FILE" />-->
+<!--            <appender-ref ref="INFO_FILE" />-->
+<!--            <appender-ref ref="WARN_FILE" />-->
+<!--            <appender-ref ref="ERROR_FILE" />-->
         </root>
     </springProfile>
 
     <!--生产环境:输出到文件-->
-    <springProfile name="pro">
+    <springProfile name="prd">
         <root level="info">
             <appender-ref ref="CONSOLE" />
             <appender-ref ref="DEBUG_FILE" />
diff --git a/src/main/java/com/tianbo/warehouse/controller/AnonymousController.java b/src/main/java/com/tianbo/warehouse/controller/AnonymousController.java
index 053367b..c34ddf8 100644
--- a/src/main/java/com/tianbo/warehouse/controller/AnonymousController.java
+++ b/src/main/java/com/tianbo/warehouse/controller/AnonymousController.java
@@ -75,7 +75,7 @@ public class AnonymousController {
         String verifyToken = "";
         try {
             verifyToken =  UUID.randomUUID().toString();
-            redisUtils.set(Token.VERIFY_TOKEN_KEY + verifyToken,String.valueOf(sum),1200);
+            redisUtils.set(Token.VERIFY_TOKEN_KEY + verifyToken,String.valueOf(sum),120);
             ImageIO.write(bi, "jpeg", outputStream);
             map.put("verifyImg","data:image/jpeg;base64,"+encoder.encode(outputStream.toByteArray()));
         } catch (IOException e) {
diff --git a/src/main/java/com/tianbo/warehouse/controller/HeartBeatController.java b/src/main/java/com/tianbo/warehouse/controller/HeartBeatController.java
index 138aec4..de60e31 100644
--- a/src/main/java/com/tianbo/warehouse/controller/HeartBeatController.java
+++ b/src/main/java/com/tianbo/warehouse/controller/HeartBeatController.java
@@ -61,7 +61,7 @@ public class HeartBeatController {
              * key样式
              * accessToken:token
              */
-            if (token!=null && !token.isEmpty() && token.startsWith(Token.VERIFY_TOKEN_TYPE)){
+            if (StringUtils.isNotEmpty(token) && token.startsWith(Token.VERIFY_TOKEN_TYPE)){
                 token = token.substring(Token.VERIFY_TOKEN_TYPE.length());
                 String accessToken = token;
                 String userDetailStr = redisUtils.get(accessToken);
diff --git a/src/main/java/com/tianbo/warehouse/model/USERS.java b/src/main/java/com/tianbo/warehouse/model/USERS.java
index ed54cbb..a91ddba 100755
--- a/src/main/java/com/tianbo/warehouse/model/USERS.java
+++ b/src/main/java/com/tianbo/warehouse/model/USERS.java
@@ -271,11 +271,16 @@ public class USERS implements UserDetails {
     /**
      *
      * @return 账户未锁定
+     * 用户状态为0时,为锁定状态
      */
     @Override
     public boolean isAccountNonLocked(){
-        if (state){
-            return true;
+        if (this.userStatus != null){
+            if(this.userStatus == 0){
+                return false;
+            }else {
+                return true;
+            }
         }else {
             return false;
         }
diff --git a/src/main/java/com/tianbo/warehouse/security/handel/MyAuthenticationSuccessHandler.java b/src/main/java/com/tianbo/warehouse/security/handel/MyAuthenticationSuccessHandler.java
index 3c90522..2ad6d7f 100755
--- a/src/main/java/com/tianbo/warehouse/security/handel/MyAuthenticationSuccessHandler.java
+++ b/src/main/java/com/tianbo/warehouse/security/handel/MyAuthenticationSuccessHandler.java
@@ -72,6 +72,8 @@ public class MyAuthenticationSuccessHandler extends SavedRequestAwareAuthenticat
             loginedUser.setCompanyId(user.getCompanyId());
             loginedUser.setCompanyName(user.getCompanyName());
             loginedUser.setCompanyInfo(user.getCompanyInfo());
+            loginedUser.setUserStatus(user.getUserStatus());
+            loginedUser.setState(user.getState());
 
 
             //设置用户的TOKEN的有效时间,时间配置在配置文件中设置
diff --git a/src/main/java/com/tianbo/warehouse/security/login/SM3EncryptUtil.java b/src/main/java/com/tianbo/warehouse/security/login/SM3EncryptUtil.java
index 8c1e549..c958297 100644
--- a/src/main/java/com/tianbo/warehouse/security/login/SM3EncryptUtil.java
+++ b/src/main/java/com/tianbo/warehouse/security/login/SM3EncryptUtil.java
@@ -57,7 +57,7 @@ public class SM3EncryptUtil {
     public static void main(String[] args) {
         Security.addProvider(new BouncyCastleProvider());
         try {
-            String pwdDigest = passwordSm3("vmvnv1v2VV");
+            String pwdDigest = passwordSm3("vmvnv1v2");
             System.out.println(pwdDigest);
         } catch (Exception e) {
             e.printStackTrace();
diff --git a/src/main/resources/mapping/USERSMapper.xml b/src/main/resources/mapping/USERSMapper.xml
index 7d0af4f..00524fe 100755
--- a/src/main/resources/mapping/USERSMapper.xml
+++ b/src/main/resources/mapping/USERSMapper.xml
@@ -129,7 +129,7 @@
   <select id="selectByUsernameWithRoleAndPerm" resultMap="WithRoleAndPermResultMap" parameterType="java.lang.String" >
     select
     u.user_id, username, password, birthday, sex, address, state, mobilePhone, creatTime,
-    updateTime, userFace, realName, email, age,company_id,
+    updateTime, userFace, realName, email, age,company_id,user_status,
 
     r.role_id, role_name, role_sign, r.description as rdescription, `type`, parentId, rsort, customs_reg_code,
     business_license, departmentId, mq_code,
--
libgit2 0.24.0