Pārlūkot izejas kodu

优化登录实体类

caixiaofeng 7 mēneši atpakaļ
vecāks
revīzija
3fa7861ff9
23 mainītis faili ar 148 papildinājumiem un 96 dzēšanām
  1. 0 2
      flow-app/src/test/java/com/flow/FlowApplicationTest.java
  2. 91 0
      flow-common/flow-common-core/src/main/java/com/flow/common/core/model/OauthUserDetails.java
  3. 5 5
      flow-common/flow-common-core/src/main/java/com/flow/common/core/util/SecurityContextUtil.java
  4. 3 4
      flow-common/flow-common-mybatis-starter/pom.xml
  5. 13 3
      flow-common/flow-common-mybatis-starter/src/main/java/com/flow/common/mybatis/handler/FieldMetaObjectHandler.java
  6. 2 2
      flow-file/flow-file-biz/src/main/java/com/flow/service/impl/FileServiceImpl.java
  7. 1 1
      flow-im/flow-im-biz/src/main/java/com/flow/service/impl/NotifyServiceImpl.java
  8. 1 1
      flow-oauth/flow-oauth-biz/src/main/java/com/flow/service/impl/AuthServiceImpl.java
  9. 13 2
      flow-oauth/flow-oauth-biz/src/main/java/com/flow/service/impl/UserDetailsServiceImpl.java
  10. 0 60
      flow-oauth/flow-oauth-entity/src/main/java/com/flow/entity/OauthUserDetails.java
  11. 4 1
      flow-report/flow-report-biz/src/main/java/com/flow/service/impl/ReportDatasourceServiceImpl.java
  12. 0 1
      flow-report/flow-report-controller/src/main/java/com/flow/controller/ReportTemplateController.java
  13. 0 2
      flow-report/flow-report-entity/src/main/java/com/flow/model/spreadsheet/SheetFont.java
  14. 4 1
      flow-report/flow-report-entity/src/main/java/com/flow/model/spreadsheet/SpreadSheet.java
  15. 1 1
      flow-system/flow-system-biz/src/main/java/com/flow/service/impl/UserServiceImpl.java
  16. 1 2
      flow-workflow/flow-workflow-biz/src/main/java/com/flow/listener/GlobalActivityEventListener.java
  17. 1 1
      flow-workflow/flow-workflow-biz/src/main/java/com/flow/service/impl/FlowDefineServiceImpl.java
  18. 0 1
      flow-workflow/flow-workflow-biz/src/main/java/com/flow/service/impl/FlowModelServiceImpl.java
  19. 5 2
      flow-workflow/flow-workflow-biz/src/main/java/com/flow/service/impl/FlowTaskServiceImpl.java
  20. 1 1
      flow-workflow/flow-workflow-controller/src/main/java/com/flow/controller/FlowInstanceController.java
  21. 0 1
      flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/FlowDefine.java
  22. 1 1
      flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/node/ApprovalNode.java
  23. 1 1
      flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/node/AssigneeNode.java

+ 0 - 2
flow-app/src/test/java/com/flow/FlowApplicationTest.java

@@ -6,8 +6,6 @@ import com.flow.model.ExecSql;
 import com.flow.service.ReportDatasourceService;
 import org.flowable.engine.HistoryService;
 import org.flowable.engine.TaskService;
-import org.flowable.task.api.Task;
-import org.flowable.task.api.history.HistoricTaskInstance;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;

+ 91 - 0
flow-common/flow-common-core/src/main/java/com/flow/common/core/model/OauthUserDetails.java

