JeeSite 4 架構特點、安全方面、爲什麼好、工匠精神、不忘初心

1、底層架構

  1. 以 Spring Boot 2 爲基礎,Maven 多項目依賴,模塊分項目,松耦合,方便模塊升級、增減模塊。
  2. 模塊化的數據庫自動升級程序,當模塊升級代碼需要更新數據庫時,自動執行對應版本 SQL 腳本。
  3. 功能授權模塊靈活,按鈕級別,支持 單點登錄、第三方登錄,豐富的擴展模塊,簡單 yml 配置即可實現。
  4. 支持多數據源,深入 MyBatis 底層事務,從 DAO 層切換多數據源,方便快捷,徹底的解決必須從 Controller 裏切換數據源的麻煩。並且支持,分佈式事務,跨應用級別的事務,簡單 yml 配置即可實現。
  5. 數據表主鍵優化思想,如分類科目表,採用有意義的主鍵方式,讓客戶去自定義,減少後期運維維護成本。
  6. 獨創 @Table 註解(優於MyBatis-Plus)在 MyBatis 基礎上 Dao 層封裝:

    • 自動生成增刪改 SQL,不需要在 mapper.xml 裏寫重複又費時的 SQL 了,減少開發和後期維護成本。
    • 所有列 @Column 定義均放到類頭,而不是分佈到各個屬性或方法上,非常好,主要是有如下原因:
    • 一是,放到表頭的好處是,可一覽熟知該實體類對應的物理表結構是什麼樣,開發者思維從物理表結構到對象的映射轉換,都是基於物理表結構的,減少後期代碼分析的維護成本,@Column 指定物理字段名,而不是指定類上的屬性名,也是這個原因;
    • 二是,生成的 SQL 和查詢條件,可定義列的排列順序,方便覈查定義,優化查詢,提升性能;
    • 三是,方便 @JoinTable 關聯表和其它擴展信息的設置,如果分佈到類的屬性上就不太好管理列。
  7. 數據權限:不僅僅是角色,顆粒度細化到每個人員的身上,可自定義第三方數據權限,不僅僅是部門和公司,你可以擴展,如:地區,欄目分類,商品分類,無需讓你多寫代碼,簡單調用即可實現複雜的數據權限控制。
  8. 緩存監控:採用 J2Cache 二級緩存,支持快速切換爲 Redis 緩存,支持集羣 Session 和系統緩存共享
  9. 服務器監控,查看 CPU,內存,JVM,磁盤信息等。方便運維人員分析系統負載情況。
  10. 支持 SAAS 多租戶模式:每個租戶數據通過 corp_code 字段進行分離,數據互不干擾。
  11. 支持 Spring Cloud 架構:分佈式,微服務,最小化內核,統一配置中心,統一授權認證中心。
  12. 樹結構的圖特設計:提高運維、數據分析、優化查詢。
  13. 多用戶類型支持:員工、會員、專家、往來單位等。
  14. 豐富的內置功能:用戶權限、數據權限、系統管理。
  15. 定時任務在線配置,界面化生成 cron 表達式,支持集羣環境自適應,調度日誌監控。
  16. BPM 業務流程模塊:基於 Flowable,支持退回、自由流、會籤等高級應用。
  17. 在線預覽系統:文件管理、在線預覽圖片、文檔、文本、視頻等格式
  18. 消息推送:APP、短信、郵件、微信,你無需瞭解消息是怎麼發送出去的,只需瞭解消息發送接口即可。
  19. 提供豐富的移動端接口、第三方系統調用接口,輕鬆實現授權認證、數據調用(支持 json、xml 等格式)
  20. 國際化的支持,頁面標籤國際化,字典菜單國際化,數據國際化(中文、英語、日語等)。
  21. 在線代碼生成工具,操作簡化及優化,支持多數據源(單表、主子表、樹表、Cloud等模板,支持自由擴展)。
  22. 在線查詢在線人員,強踢在線賬號。
  23. 提供豐富的在線文檔及案例。

