浙江理工大学信息学院本科生创新项目总结报告——简单的后台用户管理项目
信息學(xué)院本科生創(chuàng)新項(xiàng)目總結(jié)報(bào)告
?
研究目的與意義
基于Spring Boot框架等技術(shù)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的后臺(tái)用戶管理系統(tǒng)項(xiàng)目,具有良好的用戶交互體驗(yàn)、良好的信息反饋能力、安全防護(hù)措施,包括用戶登錄、用戶注冊(cè)、信息反饋、用戶信息查詢、管理員用戶管理、權(quán)限控制與管理等功能。
通過對(duì)Spring Boot、Spring MVC、MyBatis、Spring Security等框架和相關(guān)技術(shù)的應(yīng)用,了解掌握原理并實(shí)現(xiàn)功能——將理論轉(zhuǎn)化為實(shí)踐。運(yùn)用Cookie、Session、分頁操作、文件上傳下載等Java Web基礎(chǔ)知識(shí)。掌握Servlet封裝、JDBC封裝等基本能力。加深對(duì)MVC設(shè)計(jì)模式、三層架構(gòu)、DAO模式的掌握和理解。同時(shí)完成一個(gè)簡(jiǎn)單的后臺(tái)管理項(xiàng)目系統(tǒng),解決Web應(yīng)用基本的登錄系統(tǒng)設(shè)計(jì)和用戶管理問題。
?
研究?jī)?nèi)容與總體方案
基于Spring Boot、Spring MVC、MyBatis、Spring Security等技術(shù)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的后臺(tái)用戶管理系統(tǒng)項(xiàng)目,具有良好的用戶交互體驗(yàn)、良好的信息反饋能力、安全防護(hù)措施。包括用戶登錄、用戶注冊(cè)、信息反饋、用戶信息查詢、管理員用戶管理、權(quán)限控制與管理等功能。
將所有賬號(hào)分為管理員賬號(hào)與用戶賬號(hào)兩個(gè)大類。
管理員主要權(quán)限在于管理用戶。
管理員擁有查看、更改用戶信息、提升用戶權(quán)限、凍結(jié)用戶賬戶等權(quán)限。
本項(xiàng)目分為用戶模塊和管理模塊。
用戶模塊,用戶可以查看用戶信息、修改用戶的基本資料。
管理模塊只有管理員能夠進(jìn)行使用,管理員可以修改用戶的權(quán)限,也可以凍結(jié)或刪除用戶賬號(hào)。該部分的權(quán)限不對(duì)其他用戶進(jìn)行開放,這部分模塊含有系統(tǒng)的基礎(chǔ)設(shè)置與初始化數(shù)據(jù)庫等高風(fēng)險(xiǎn)性操作。
總體方案
項(xiàng)目前端采用Bootstrap框架簡(jiǎn)單美化并通過AJAX和后端進(jìn)行交互。
項(xiàng)目后端采用Spring Boot框架,用java語言編寫。
采用Bootstrap作為前端UI框架
Bootstrap 是基于 HTML、CSS、JavaScript 的,簡(jiǎn)潔靈活,能夠跨設(shè)備,跨瀏覽器、還可以進(jìn)行響應(yīng)布局、CSS可以模塊化、同時(shí)內(nèi)置JavaScript插件、還有豐富的組件,使得 Web 開發(fā)更加快捷。
為了提供良好的用戶體驗(yàn),項(xiàng)目整體采用AJAX實(shí)現(xiàn)前后端交換,實(shí)現(xiàn)局部?jī)?nèi)容刷新,避免不必要的訪問請(qǐng)求。
采用Maven作為項(xiàng)目管理工具。
Maven 是一個(gè)項(xiàng)目管理工具,可以對(duì) Java 項(xiàng)目進(jìn)行構(gòu)建、依賴管理。
后端接口采用RESTful的API接口
Spring Boot整合Spring MVC。
M即Model,模型層,創(chuàng)建了實(shí)體類User,實(shí)現(xiàn)登錄、注冊(cè)功能。同時(shí)采用RBAC權(quán)限模式,對(duì)每個(gè)對(duì)象類分為用戶實(shí)體,角色實(shí)體和權(quán)限實(shí)體,三者之間都是多對(duì)多的映射關(guān)系。
V即View,視圖層,摒棄后端冗雜的jsp文件,采用Spring Boot官方推薦的Thymeleaf作為模板渲染模型,同時(shí)利用Bootstrap進(jìn)行簡(jiǎn)單美化。
C即Controller,控制層,通過控制器實(shí)現(xiàn)網(wǎng)站的具體功能。
為了實(shí)現(xiàn)用戶的持久化,本項(xiàng)目采用MySQL作為數(shù)據(jù)庫,使用Spring Boot整合的HikariCP作為數(shù)據(jù)庫連接池,并用MyBatis作為數(shù)據(jù)持久化的API,MyBatis-Plus作為MyBatis擴(kuò)展工具。通過Spring Boot整合的Hibernate接口和Spring Data的約定方法命名來實(shí)現(xiàn)對(duì)數(shù)據(jù)的增刪查改和分頁操作。
使用Flyway管理數(shù)據(jù)庫SQL腳本,實(shí)現(xiàn)數(shù)據(jù)庫創(chuàng)建、管理、同步。
安全技術(shù)方面采用了Spring Boot內(nèi)帶的Spring Security來實(shí)現(xiàn)用戶登錄時(shí)的用戶名和密碼檢查,同時(shí)實(shí)體對(duì)象采用RBAC權(quán)限模型來控制訪問權(quán)限問題,開啟了Spring Security自帶的CSRF防御,防止CSRF跨站攻擊。對(duì)用戶的密碼使用了BCrypt技術(shù)加密,對(duì)所有密碼進(jìn)行加密,同時(shí)對(duì)敏感路徑和方法進(jìn)行權(quán)限限制和管理。
相關(guān)技術(shù)
前端:HTML、CSS、JavaScript、jQuery、AJAX、Thymeleaf、Bootstrap等
后端:Spring Boot、Spring、Spring MVC、Spring Security、MyBatis、MySQL、Flyway等。
?
研究方法
文獻(xiàn)資料法
主要采用相關(guān)技術(shù)和原理學(xué)習(xí)、實(shí)踐、整合開發(fā)出簡(jiǎn)單模型,發(fā)布測(cè)試,然后學(xué)習(xí)相關(guān)技術(shù)替換、模型升級(jí)優(yōu)化,使項(xiàng)目更完善,更高效,更完整。
為了解當(dāng)前企業(yè)對(duì)用戶權(quán)限管理的主要需求,先登錄一些大型Web應(yīng)用項(xiàng)目,記錄目前用戶權(quán)限管理的基本方法。對(duì)用戶權(quán)限管理有一個(gè)大致的了解,然后分析這個(gè)過程中可能存在的權(quán)限隱患,加以分析。再查閱相關(guān)論文,了解目前解決權(quán)限分級(jí)問題的主要方法,對(duì)這些方法進(jìn)行研究,看是否存在著漏洞或可以改進(jìn)的地方,并歸納這些方法是為解決什么類型的權(quán)限模型而產(chǎn)生的,并思考根據(jù)不同類型的應(yīng)用,這些方法應(yīng)該做出哪些修改。
行動(dòng)研究法
結(jié)合實(shí)際,在實(shí)際的學(xué)習(xí)環(huán)節(jié)中,通過個(gè)案分析和作品分析等,實(shí)現(xiàn)具體的功能,反復(fù)測(cè)試,及時(shí)改進(jìn)研究措施。
依靠已知的相關(guān)技術(shù)開發(fā)出簡(jiǎn)單的Java Web登錄注冊(cè)項(xiàng)目,并通過簡(jiǎn)單的邏輯處理防止未登錄用戶使用功能,并用AJAX完善了用戶體驗(yàn)。將項(xiàng)目以war打包發(fā)送到服務(wù)器上進(jìn)行發(fā)布并測(cè)試。
經(jīng)驗(yàn)總結(jié)法
在實(shí)踐和研究的基礎(chǔ)上,根據(jù)課題研究重點(diǎn),隨時(shí)積累素材,探索有效措施,總結(jié)得失,尋找有效的提高效率和提高實(shí)際運(yùn)用、實(shí)踐能力的方法。
結(jié)合用戶反饋和相關(guān)知識(shí)儲(chǔ)備的提升,對(duì)項(xiàng)目進(jìn)行重構(gòu),采用Spring Boot框架來實(shí)現(xiàn)。掌握J(rèn)PA的增刪查改和分頁技術(shù)基本掌握。重構(gòu)Java Web項(xiàng)目為Spring Boot項(xiàng)目并實(shí)現(xiàn)用戶信息持久化。掌握和理解MVC設(shè)計(jì)模式、三層架構(gòu)、DAO模式等設(shè)計(jì)模式,采用Spring MVC重構(gòu)項(xiàng)目的控制層。進(jìn)一步學(xué)習(xí)了JPA持久層和MyBatis框架,實(shí)現(xiàn)對(duì)持久層的優(yōu)化。掌握Spring Security用戶信息驗(yàn)證原理,優(yōu)化用戶登錄和權(quán)限控制。
?
研究結(jié)果
DEMO地址:https://www.shentuzhigang.top:8443/MyZSTU/
權(quán)限管理
對(duì)于權(quán)限分級(jí),研究得到的權(quán)限解決方案為:使用Spring Security框架,對(duì)訪問路徑和方法進(jìn)行保護(hù),并在建立五張表,分別為resource、role、users、resource_role、user_role。
其中resource表儲(chǔ)存受保護(hù)的訪問路徑和方法、role表儲(chǔ)存角色、users表儲(chǔ)存所有人員resource_role表儲(chǔ)存路徑和方法和角色的對(duì)應(yīng)關(guān)系,user_role表儲(chǔ)存用戶和角色的對(duì)應(yīng)關(guān)系。
當(dāng)用戶或管理員(user)在訪問一個(gè)受保護(hù)的路徑和方法時(shí),Spring Security先從user_role中得到該賬號(hào)所擁有的角色的所有權(quán)限,再對(duì)比所訪問的路徑方法是否在的權(quán)限集中,若user攜帶有可以訪問改路徑的角色,則訪問通過,否則訪問被攔截。
管理員不可修改和其同等權(quán)限或具有比其更高權(quán)限的賬號(hào),也不可將低權(quán)限賬號(hào)的權(quán)限提高到和其同一權(quán)限或更高權(quán)限。
對(duì)于權(quán)限的修改操作,只需在user_role中,為賬號(hào)添加、修改、刪除相應(yīng)角色即可。
?
參考文獻(xiàn)
[1] Java從入門到精通(第4版).明日科技著.清華大學(xué)出版社
[2] Java Web從入門到精通(第3版).明日科技著.清華大學(xué)出版社
[3] 龍中華.Spring Boot實(shí)戰(zhàn)派.電子工業(yè)出版社
[4] 王松.Spring Boot+Vue全棧開發(fā)實(shí)戰(zhàn).清華大學(xué)出版社
[5] 朱要光.Spring MVC+MyBatis開發(fā)從入門到項(xiàng)目實(shí)戰(zhàn).電子工業(yè)出版社
[6] [美] 凱·S.霍斯特曼著.Java核心技術(shù)卷2高級(jí)特性(原書11版).陳昊鵬譯.機(jī)械工業(yè)出版社
[7] [美] 梁勇.Java語言程序設(shè)計(jì)(進(jìn)階篇).阿姆斯特丹亞特蘭大州立大學(xué)著.戴開宇.復(fù)旦大學(xué)譯.機(jī)械工業(yè)出版社
[8] 楊開振.《深入淺出Spring Boot 2.x》.人民郵電出版社.2018
[9] 張琪.基于角色的權(quán)限管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).電子科技大學(xué)
[10] Bootstrap 官網(wǎng) https://getbootstrap.com/
[11] Spring Boot官網(wǎng) https://spring.io/projects/spring-boot
總結(jié)
以上是生活随笔為你收集整理的浙江理工大学信息学院本科生创新项目总结报告——简单的后台用户管理项目的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue——项目部署到非根目录下的解决方案
- 下一篇: MyBatis + MyBatis Pl