@@ -0,0 +1,91 @@
+package com.flow.common.core.model;
+
+import lombok.Data;
+import org.springframework.security.core.CredentialsContainer;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.userdetails.UserDetails;
+
+import java.util.Collection;
+import java.util.Set;
+@Data
+public class OauthUserDetails implements UserDetails, CredentialsContainer {
+    private static final long serialVersionUID = 530L;
+    private  String nickName;
+    private  String leader;
+    private Set<String> roleIds;
+    private Long deptId;
+    private String phone;
+    private String email;
+    private String password;
+    private final String username;
+    private final boolean enabled;
+    private final Set<GrantedAuthority> authorities;
+
+    public OauthUserDetails(String username,
+                            String password,
+                            String nickName,
+                            String leader,
+                            Set<String> roleIds,
+                            Long deptId,
+                            String phone,
+                            String email,
+                            boolean enabled,
+                            Set<GrantedAuthority> authorities
+    ) {
+        if (username != null && !username.isEmpty() && password != null) {
+            this.username = username;
+            this.password = password;
+            this.enabled = enabled;
+            this.nickName = nickName;
+            this.leader = leader;
+            this.roleIds = roleIds;
+            this.deptId = deptId;
+            this.phone = phone;
+            this.email = email;
+            this.authorities = authorities;
+        } else {
+            throw new IllegalArgumentException("Cannot pass null or empty values to constructor");
+        }
+    }
+
+    @Override
+    public Collection<? extends GrantedAuthority> getAuthorities() {
+        return this.authorities;
+    }
+
+    @Override
+    public String getPassword() {
+        return this.password;
+    }
+
+    @Override
+    public String getUsername() {
+        return this.username;
+    }
+
+    @Override
+    public boolean isAccountNonExpired() {
+        return true;
+    }
+
+    @Override
+    public boolean isAccountNonLocked() {
+        return true;
+    }
+
+    @Override
+    public boolean isCredentialsNonExpired() {
+        return true;
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return this.enabled;
+    }
+
+    @Override
+    public void eraseCredentials() {
+        this.password = null;
+    }
+
+}

+ 5 - 5
flow-common/flow-common-oauth2-starter/src/main/java/com/flow/common/oauth2/utils/SecurityContextUtil.java → flow-common/flow-common-core/src/main/java/com/flow/common/core/util/SecurityContextUtil.java

@@ -1,9 +1,9 @@
-package com.flow.common.oauth2.utils;
+package com.flow.common.core.util;
 
+import com.flow.common.core.model.OauthUserDetails;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails;
 
 import java.util.ArrayList;
