本技術(shù)涉及軟件開發(fā),特別涉及一種接口權(quán)限配置方法及系統(tǒng)、電子設(shè)備、存儲介質(zhì)。
背景技術(shù):
1、當(dāng)前軟件開發(fā)的相關(guān)技術(shù)日益增長,權(quán)限已經(jīng)成為成熟的軟件系統(tǒng)架構(gòu)中不可或缺的一項(xiàng)重要組成部分。所以通常需要預(yù)先設(shè)置好角色,以及角色所具有的訪問資源的權(quán)限。在用戶訪問系統(tǒng)的資源,會攜帶用戶的角色信息一起去進(jìn)行請求,從而后臺會根據(jù)用戶攜帶的信息查詢用戶是否具有該操作權(quán)限,進(jìn)而決定用戶的該操作是否被放行。
2、當(dāng)前權(quán)限控制的方式,主要是系統(tǒng)的代碼開發(fā)過程中,在開發(fā)的各項(xiàng)資源時(shí),相應(yīng)地在代碼中寫入相應(yīng)的權(quán)限的信息,并將權(quán)限與角色直接進(jìn)行綁定,實(shí)現(xiàn)粗粒度的權(quán)限控制。或者再進(jìn)一步增加了權(quán)限與多個(gè)權(quán)限碼的關(guān)聯(lián)關(guān)系,然后再將權(quán)限碼與角色綁定,實(shí)現(xiàn)細(xì)粒度的權(quán)限控制。最后,由于資源接口與權(quán)限碼等并不是一一對應(yīng)關(guān)系,所以還需要根據(jù)編輯的情況,相應(yīng)地在文檔上記錄下設(shè)置的權(quán)限關(guān)系,以便于后續(xù)根據(jù)該文檔進(jìn)行授權(quán)。
3、但是由于現(xiàn)有的這些方式,需要在開發(fā)過程中在源代碼中寫入權(quán)限的信息,所以在權(quán)限需要變更或者資源變更時(shí),需要對源碼進(jìn)行權(quán)限信息的改動,即需要重新進(jìn)行編譯、測試以及打包,因此非常的繁瑣,影響開發(fā)的效率,不便于產(chǎn)品的迭代更新。并且,還需要對數(shù)據(jù)庫、權(quán)限文檔等進(jìn)行同步更新,使得整個(gè)過程效率更低,并且容易出現(xiàn)數(shù)據(jù)不統(tǒng)一的情況,從而導(dǎo)致系統(tǒng)出現(xiàn)權(quán)限漏洞。
技術(shù)實(shí)現(xiàn)思路
1、基于上述現(xiàn)有技術(shù)的不足,本技術(shù)提供了一種接口權(quán)限配置方法及系統(tǒng)、電子設(shè)備、存儲介質(zhì),以解決現(xiàn)有技術(shù)更新較為繁瑣,影響迭代效率,且容易出現(xiàn)權(quán)限漏洞的問題。
2、為了實(shí)現(xiàn)上述目的,本技術(shù)提供了以下技術(shù)方案:
3、本技術(shù)第一方面提供了一種接口權(quán)限配置方法,包括:
4、在系統(tǒng)服務(wù)初始化時(shí),采集所述系統(tǒng)的所有資源接口的信息;
5、將采集的所述資源接口的信息更新至數(shù)據(jù)庫中;
6、每當(dāng)用戶進(jìn)行權(quán)限碼創(chuàng)建時(shí),響應(yīng)所述用戶的權(quán)限碼創(chuàng)建操作,從各個(gè)所述資源接口中查詢出當(dāng)前需要進(jìn)行綁定的目標(biāo)資源接口,以及獲取所述用戶輸入的所述權(quán)限碼的配置信息;其中,所述權(quán)限碼的配置信息中包括所述權(quán)限碼及其對應(yīng)的功能權(quán)限的信息;
7、基于所述用戶輸入的所述權(quán)限碼的配置信息,創(chuàng)建出所述權(quán)限碼,并將當(dāng)前創(chuàng)建出的所述權(quán)限碼與所述目標(biāo)資源接口綁定;
8、每當(dāng)所述用戶進(jìn)行角色創(chuàng)建時(shí),響應(yīng)所述用戶的角色功能配置操作,將所述用戶選擇的各個(gè)所述功能權(quán)限對應(yīng)的所述權(quán)限碼與當(dāng)前創(chuàng)建的角色進(jìn)行綁定。
9、可選地,在上述的接口權(quán)限配置方法中,所述在系統(tǒng)服務(wù)初始化時(shí),采集所述系統(tǒng)的所有資源接口的信息,包括:
10、創(chuàng)建所述系統(tǒng)的啟動方法,并調(diào)用所述系統(tǒng)的啟動方法;
11、創(chuàng)建并初始化應(yīng)用上下文,以及對所述系統(tǒng)的對象進(jìn)行實(shí)例化和注入;
12、掃描所述系統(tǒng)的代碼中存在注解的對象和方法;其中,所述對象和所述方法中至少包括用于采集資源接口的信息的采集對象和和采集方法;
13、將所述采集對象和所述采集方法納入容器中;
14、由所述容器通過所述采集對象和采集方法,采集所述系統(tǒng)的所有所述資源接口的信息。
15、可選地,在上述的接口權(quán)限配置方法中,所述將采集的所述資源接口的信息更新至數(shù)據(jù)庫中,包括:
16、將當(dāng)前存儲在所述數(shù)據(jù)庫的系統(tǒng)資源表中的所述資源接口的信息刪除;
17、對采集到的所述資源接口的信息中的所述資源接口的路徑信息進(jìn)行哈希計(jì)算,得到當(dāng)前所述資源接口的主鍵;
18、將采集到的所述資源接口的信息以及當(dāng)前所述資源接口的主鍵,作為最新的所述資源接口的信息存儲至所述數(shù)據(jù)庫的系統(tǒng)資源表中。
19、可選地,在上述的接口權(quán)限配置方法中,所述將當(dāng)前創(chuàng)建出的所述權(quán)限碼與所述目標(biāo)資源接口綁定,包括:
20、將當(dāng)前創(chuàng)建出的所述權(quán)限碼的主鍵與所述目標(biāo)資源接口的主鍵進(jìn)行綁定。
21、可選地,在上述的接口權(quán)限配置方法中,所述每當(dāng)用戶進(jìn)行權(quán)限碼創(chuàng)建時(shí),響應(yīng)所述用戶的權(quán)限碼創(chuàng)建操作,從各個(gè)所述資源接口中查詢出當(dāng)前需要進(jìn)行綁定的目標(biāo)資源接口,以及獲取所述用戶輸入的所述權(quán)限碼的配置信息,包括:
22、每當(dāng)用戶進(jìn)行權(quán)限碼創(chuàng)建時(shí),在前端展示權(quán)限碼創(chuàng)建窗口;
23、響應(yīng)所述用戶在所述權(quán)限碼創(chuàng)建窗口上的資源路徑配置欄中的查詢操作,將所述用戶從各個(gè)所述資源接口的路徑信息中,查詢出并選定的路徑信息,確定為當(dāng)前需要進(jìn)行綁定的所述目標(biāo)資源接口的路徑信息;
24、響應(yīng)所述用戶在所述權(quán)限碼創(chuàng)建窗口上的各個(gè)配置信息欄的輸入操作,獲取所述用戶輸入的所述權(quán)限碼的配置信息;其中,所述權(quán)限碼的配置信息至少包括權(quán)限碼、功能模塊、功能頁面以及功能權(quán)限的名稱。
25、可選地,在上述的接口權(quán)限配置方法中,所述基于所述用戶輸入的所述權(quán)限碼的配置信息,創(chuàng)建出所述權(quán)限碼,包括:
26、基于所述用戶輸入的所述權(quán)限碼的配置信息生成所述權(quán)限碼的主鍵;
27、將所述用戶輸入的所述權(quán)限碼的配置信息以及所述權(quán)限碼的主鍵,作為一條所述權(quán)限碼的屬性信息存儲至所述數(shù)據(jù)庫的權(quán)限碼表中。
28、可選地,在上述的接口權(quán)限配置方法中,所述每當(dāng)所述用戶進(jìn)行角色創(chuàng)建時(shí),響應(yīng)所述用戶的角色功能配置操作,將所述用戶選擇的各個(gè)所述功能權(quán)限對應(yīng)的所述權(quán)限碼與當(dāng)前創(chuàng)建的角色進(jìn)行綁定,包括:
29、每當(dāng)所述用戶進(jìn)行角色創(chuàng)建時(shí),響應(yīng)所述用戶的角色功能配置操作,在前端展示功能配置界面;其中,所述功能配置界面上展示有各個(gè)所述權(quán)限碼的所述功能模型、各個(gè)所述功能模塊下的各個(gè)所述功能頁面以及各個(gè)所述功能頁面下的各個(gè)所述功能權(quán)限;
30、查找出所述用戶在所述功能配置界面中選擇的各個(gè)所述功能權(quán)限對應(yīng)的所述權(quán)限碼的主鍵;
31、將查找出的各個(gè)所述權(quán)限碼的主鍵與當(dāng)前創(chuàng)建的角色進(jìn)行綁定。
32、本技術(shù)第二方面提供了一種接口權(quán)限配置系統(tǒng),包括:
33、信息采集單元,用于在系統(tǒng)服務(wù)初始化時(shí),采集所述系統(tǒng)的所有資源接口的信息;
34、更新單元,用于將采集的所述資源接口的信息更新至數(shù)據(jù)庫中;
35、權(quán)限配置單元,用于每當(dāng)用戶進(jìn)行權(quán)限碼創(chuàng)建時(shí),響應(yīng)所述用戶的權(quán)限碼創(chuàng)建操作,從各個(gè)所述資源接口中查詢出當(dāng)前需要進(jìn)行綁定的目標(biāo)資源接口,以及獲取所述用戶輸入的所述權(quán)限碼的配置信息;其中,所述權(quán)限碼的配置信息中包括所述權(quán)限碼及其對應(yīng)的功能權(quán)限的信息;
36、權(quán)限生成單元,用于基于所述用戶輸入的所述權(quán)限碼的配置信息,創(chuàng)建出所述權(quán)限碼;
37、權(quán)限綁定單元,用于將當(dāng)前創(chuàng)建出的所述權(quán)限碼與所述目標(biāo)資源接口綁定;
38、角色綁定單元,用于每當(dāng)所述用戶進(jìn)行角色創(chuàng)建時(shí),響應(yīng)所述用戶的角色功能配置操作,將所述用戶選擇的各個(gè)所述功能權(quán)限對應(yīng)的所述權(quán)限碼與當(dāng)前創(chuàng)建的角色進(jìn)行綁定。
39、可選地,在上述的接口權(quán)限配置系統(tǒng)中,所述信息采集單元,包括:
40、方法創(chuàng)建單元,用于創(chuàng)建所述系統(tǒng)的啟動方法,并調(diào)用所述系統(tǒng)的啟動方法;
41、初始化單元,用于創(chuàng)建并初始化應(yīng)用上下文,以及對所述系統(tǒng)的對象進(jìn)行實(shí)例化和注入;
42、掃描單元,用于掃描所述系統(tǒng)的代碼中存在注解的對象和方法;其中,所述對象和所述方法中至少包括用于采集資源接口的信息的采集對象和和采集方法;
43、納入單元,用于將所述采集對象和所述采集方法納入容器中;
44、信息采集單元,用于由所述容器通過所述采集對象和采集方法,采集所述系統(tǒng)的所有所述資源接口的信息。
45、可選地,在上述的接口權(quán)限配置系統(tǒng)中,所述更新單元,包括:
46、刪除單元,用于將當(dāng)前存儲在所述數(shù)據(jù)庫的系統(tǒng)資源表中的所述資源接口的信息刪除;
47、資源主鍵生成單元,用于對采集到的所述資源接口的信息中的所述資源接口的路徑信息進(jìn)行哈希計(jì)算,得到當(dāng)前所述資源接口的主鍵;
48、信息存儲單元,用于將采集到的所述資源接口的信息以及當(dāng)前所述資源接口的主鍵,作為最新的所述資源接口的信息存儲至所述數(shù)據(jù)庫的系統(tǒng)資源表中。
49、可選地,在上述的接口權(quán)限配置系統(tǒng)中,所述權(quán)限綁定單元,包括:
50、權(quán)限綁定子單元,用于將當(dāng)前創(chuàng)建出的所述權(quán)限碼的主鍵與所述目標(biāo)資源接口的主鍵進(jìn)行綁定。
51、可選地,在上述的接口權(quán)限配置系統(tǒng)中,所述權(quán)限創(chuàng)建單元,包括:
52、第一展示單元,用于每當(dāng)用戶進(jìn)行權(quán)限碼創(chuàng)建時(shí),在前端展示權(quán)限碼創(chuàng)建窗口;
53、路徑配置單元,用于響應(yīng)所述用戶在所述權(quán)限碼創(chuàng)建窗口上的資源路徑配置欄中的查詢操作,將所述用戶從各個(gè)所述資源接口的路徑信息中,查詢出并選定的路徑信息,確定為當(dāng)前需要進(jìn)行綁定的所述目標(biāo)資源接口的路徑信息;
54、權(quán)限信息配置單元,用于響應(yīng)所述用戶在所述權(quán)限碼創(chuàng)建窗口上的各個(gè)配置信息欄的輸入操作,獲取所述用戶輸入的所述權(quán)限碼的配置信息;其中,所述權(quán)限碼的配置信息至少包括權(quán)限碼、功能模塊、功能頁面以及功能權(quán)限的名稱。
55、可選地,在上述的接口權(quán)限配置系統(tǒng)中,所述權(quán)限生成單元,包括:
56、權(quán)限主鍵生成單元,用于基于所述用戶輸入的所述權(quán)限碼的配置信息生成所述權(quán)限碼的主鍵;
57、權(quán)限信息存儲單元,用于將所述用戶輸入的所述權(quán)限碼的配置信息以及所述權(quán)限碼的主鍵,作為一條所述權(quán)限碼的屬性信息存儲至所述數(shù)據(jù)庫的權(quán)限碼表中。
58、可選地,在上述的接口權(quán)限配置系統(tǒng)中,所述角色綁定單元,包括:
59、第二展示單元,用于每當(dāng)所述用戶進(jìn)行角色創(chuàng)建時(shí),響應(yīng)所述用戶的角色功能配置操作,在前端展示功能配置界面;其中,所述功能配置界面上展示有各個(gè)所述權(quán)限碼的所述功能模型、各個(gè)所述功能模塊下的各個(gè)所述功能頁面以及各個(gè)所述功能頁面下的各個(gè)所述功能權(quán)限;
60、權(quán)限主鍵查找單元,用于查找出所述用戶在所述功能配置界面中選擇的各個(gè)所述功能權(quán)限對應(yīng)的所述權(quán)限碼的主鍵;
61、主鍵綁定單元,用于將查找出的各個(gè)所述權(quán)限碼的主鍵與當(dāng)前創(chuàng)建的角色進(jìn)行綁定。
62、本技術(shù)第三方面提供了一種電子設(shè)備,包括:
63、存儲器和處理器;
64、其中,所述存儲器用于存儲程序;
65、所述處理器用于執(zhí)行所述程序,所述程序被執(zhí)行時(shí),具體用于實(shí)現(xiàn)如上述任意一項(xiàng)所述的接口權(quán)限配置方法。
66、本技術(shù)第四方面提供了一種計(jì)算機(jī)存儲介質(zhì),用于存儲計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí),用于實(shí)現(xiàn)如上述任意一項(xiàng)所述的接口權(quán)限配置方法。
67、本技術(shù)提供了一種接口權(quán)限配置方法,在系統(tǒng)服務(wù)初始化時(shí),采集系統(tǒng)的所有資源接口的信息,并將采集的資源接口的信息更新至數(shù)據(jù)庫中,從而在系統(tǒng)每次進(jìn)行迭代更新后,都可以及時(shí)更新系統(tǒng)的資源信息,以便于利用新的資源信息進(jìn)行相適應(yīng)的權(quán)限控制以及權(quán)限配置。每當(dāng)用戶進(jìn)行權(quán)限碼創(chuàng)建時(shí),響應(yīng)用戶的權(quán)限碼創(chuàng)建操作,從各個(gè)資源接口中查詢出當(dāng)前需要進(jìn)行綁定的目標(biāo)資源接口,以及獲取用戶輸入的權(quán)限碼的配置信息。其中,權(quán)限碼的配置信息中包括權(quán)限碼及其對應(yīng)的功能權(quán)限的信息。然后基于用戶輸入的權(quán)限碼的配置信息,創(chuàng)建出權(quán)限碼,并將當(dāng)前創(chuàng)建出的權(quán)限碼與目標(biāo)資源接口綁定,從而實(shí)現(xiàn)了通過配置的方式創(chuàng)建出權(quán)限碼,并將權(quán)限碼與響應(yīng)的資源接口進(jìn)行綁定,進(jìn)而實(shí)現(xiàn)了可以根據(jù)需求隨時(shí)創(chuàng)建所需的資源的功能權(quán)限。最后每當(dāng)用戶進(jìn)行角色創(chuàng)建時(shí),響應(yīng)用戶的角色功能配置操作,將用戶選擇的各個(gè)功能權(quán)限對應(yīng)的權(quán)限碼與當(dāng)前創(chuàng)建的角色進(jìn)行綁定,從而通過配置的方式,實(shí)現(xiàn)對角色的權(quán)限的配置,為角色賦予相應(yīng)的權(quán)限功。所以實(shí)現(xiàn)了將權(quán)限設(shè)置與代碼開發(fā)分離,通過及時(shí)更新資源信息,并利用資源信息進(jìn)行配置的方式,即可以實(shí)現(xiàn)權(quán)限控制,不需要再寫入源代碼中,從而使得其變更更加的便捷,從而可以提高產(chǎn)品開發(fā)的效率,便于產(chǎn)品的快速迭代更新。并且,整個(gè)過程通過記錄相應(yīng)的信息形成的,不需要再額外進(jìn)行權(quán)限穩(wěn)定記錄、更新以及數(shù)據(jù)同步,進(jìn)一步提高開發(fā)的效率,也避免了數(shù)據(jù)同步過程中出現(xiàn)的錯(cuò)誤,進(jìn)而可以避免出現(xiàn)權(quán)限漏洞。