2、安全方面

  1. 系統採用Java 語言開發,具有卓越的通用性、高效性、平臺移植性和安全性(適應全行業的軟件)。
  2. 分層設計層次清楚,低耦合,各層必須通過接口才能接入並進行參數校驗,保證數據操作的安全。
  3. 雙重驗證,用戶表單提交雙驗證:包括服務器端驗證及客戶端驗證,防止用戶通過瀏覽器惡意修改(如不可寫文本域、隱藏變量篡改、上傳非法文件等)避免客戶端跳過驗證直接操作數據庫。
  4. 安全編碼,用戶表單提交所有數據,在服務器端都進行安全編碼,防止用戶提交非法腳本及SQL注入獲取敏感數據等,確保數據安全。
  5. 密碼加密,登錄用戶密碼進行SHA1散列加密,此加密方法是不可逆的。保證密文泄露後的安全問題。
  6. 強制訪問,系統對管理端鏈接都進行用戶身份權限驗證及權限,防止用戶直接獲取資源。
  7. 數據庫密碼及其它安全密鑰自動加密配置(只需配置參數即可實現,無需使用複雜的祕鑰生成功能)。
  8. MyBatis 參數採用安全接受,特殊操作都必須經過 SQL 安全過濾,杜絕 SQL 注入問題。
  9. 所有請求參數獲取,均通過 XSS 跨站腳本過濾方法,杜絕 XSS 問題。
  10. 樂觀鎖簡單實現,避免一條數據多人同時操作時的數據覆蓋,提高數據安全性。
  11. 通過 yml 簡單配置,輕鬆解決 JS 是否允許跨域操作,自適應跨域情況。
  12. 身份認證:

    • 登錄失敗多少次後顯示驗證碼。
    • 登錄失敗多少次後鎖定賬號及鎖定賬號時間。
    • 登錄賬號密碼可加密後再提交後臺。
    • 同設備是否允許賬號多地登錄。
  13. 密碼策略:

    • 初始密碼修改策略,提醒或強制用戶修改初始密碼。
    • 賬號密碼修改策略,多長時間內未修改,則提醒或強制修改密碼。
    • 開關控制密碼修改多少次內不允許重複,驗證與上次或前幾次的密碼是否相同。
    • 開關控制賬號密碼修改最低安全等級,很弱、弱、安全、很安全,四個等級,強制或提醒。
  14. 權限審計:

    • 賬號密碼審計(未修改初始密碼、使用簡單密碼、定期未修改密碼、長期未登錄、未設置密保、以上全部、審計結果數據導出)
    • 菜單權限審計(根據菜單及權限查詢,都有哪些用戶)
    • 用戶權限審計(根據用戶查詢,都有哪些菜單及權限)
  15. 登錄提交信息加密(支持 DES 加密、Base64加密等)
  16. 支持設置獲取客戶端IP的Header名稱,防止IP僞造。
  17. 支持設置允許的請求方法設定(如:僅允許 GET、POST 請求)
  18. 是否允許賬號多地登錄,如果設置爲false,同一個設備類型的其它地點登錄的相同賬號被踢下線
  19. 是否允許多賬號多設備登錄,如果設置爲false,其它地點登錄的相同賬號全部登錄設備將被踢下線
  20. 是否允許刷新主框架頁,如果設置爲false,刷新主頁將導致重新登錄。如 銀行系統 個人首頁不允許刷新。
  21. 是否允許嵌入到外部網站iframe中(true:不限制,false:不允許)
  22. 是否允許跨域訪問 CORS,解決 Cookie 跨域訪問問題。
  23. 是否允許跨域訪問時 CORS,可以使用的方法和響應頭(如:僅允許 GET、POST 請求)
  24. 是否允許接收跨域的 Cookie 憑證數據 CORS 設置
  25. 是否允許的網站來源地址,不設置爲全部地址(避免一些跨站點請求僞造 CSRF)
  26. 是否在登錄後生成新的Session(默認false)安全係數更高的系統設置
  27. 可設置多個允許的內部系統 IP 地址的白名單,否則拒絕訪問

3、用戶界面

  1. 基於 Bootstrap 平面化界面設計,精細,更加美觀、高端、大氣、上檔次,支持ie9+及其他任何瀏覽器。
  2. 支持手機或平板訪問,響應式樣式、響應式佈局,根據屏幕分辨率自適應控件佈局。
  3. 無刷新設計,除了進入功能頁面和新頁面,其它情況下全部採用 Ajax 交互,優化體驗和性能。
  4. 支持一鍵換膚,只需在 yml 裏修改下主題名稱即可快速切換整個UI的風格,不僅僅是色調和樣式,佈局也可改變。支持自定義擴展項目獨有的主題樣式風格。
  5. 優化用戶功能操作,大衆思維模式,功能清晰,更加貼切和友好。

4、前端開發

  1. 採用當前比較流行的 Beetl 模板引擎,它的優點很多,大家可自行查閱看看,這裏不多說了。
  2. 封裝 Beetl UI 通用組件,簡單實現基本表單控件、樹選擇,列表選擇,文件上傳,等等,總之是簡化開發。
  3. 數據表格 jqGrid 組件封裝,自動完成分頁、排序、列寬、多表頭、子表、編輯表、等。
  4. 支持前後分離應用,方便與手機 API 接口對接,Token 方式授權。

5、功能及組件

  1. 工具類 Utils 封裝優化,應有盡有,包分類層次分明,獨立工具類項目。
  2. 強大的 Excel 導出導入工具封裝,支持大數據量,註解定義,簡單配置即可實現。

6、我們的優勢

  • 整體架構清晰、穩定技術先進、源代碼書寫規範、經典技術會的人多、易於維護、易於擴展、安全穩定。

瞭解更多:http://jeesite.com/docs/

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章