@@ -22,7 +22,7 @@ public class SecurityContextUtil {
     public static String getUserId() {
         Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
         if (Objects.nonNull(authentication)) {
-            UserDetails userDetails = (UserDetails) authentication.getPrincipal();
+            OauthUserDetails userDetails = (OauthUserDetails) authentication.getPrincipal();
             return userDetails.getUsername();
         }
         return null;
@@ -32,10 +32,10 @@ public class SecurityContextUtil {
      * 登录用户信息
      * @return
      */
-    public static UserDetails getUserInfo(){
+    public static OauthUserDetails getUserInfo(){
         Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
         if (authentication != null) {
-            return (UserDetails) authentication.getPrincipal();
+            return (OauthUserDetails) authentication.getPrincipal();
         }
         return null;
     }

+ 3 - 4
flow-common/flow-common-mybatis-starter/pom.xml

@@ -36,11 +36,10 @@
             <artifactId>jackson-databind</artifactId>
             <optional>true</optional>
         </dependency>
-        <!--oauth2-->
+        <!--security-->
         <dependency>
-            <groupId>com.flow</groupId>
-            <artifactId>flow-common-oauth2-starter</artifactId>
-            <version>0.0.1-SNAPSHOT</version>
+            <groupId>org.springframework.security</groupId>
+            <artifactId>spring-security-core</artifactId>
             <optional>true</optional>
         </dependency>
     </dependencies>

+ 13 - 3
flow-common/flow-common-mybatis-starter/src/main/java/com/flow/common/mybatis/handler/FieldMetaObjectHandler.java

@@ -1,8 +1,10 @@
 package com.flow.common.mybatis.handler;
 
 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
-import com.flow.common.oauth2.utils.SecurityContextUtil;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
 
 import java.time.LocalDateTime;
 
@@ -27,7 +29,11 @@ public class FieldMetaObjectHandler implements MetaObjectHandler {
             this.fillStrategy(metaObject, "createTime", LocalDateTime.now());
         }
         if (metaObject.hasSetter("createdBy")) {
-            this.fillStrategy(metaObject, "createdBy", SecurityContextUtil.getUserId());
+            Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+            String username = authentication.getName();
+            if (StringUtils.isNotBlank(username)) {
+                this.fillStrategy(metaObject, "createdBy", username);
+            }
         }
     }
 
@@ -43,7 +49,11 @@ public class FieldMetaObjectHandler implements MetaObjectHandler {
             this.fillStrategy(metaObject, "updateTime", LocalDateTime.now());
         }
         if (metaObject.hasSetter("updatedBy")) {
-            this.fillStrategy(metaObject, "updatedBy", SecurityContextUtil.getUserId());
+            Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+            String username = authentication.getName();
+            if (StringUtils.isNotBlank(username)) {
+                this.fillStrategy(metaObject, "updatedBy", username);
+            }
         }
     }
 }

+ 2 - 2
flow-file/flow-file-biz/src/main/java/com/flow/service/impl/FileServiceImpl.java

@@ -13,10 +13,10 @@ import com.flow.model.StorageFileQuery;
 import com.flow.service.FileService;
 import com.flow.utils.FileUtil;
 import com.google.common.collect.Lists;
-import org.apache.commons.codec.digest.DigestUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.DigestUtils;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
@@ -56,7 +56,7 @@ public class FileServiceImpl extends BaseServiceImpl<FileDao, StorageFile> imple
         String filename = multipartFile.getOriginalFilename();
         String suffix = FileUtil.getSuffix(filename);
         File file = FileUtil.upload(multipartFile, FileConstant.getPath());
-        String md5 = DigestUtils.md5Hex(Files.newInputStream(file.toPath()));
+        String md5 = DigestUtils.md5DigestAsHex(Files.newInputStream(file.toPath()));
         ArrayList<String> doc = Lists.newArrayList("txt", "pdf", "doc", "docx", "ppt", "pptx", "xlsx", "xls");
         ArrayList<String> image = Lists.newArrayList("mpt", "pcd", "tga", "iff", "cdr", "psd", "eps", "tif", "wmf", "dif", "pcp", "dib", "jpg", "png", "gif", "jpeg", "bmp");
         ArrayList<String> video = Lists.newArrayList("flv", "dat", "m4v", "asx", "mov", "mp4", "avi", "rmvb", "rm", "asf", "divx", "mpg", "mpeg", "mpe", "wmv", "mkv", "vob");

+ 1 - 1
flow-im/flow-im-biz/src/main/java/com/flow/service/impl/NotifyServiceImpl.java

@@ -4,8 +4,8 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.flow.common.core.model.CursorResult;
 import com.flow.common.core.model.PageResult;
+import com.flow.common.core.util.SecurityContextUtil;
 import com.flow.common.mybatis.service.impl.BaseServiceImpl;
-import com.flow.common.oauth2.utils.SecurityContextUtil;
 import com.flow.dao.NotifyDao;
 import com.flow.entity.MessageEntity;
 import com.flow.entity.Notify;

+ 1 - 1
flow-oauth/flow-oauth-biz/src/main/java/com/flow/service/impl/AuthServiceImpl.java

@@ -4,7 +4,7 @@ package com.flow.service.impl;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.flow.common.core.exception.BaseException;
 import com.flow.common.core.util.ApplicationContextUtil;
-import com.flow.common.oauth2.utils.SecurityContextUtil;
+import com.flow.common.core.util.SecurityContextUtil;
 import com.flow.dao.AuthDao;
 import com.flow.entity.Menu;
 import com.flow.entity.User;

+ 13 - 2
flow-oauth/flow-oauth-biz/src/main/java/com/flow/service/impl/UserDetailsServiceImpl.java

@@ -1,8 +1,8 @@
 package com.flow.service.impl;
 
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.flow.common.core.model.OauthUserDetails;
 import com.flow.dao.AuthDao;
-import com.flow.entity.OauthUserDetails;
 import com.flow.entity.Role;
 import com.flow.entity.User;
 import lombok.extern.slf4j.Slf4j;
@@ -49,6 +49,17 @@ public class UserDetailsServiceImpl implements UserDetailsService {
                 .map(SimpleGrantedAuthority::new)
                 .collect(Collectors.toSet());
         authorities.addAll(authoritySet);
-        return new OauthUserDetails(user, authorities);
+        return new OauthUserDetails(
+                user.getUsername(),
+                user.getPassword(),
+                user.getName(),
+                user.getLeader(),
+                user.getRoleIds(),
+                user.getDeptId(),
+                user.getPhone(),
+                user.getEmail(),
+                user.getEnabled(),
+                authorities
+        );
     }
 }

