本發(fā)明公開一種方法,涉及數(shù)據(jù)校驗,具體地說是一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的方法。
背景技術:
1、現(xiàn)有的數(shù)據(jù)權限校驗方法存在校驗邏輯復雜問題,每個功能都要單獨寫數(shù)據(jù)權限校驗邏輯,將數(shù)據(jù)權限校驗邏輯同業(yè)務邏輯融合在一起,違背了軟件設計中“高內(nèi)聚,低耦合”的原則,且存在數(shù)據(jù)權限校驗邏輯和業(yè)務邏輯互相影響的問題。
2、同時,現(xiàn)有的數(shù)據(jù)權限校驗方法還存在難于維護和迭代的問題,軟件研發(fā)人員如果要升級數(shù)據(jù)權限校驗邏輯,需要分別修改涉及到的所有功能,甚至會影響到所涉及功能的業(yè)務邏輯等,隨著迭代的積累,功能會變得越來越難以維護,難以滿足實際應用的需求,新功能的開發(fā),也會存在開發(fā)人員忘記編寫數(shù)據(jù)權限邏輯的問題,導致某些功能缺少數(shù)據(jù)權限校驗。
技術實現(xiàn)思路
1、本發(fā)明針對現(xiàn)有技術的問題,提供一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的方法,高效、準確地實現(xiàn)了數(shù)據(jù)權限校驗,提高了系統(tǒng)的安全性。解決了現(xiàn)有業(yè)務系統(tǒng)中數(shù)據(jù)權限校驗復雜、易出錯的問題,具有廣泛的使用前景。
2、本發(fā)明提出的具體方案是:
3、本發(fā)明提供一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的方法,包括:
4、步驟1:利用重寫輸入流過濾器filter攔截發(fā)往前端web的客戶端請求,并重寫httpservletrequest對象輸入流,
5、步驟2:通過攔截器inteceptor攔截到重新輸入流,獲取重寫輸入流中的請求參數(shù),
6、步驟3:通過攔截器inteceptor根據(jù)獲取的請求參數(shù),按照角色值查詢數(shù)據(jù)庫校驗用戶的相關權限或調(diào)用相關接口校驗當前登錄用戶操作參數(shù)中相關數(shù)據(jù)是否有效,
7、根據(jù)校驗結果攔截相關客戶端請求,或放行相關客戶端請求進入業(yè)務控制器controller,通過業(yè)務控制器controller獲取請求執(zhí)行相關業(yè)務邏輯。
8、進一步,所述的一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的方法中步驟1中構建重寫輸入流過濾器filter:定義filter接口,重寫dofilter方法,獲取客戶端請求的輸入流,通過bufferedreader獲取輸入流參數(shù),寫入到unmodifiablemap中。
9、進一步,所述的一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的方法中步驟2中構建攔截器inteceptor:定義handlerinterceptor接口,重寫prehandle方法,調(diào)用重寫輸入流過濾器filter,獲取重寫輸入流中的請求參數(shù)。
10、進一步,所述的一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的方法中步驟3中若校驗結果為通過,則放行相關客戶端請求進入業(yè)務控制器controller,通過業(yè)務控制器controller獲取請求執(zhí)行相關業(yè)務邏輯,并將執(zhí)行結果返回值前端web,
11、若校驗結果為不通過,則定義printwriter寫入流,將相關應答數(shù)據(jù)和錯誤提示數(shù)據(jù)寫入httpservletresponse請求體。
12、本發(fā)明還提供一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的裝置,包括過濾器管理模塊、攔截器管理模塊和校驗模塊,
13、過濾器管理模塊利用重寫輸入流過濾器filter攔截發(fā)往前端web的客戶端請求,并重寫httpservletrequest對象輸入流,
14、攔截器管理模塊通過攔截器inteceptor攔截到重新輸入流,獲取重寫輸入流中的請求參數(shù),
15、校驗模塊通過攔截器inteceptor根據(jù)獲取的請求參數(shù),按照角色值查詢數(shù)據(jù)庫校驗用戶的相關權限或調(diào)用相關接口校驗當前登錄用戶操作參數(shù)中相關數(shù)據(jù)是否有效,
16、根據(jù)校驗結果攔截相關客戶端請求,或放行相關客戶端請求進入業(yè)務控制器controller,通過業(yè)務控制器controller獲取請求執(zhí)行相關業(yè)務邏輯。
17、進一步,所述的一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的裝置的過濾器管理模塊構建重寫輸入流過濾器filter:定義filter接口,重寫dofilter方法,獲取客戶端請求的輸入流,通過bufferedreader獲取輸入流參數(shù),寫入到unmodifiablemap中。
18、進一步,所述的一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的裝置的攔截器管理模塊構建攔截器inteceptor:定義handlerinterceptor接口,重寫prehandle方法,調(diào)用重寫輸入流過濾器filter,獲取重寫輸入流中的請求參數(shù)。
19、進一步,所述的一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的裝置的校驗模塊執(zhí)行校驗后,若校驗結果為通過,則放行相關客戶端請求進入業(yè)務控制器controller,通過業(yè)務控制器controller獲取請求執(zhí)行相關業(yè)務邏輯,并將執(zhí)行結果返回值前端web,
20、若校驗結果為不通過,則定義printwriter寫入流,將相關應答數(shù)據(jù)和錯誤提示數(shù)據(jù)寫入httpservletresponse請求體。
21、本發(fā)明的有益之處是:
22、通過統(tǒng)一的數(shù)據(jù)權限攔截器,可以在業(yè)務以外實現(xiàn)數(shù)據(jù)權限的統(tǒng)一校驗,有如下幾點優(yōu)勢:
23、數(shù)據(jù)權限校驗統(tǒng)一開發(fā),統(tǒng)一維護,減少無關人員介入;
24、同業(yè)務功能解耦,讓各個代碼互不影響,獨立運行;
25、統(tǒng)一的代碼位置,集中,方便后期的維護;
26、請求在到達業(yè)務層前攔截,提高了攔截效率;
27、減輕了業(yè)務開發(fā)人員工作量,避免了業(yè)務開發(fā)過程中忘記添加數(shù)據(jù)權限校驗的邏輯。
1.一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的方法,其特征是包括:
2.根據(jù)權利要求1所述的一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的方法,其特征是步驟1中構建重寫輸入流過濾器filter:定義filter接口,重寫dofilter方法,獲取客戶端請求的輸入流,通過bufferedreader獲取輸入流參數(shù),寫入到unmodifiablemap中。
3.根據(jù)權利要求1所述的一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的方法,其特征是步驟2中構建攔截器inteceptor:定義handlerinterceptor接口,重寫prehandle方法,調(diào)用重寫輸入流過濾器filter,獲取重寫輸入流中的請求參數(shù)。
4.根據(jù)權利要求1所述的一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的方法,其特征是步驟3中若校驗結果為通過,則放行相關客戶端請求進入業(yè)務控制器controller,通過業(yè)務控制器controller獲取請求執(zhí)行相關業(yè)務邏輯,并將執(zhí)行結果返回值前端web,
5.一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的裝置,其特征是包括過濾器管理模塊、攔截器管理模塊和校驗模塊,
6.根據(jù)權利要求5所述的一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的,其特征是過濾器管理模塊構建重寫輸入流過濾器filter:定義filter接口,重寫dofilter方法,獲取客戶端請求的輸入流,通過bufferedreader獲取輸入流參數(shù),寫入到unmodifiablemap中。
7.根據(jù)權利要求5所述的一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的裝置,其特征是攔截器管理模塊構建攔截器inteceptor:定義handlerinterceptor接口,重寫prehandle方法,調(diào)用重寫輸入流過濾器filter,獲取重寫輸入流中的請求參數(shù)。
8.根據(jù)權利要求5所述的一種重寫輸入流實現(xiàn)數(shù)據(jù)權限校驗的裝置,其特征是校驗模塊執(zhí)行校驗后,若校驗結果為通過,則放行相關客戶端請求進入業(yè)務控制器controller,通過業(yè)務控制器controller獲取請求執(zhí)行相關業(yè)務邏輯,并將執(zhí)行結果返回值前端web,