本發(fā)明涉及Java EJB框架技術(shù)領(lǐng)域,特別涉及一種基于Java Swing平臺的權(quán)限設(shè)計方法。
背景技術(shù):
當(dāng)在Java Swing平臺下使用EJB框架開發(fā)的系統(tǒng)不能使用URL來控制用戶訪問模塊的權(quán)限,即當(dāng)進(jìn)行用戶訪問控制時,由于Java Swing平臺下的各個模塊比較獨立,關(guān)聯(lián)少,更不能像Web平臺下控制用戶訪問URL地址一樣來控制其要訪問的資源,就不能良好地控制用戶訪問模塊的權(quán)限。
技術(shù)實現(xiàn)要素:
本發(fā)明解決的技術(shù)問題在于提供一種基于EJB框架權(quán)限設(shè)計方法,提供一套根據(jù)用戶自定義模塊的路徑及層次來控制的權(quán)限方案,解決Swing平臺下不能細(xì)粒度控制用戶訪問權(quán)限問題。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案是,
在創(chuàng)建用戶時,先設(shè)定用戶將要訪問的模塊的路徑、名稱及層次,并在模塊自定義一系列的權(quán)限,分配這些角色與權(quán)限給用戶,控制權(quán)限模塊判斷用戶的權(quán)限。
具體包含以下幾個步驟:
步驟一:創(chuàng)建用戶類,封裝用戶工號、密碼、昵稱等信息,主要用來處理權(quán)限關(guān)聯(lián)與系統(tǒng)登陸,部門類,包括部門名稱基本屬性等,用戶角色類與系統(tǒng)角色類,用戶角色主要用來搭建系統(tǒng)角色與用戶之間的橋梁,用戶權(quán)限類與系統(tǒng)權(quán)限類,用戶權(quán)限主要用來搭建系統(tǒng)權(quán)限與用戶及系統(tǒng)角色之間的橋梁,模塊類,添加必要屬性路徑、名稱與層級;
步驟二:在用戶類里設(shè)置與用戶角色類一對多關(guān)系,與部門類的多對一關(guān)系,與用戶權(quán)限類一對多關(guān)系,在用戶角色類里設(shè)置與用戶類的多對一關(guān)系,與系統(tǒng)角色類的多對一關(guān)系,在用戶權(quán)限類里設(shè)置與用戶類的多對一關(guān)系,與系統(tǒng)角色類的多對一關(guān)系,與系統(tǒng)權(quán)限類的多對一關(guān)系,在模塊類設(shè)置與系統(tǒng)權(quán)限類的一對多關(guān)系,與父模塊類的多對一關(guān)系;
步驟三:開發(fā)一個前臺頁面,可讀出所有的模塊的樹狀結(jié)構(gòu)信息,并可在相應(yīng)的模塊下添加子模塊的名稱、路徑與層級及相關(guān)的增刪改查權(quán)限等;
步驟四:分配這些角色與權(quán)限給用戶,當(dāng)用戶登陸系統(tǒng)時,加載其相關(guān)的角色與權(quán)限,并存儲到Swing里的Application容器里;
步驟五:控制權(quán)限模塊判斷用戶的權(quán)限集合是否包含模塊里的路徑,如果返回true,說明有權(quán)限,反之則沒權(quán)限。
本發(fā)明的有益效果如下:
用戶不但可以自定義權(quán)限,還可以層級權(quán)限控制,并能精準(zhǔn)到用戶對每個按鈕的訪問權(quán)限控制,從而達(dá)到系統(tǒng)能夠細(xì)粒度地控制到每個用戶只能訪問自己擁有權(quán)限的模塊的目的。
附圖說明
下面結(jié)合附圖對本發(fā)明進(jìn)一步說明:
圖1為本發(fā)明的方法流程圖。
圖2為本發(fā)明的前臺頁面布局。
具體實施方式
如圖1所示,本發(fā)明采用如下步驟:
步驟一、創(chuàng)建用戶類User,封裝用戶工號、密碼、昵稱等信息,主要用來處理權(quán)限關(guān)聯(lián)與登陸;如:
步驟二、創(chuàng)建部門類Department,包括部門名稱基本屬性等,在User類設(shè)置與Department類的多對一關(guān)系;
步驟三、創(chuàng)建用戶角色類UserRole與系統(tǒng)角色類Role,用戶角色主要用來搭建Role與User之間的橋梁;如:
步驟四、創(chuàng)建用戶權(quán)限類UserPower與系統(tǒng)權(quán)限類Power,用戶權(quán)限主要用來搭建Power與User及Role之間的橋梁;如:
步驟五、在User類里設(shè)置與UserRole的一對多關(guān)系,與UserPower的一對多關(guān)系;如:
步驟六、在UserRole類里設(shè)置與User類的多對一關(guān)系,與Role的多對一關(guān)系;如:
步驟七、在UserPower類里設(shè)置與User類的多對一關(guān)系,與Role的多對一關(guān)系,與Power的多對一關(guān)系;如:
步驟八、創(chuàng)建模塊類Module,添加必要屬性路徑、名稱與層級,并設(shè)置與Power的一對多關(guān)系,與父Module的多對一關(guān)系;
步驟九、開發(fā)一個前臺頁面,可讀出所有的模塊的樹狀結(jié)構(gòu)信息,并可在相應(yīng)的模塊下添加子模塊的名稱、路徑與層級,并能添加對應(yīng)模塊的權(quán)限;
步驟十、當(dāng)用戶登陸系統(tǒng)時,加載其相關(guān)的角色與權(quán)限,并存儲到Swing里的Application容器里;
步驟十一、在要控制權(quán)限的模塊里判斷用戶的權(quán)限集合是否包含Modul里的路徑,如果返回true,說明有權(quán)限,反之則沒權(quán)限。如:
相關(guān)isInPower函數(shù)代碼:
圖2為本發(fā)明的前臺頁面布局,前臺頁面包含功能模塊列表,顯示名稱,路徑名稱,備注,順序號和權(quán)限列表,功能模塊列表里包括:功能模塊,基礎(chǔ)資料,任務(wù)管理和人力資源管理,權(quán)限列表包括權(quán)限名稱和序號。