+ 0 - 60
flow-oauth/flow-oauth-entity/src/main/java/com/flow/entity/OauthUserDetails.java

@@ -1,60 +0,0 @@
-package com.flow.entity;
-
-import org.springframework.security.core.CredentialsContainer;
-import org.springframework.security.core.GrantedAuthority;
-import org.springframework.security.core.userdetails.UserDetails;
-
-import java.util.Collection;
-import java.util.Set;
-
-public class OauthUserDetails implements UserDetails, CredentialsContainer {
-    private static final long serialVersionUID = 530L;
-    private final User user;
-    private final Set<GrantedAuthority> authorities;
-
-    public OauthUserDetails(User user, Set<GrantedAuthority> authorities) {
-        this.user = user;
-        this.authorities = authorities;
-
-    }
-
-    @Override
-    public Collection<? extends GrantedAuthority> getAuthorities() {
-        return this.authorities;
-    }
-
-    @Override
-    public String getPassword() {
-        return user.getPassword();
-    }
-
-    @Override
-    public String getUsername() {
-        return user.getUsername();
-    }
-
-    @Override
-    public boolean isAccountNonExpired() {
-        return true;
-    }
-
-    @Override
-    public boolean isAccountNonLocked() {
-        return true;
-    }
-
-    @Override
-    public boolean isCredentialsNonExpired() {
-        return true;
-    }
-
-    @Override
-    public boolean isEnabled() {
-        return this.user.getEnabled();
-    }
-
-    @Override
-    public void eraseCredentials() {
-        user.setPassword(null);
-    }
-}

+ 4 - 1
flow-report/flow-report-biz/src/main/java/com/flow/service/impl/ReportDatasourceServiceImpl.java

@@ -18,7 +18,10 @@ import org.springframework.stereotype.Service;
 
 import javax.sql.DataSource;
 import java.sql.SQLException;
