999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SSM+Spring Security的多角色登錄功能后臺實現

2020-04-23 01:22:14孫云杰段祎林田盼棟趙雪玲
電子技術與軟件工程 2020年5期
關鍵詞:界面數據庫用戶

孫云杰 段祎林 田盼棟 趙雪玲

(西安石油大學理學院 陜西省西安市 710300)

1 引言

隨著互聯網技術的不斷發展,登錄界面的功能給開發者提出了更高的要求, 登錄界面具有在控制用戶權限、記錄用戶行為的同時,保護操作安全的作用,所以它是必須提供賬戶和密碼的界面。開發者和用戶看到的登錄界面是不同的“景向”,用戶要求的登錄界面是:便捷、美觀和實用;而開發者既要考慮登錄功能的認證和授權,又要保障操作的安全性,還要簡化實現功能的繁瑣代碼等一系列問題。

2 登錄界面核心要素及重要技術

2.1 核心要素

在實現多角色多用戶登錄的教學系統設計中,必須要通過如下的措施來保障系統的正常運行。

(1)多角色用戶認證,登錄功能需要根據用戶的角色授予相應的權限,因此在教學系統中設定三種用戶角色:學生、教師和管理員;

(2)預防Web 的惡意攻擊,就需要在登錄時,做好Web 免受攻擊的防御措施,Web 常見的攻擊手段:惡意腳本發起攻擊(XSS)、借助cookie 偽造認證發送請求攻擊(CSRF)、用SQL 語句偽造參數發出攻擊、大量請求指令使服務器崩潰(DDoS)等等;

(3)考慮用戶停留頁面無任何操作或者關閉頁面一段時間后,避免在信息泄露引起不必要的紛爭等情況;

(4)要限制單用戶同時在不同的設備上運行;

(5)確保用戶密碼的安全,在密碼的傳輸和存儲中都需要以密文的形式進行,加密方式應當采用不可逆的Нash 算法,如:MD5 算法、SНA 系列算法等;

(6)為了防止黑客使用暴力破解方式進行登錄嘗試,在登錄時需要添加驗證碼進行驗證。

2.2 重要技術

完美的教學系統設計離不開技術的支持,該系統中所設計的技術有:

(1)Bootstrap 是最受歡迎的НTML、CSS 和JS 框架之一,所以采用Bootstrap 作為主要的前端框架進行頁面編寫,用于開發響應式布局、移動設備優先的WEB 項目。

(2)SSM框架是Spring、SpringMVC 和MyBatis框架的組合,是Java 領域采用標準的MVC 模式構成的開源Web 框架,是以Spring 為核心的分層架構,它的出現能解決Web 系統中規模龐大的應用、復雜度不斷提升的問題[1]。

Spring 利用控制反轉(IoC)技術促進了低耦合,在系統運行中IoC 能動態地向某個對象提供它所需要的其他對象;而面向切面編程(AOP)則是用來提升內聚,可以方便地實現對程序進行權限攔截、運行監控等功能[2]。

SpringMVC 是Spring 提供的一個強大而靈活的Web 框架,借助于普通Java 對象(POJO) 的開發模式,使用注解的方式進行開發,能夠讓開發者直觀明了地進行設計和學習,從而簡化控制器的開發和測試[3]。

圖1:登錄功能的數據庫結構圖

MyBatis 是持久層框架,它的核心技術是對象關系映射(ORM),實現了Java 數據庫連接(JDBC)的封裝,可以使用簡單的xml 文件配置或注解,做到接口和Java 的POJO 與數據庫中數據表的記錄相映射,使得編程人員可以使用面向對象的編程思想來操作數據庫,將數據庫層完全隱蔽[1]。

(3)Spring Security 是基于Spring 的企業應用系統,能提供聲明式的訪問控制的安全框架,其中有一組可以在Spring 應用上下文中配置的Bean 及相關的配置文檔,借助于IOC,DI (依賴注入)和AOP 功能將用戶身份認證進行統一的管理,從而實現對資源訪問的綜合管控與維護[4]。

3 數據庫的設計

數據庫是登錄界面的靈魂,是它把重要技術和核心要素有機的結合在一起。登錄功能的數據庫里有兩個實體表:用戶表和角色表,用戶和角色多對多的關系,中間表是用戶和角色的紐帶。其中,用戶表中密碼存儲的是經過加密后的密碼,如圖1 所示。

4 登錄功能模塊架構

4.1 模塊依賴總覽

登錄功能的開發離不開如下五個模塊:common 公用工具類; entity 實體類; login 登錄功能模塊(程序入口); mapper 映射器類; service 服務類。模塊之間的依賴關系(如圖2 所示)是: login 模塊依賴common、entity、service 模塊; service 模塊依賴entity、mapper 模塊; mapper 模塊依賴entity 模塊。

4.2 主要的模塊

4.2.1 common 模塊

common 模塊封裝公用的工具類,其中包含三個類:ApiResponse(通用的API 接口封裝)、BaseException(異常基類)和SecurityException(全局異常);一個接口:IStatus(狀態碼接口);兩個枚舉:Roles(用戶角色枚舉)、Status(通用狀態碼)。Roles枚舉中定義了三個用戶角色:學生(Student)、教師(Teacher)、管理員(Administrator),分別與數據庫role 表中的角色對應。其中,“ROLE_”是Spring Security 角色權限的特定前綴。

圖2:模塊依賴總覽圖

4.2.2 entity 模塊