-import java.util.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
 
 @Service
 public class ReportDatasourceServiceImpl extends BaseServiceImpl<ReportDatasourceDao, ReportDataSource> implements ReportDatasourceService {

+ 0 - 1
flow-report/flow-report-controller/src/main/java/com/flow/controller/ReportTemplateController.java

@@ -6,7 +6,6 @@ import com.flow.entity.ReportTemplate;
 import com.flow.model.ReportTemplateQuery;
 import com.flow.service.ReportTemplateService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Set;

+ 0 - 2
flow-report/flow-report-entity/src/main/java/com/flow/model/spreadsheet/SheetFont.java

@@ -4,8 +4,6 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter;
 import com.fasterxml.jackson.annotation.JsonAnySetter;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import lombok.Data;
-import org.apache.poi.ss.usermodel.Font;
-import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
 import org.apache.poi.xssf.usermodel.XSSFFont;
 

+ 4 - 1
flow-report/flow-report-entity/src/main/java/com/flow/model/spreadsheet/SpreadSheet.java

@@ -1,7 +1,10 @@
 package com.flow.model.spreadsheet;
 
 import lombok.Data;
-import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.usermodel.BorderStyle;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.ss.util.RegionUtil;
 import org.apache.poi.xssf.streaming.SXSSFSheet;

+ 1 - 1
flow-system/flow-system-biz/src/main/java/com/flow/service/impl/UserServiceImpl.java

@@ -5,9 +5,9 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.flow.common.core.exception.BaseException;
 import com.flow.common.core.model.PageResult;
+import com.flow.common.core.util.SecurityContextUtil;
 import com.flow.common.mybatis.constant.SqlConstant;
 import com.flow.common.mybatis.service.impl.BaseServiceImpl;
-import com.flow.common.oauth2.utils.SecurityContextUtil;
 import com.flow.dao.UserDao;
 import com.flow.entity.Role;
 import com.flow.entity.StorageFile;

+ 1 - 2
flow-workflow/flow-workflow-biz/src/main/java/com/flow/listener/GlobalActivityEventListener.java

@@ -1,11 +1,10 @@
 package com.flow.listener;
 
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-import com.flow.common.oauth2.utils.SecurityContextUtil;
+import com.flow.common.core.util.SecurityContextUtil;
 import com.flow.constant.NodeTypeConstant;
 import com.flow.entity.*;
 import com.flow.entity.node.ApprovalNode;
-import com.flow.entity.node.StartNode;
 import com.flow.entity.settings.CancelConfig;
 import com.flow.entity.settings.Settings;
 import com.flow.enums.ApprovalNobodyEnum;

+ 1 - 1
flow-workflow/flow-workflow-biz/src/main/java/com/flow/service/impl/FlowDefineServiceImpl.java

@@ -1,9 +1,9 @@
 package com.flow.service.impl;
 
 import com.flow.common.core.exception.BaseException;
+import com.flow.common.core.util.SecurityContextUtil;
 import com.flow.common.core.util.StrUtil;
 import com.flow.common.mybatis.service.impl.BaseServiceImpl;
-import com.flow.common.oauth2.utils.SecurityContextUtil;
 import com.flow.dao.FlowDefineDao;
 import com.flow.entity.FlowDefine;
 import com.flow.entity.node.*;

+ 0 - 1
flow-workflow/flow-workflow-biz/src/main/java/com/flow/service/impl/FlowModelServiceImpl.java

@@ -15,7 +15,6 @@ import com.flow.service.FlowModelHistoryService;
 import com.flow.service.FlowModelService;
 import com.flow.service.ReportTemplateService;
 import com.google.common.collect.Lists;
-import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
 import org.flowable.bpmn.converter.BpmnXMLConverter;
 import org.flowable.bpmn.model.BpmnModel;

+ 5 - 2
flow-workflow/flow-workflow-biz/src/main/java/com/flow/service/impl/FlowTaskServiceImpl.java

@@ -7,15 +7,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.flow.cmd.JumpActivityCmd;
 import com.flow.common.core.exception.BaseException;
 import com.flow.common.core.model.PageResult;
+import com.flow.common.core.util.SecurityContextUtil;
 import com.flow.common.mybatis.constant.SqlConstant;
 import com.flow.common.mybatis.service.impl.BaseServiceImpl;
-import com.flow.common.oauth2.utils.SecurityContextUtil;
 import com.flow.dao.FlowTaskDao;
 import com.flow.entity.FlowActivity;
 import com.flow.entity.FlowDefine;
 import com.flow.entity.FlowInstance;
 import com.flow.entity.FlowTask;
-import com.flow.entity.node.*;
+import com.flow.entity.node.ApprovalNode;
+import com.flow.entity.node.FormProperty;
+import com.flow.entity.node.Node;
+import com.flow.entity.node.StartNode;
 import com.flow.enums.ProcessStatus;
 import com.flow.model.*;
 import com.flow.service.FlowActivityService;

+ 1 - 1
flow-workflow/flow-workflow-controller/src/main/java/com/flow/controller/FlowInstanceController.java

@@ -3,7 +3,7 @@ package com.flow.controller;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.flow.common.core.model.PageResult;
 import com.flow.common.core.model.Result;
-import com.flow.common.oauth2.utils.SecurityContextUtil;
+import com.flow.common.core.util.SecurityContextUtil;
 import com.flow.entity.FlowInstance;
 import com.flow.model.FlowInstanceQuery;
 import com.flow.model.FormInfo;

+ 0 - 1
flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/FlowDefine.java

@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.flow.common.core.exception.BaseException;
 import com.flow.common.mybatis.entity.BaseEntity;
 import com.flow.entity.node.BranchNode;
 import com.flow.entity.node.ConditionNode;

+ 1 - 1
flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/node/ApprovalNode.java

@@ -3,7 +3,7 @@ package com.flow.entity.node;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.flow.common.core.util.ApplicationContextUtil;
-import com.flow.common.oauth2.utils.SecurityContextUtil;
+import com.flow.common.core.util.SecurityContextUtil;
 import com.flow.entity.FlowDefine;
 import com.flow.entity.User;
 import com.flow.enums.ApprovalMultiEnum;

+ 1 - 1
flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/node/AssigneeNode.java

@@ -2,7 +2,7 @@ package com.flow.entity.node;
 
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.flow.common.core.util.ApplicationContextUtil;
-import com.flow.common.oauth2.utils.SecurityContextUtil;
+import com.flow.common.core.util.SecurityContextUtil;
 import com.flow.entity.User;
 import com.flow.enums.AssigneeTypeEnum;
 import com.flow.enums.OrganizationTypeEnum;