entity 模塊封裝實體類,其中包含兩個實體類:User(用戶)、Role(角色),這個模塊在項目中引入了lombok,是為了在編譯時自動為實體類的屬性生成構造器、getter/setter、equals、hashcode、toString 方法,在編譯生成的字節碼文件中會自動生成getter 和setter 方法。

4.2.3 mapper 模塊

mapper 模塊封裝映射器,任持久層的角色,其中包含兩個映射器接口:UserMapper、RoleMapper,兩個配置文件UserMapper.xml、RoleMapper.xml。mapper 是MyBatis 集成在項目中的核心內容,為service 層提供調用方法,實現java 對數據庫的增、刪、改、查操作。

4.2.4 service 模塊

service 模塊封裝服務類, 是業務層的角色,其中包含一個服務類:UserDetailsService,實現了Spring Security 的核心接口,主要用于加載用戶特定的數據。

4.2.5 login 模塊

login 模塊為程序的入口,主要實現用戶的登錄認證、授權功能,其中包含四個package:config(配置類,包括SecurityConfig核心配置)、cotroller(前端控制器,包括LoginController 登錄控制器、CaptchaController 驗證碼生成器)、filter(過濾器,包括CaptchaVerifyFilter 驗證碼驗證過濾器)、handle(處理器,包括CustomizedAuthenticationSuccessНandler 認證成功處理器、Custom izedAuthenticationFailureНandler 認證失敗處理器),和啟動類:LoginApplication。

系統登錄控制器LoginController 的核心代碼如下(由于篇幅有限,其它模塊的代碼不再詳述):

Spring Security 的核心配置類:SecurityConfig,在其核心代碼中配置了CaptchaVerifyFilter 驗證碼驗證過濾器,設置X-Frame-Options 為SAMEORIGIN,CustomizedAuthenticationSuccess Нandler 認證成功處理器,而CustomizedAuthenticationFailureНand ler 是認證失敗處理器,期間開啟csrf 攻擊的防御功能,登錄和注銷的基礎配置,使訪問路徑的訪問權限合法化,session 管理器,BCryptPasswordEncoder 加密方法。

圖3:登錄頁面

圖4:登錄驗證碼驗證界面

Spring Security 中的BCryptPasswordEncoder 方法,采用SНA-256+隨機鹽+密鑰對密碼進行加密,SНA 系列是Нash 算法,其過程是不可逆的,主要是為了加強密碼保存的安全性而設計的。

5 登錄界面前端頁面

利用上面所講述的方法完成的教學系統登錄界面如圖3、圖4所示。

6 總結

登錄功能在視覺上的美觀、便捷的操作以及用戶信息的安全,是一個網站的剛性需求。

網站的入口、門面是網站的第一道防線,安全的重要性不言而喻,集成了Spring Security 為登錄功能的開發手段,給使用者提供了極大的便利及安全保障。登錄功能看似簡單,但深究其背后的設計與開發,可以引申出諸多問題需要我們不斷完善與充實。

猜你喜歡
界面數據庫用戶
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
人機交互界面發展趨勢研究
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 影音先锋丝袜制服| 精品撒尿视频一区二区三区| 91破解版在线亚洲| 成年人视频一区二区| 无码免费视频| 国产亚洲男人的天堂在线观看| 亚洲欧美色中文字幕| 热热久久狠狠偷偷色男同| 免费一级毛片完整版在线看| JIZZ亚洲国产| 91亚洲免费视频| 国产男人的天堂| 麻豆AV网站免费进入| 亚洲成a人在线播放www| 国产美女无遮挡免费视频| 成人在线亚洲| 青草免费在线观看| a毛片在线播放| 国禁国产you女视频网站| 婷婷激情五月网| 91成人在线观看视频| 操国产美女| 青青草综合网| 久久美女精品| 亚洲视频黄| 思思热在线视频精品| 久久国产乱子| 天堂亚洲网| 婷婷色在线视频| 精品久久久久久成人AV| 亚洲成人网在线播放| 人妻无码中文字幕一区二区三区| 色综合五月| 国产欧美专区在线观看| 四虎精品黑人视频| 亚洲中文字幕在线一区播放| 九色91在线视频| 国产一级视频在线观看网站| 久久精品亚洲中文字幕乱码| 久久一色本道亚洲| AV在线麻免费观看网站 | 婷婷中文在线| 国产欧美另类| 97超级碰碰碰碰精品| 国产菊爆视频在线观看| 久久国产成人精品国产成人亚洲 | 婷婷丁香在线观看| 国产午夜无码专区喷水| 国产精品无码AⅤ在线观看播放| 毛片网站观看| 最新国产精品鲁鲁免费视频| 尤物在线观看乱码| 国产在线视频二区| 精品中文字幕一区在线| 亚洲开心婷婷中文字幕| 日韩黄色大片免费看| 日韩无码真实干出血视频| 中日无码在线观看| h网址在线观看| 国产精品第一区| 狠狠色综合久久狠狠色综合| 视频二区国产精品职场同事| a网站在线观看| 婷婷六月在线| 欧美日韩在线观看一区二区三区| 国产精品天干天干在线观看| 一区二区日韩国产精久久| 国产欧美专区在线观看| 欧日韩在线不卡视频| 免费无码又爽又刺激高| 精品免费在线视频| 欧美日韩在线亚洲国产人| 免费福利视频网站| 国产喷水视频| 九色在线观看视频| 国产成人夜色91| 久久久久亚洲av成人网人人软件| 无码'专区第一页| 日本成人不卡视频| 国产91麻豆视频| a级毛片免费在线观看| 沈阳少妇高潮在线|