Ralasafe的使用总结
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
最近項(xiàng)目中用到Ralasafe來作為權(quán)限管理系統(tǒng),主要是和業(yè)務(wù)系統(tǒng)分類,使用了RMI技術(shù),使之成為兩個(gè)獨(dú)立的項(xiàng)目。因此,只使用到Ralasafe的部分功能,如角色分配,角色管理,權(quán)限管理等這些功能。
使用原理是:從業(yè)務(wù)系統(tǒng)登陸,通過遠(yuǎn)程調(diào)用,一次性從Ralasafe里取出某個(gè)登陸用戶的所有權(quán)限,全部回傳到業(yè)務(wù)系統(tǒng)。
主要使用的Ralasafe的API是:Ralasafe.getBusinessPrivilegeTree()。
但并不是完全能滿足我們的需求,需要修改部分源碼。
1、遠(yuǎn)程對(duì)象需要序列化:Node類實(shí)現(xiàn)Serializable接口,User類也實(shí)現(xiàn)了Serializable接口。
2、需要獲取全部的權(quán)限列表,不僅僅是顯示菜單的權(quán)限樹。
修改了UserRoleManagerImpl#public Privilege getBusinessPrivilegeTree(Object userId)中的
| 01 | ????????????????/* |
| 02 | // only add granted privilege & displayable privilege here |
| 03 | if (pvlg.getDisplay() && |
| 04 | ????????assignedPrivilegeIds.contains(new Integer(pvlg.getId()))) { |
| 05 | ????assignedPrivileges.add((Privilege) (pvlg.clone())); |
| 06 | } |
| 07 | */ |
| 08 | ? |
| 09 | if?(assignedPrivilegeIds.contains(new?Integer(pvlg.getId()))) { |
| 10 | ????assignedPrivileges.add((Privilege) (pvlg.clone())); |
| 11 | } |
同時(shí)還需要在Privilege#public Object clone()中添加
| 1 | newOne.setDisplay(display); |
3、還有就是發(fā)布的1.2版本存在一些BUG,如編輯了權(quán)限,但不能保存權(quán)限的orderNum,好在Ralasafe社區(qū)已經(jīng)修改了這個(gè)bug,重新打包編譯就可以了。
本文固定鏈接:?http://www.kaman.cc/?p=195 | 幸福一家
轉(zhuǎn)載于:https://my.oschina.net/yangphere/blog/56707
總結(jié)
以上是生活随笔為你收集整理的Ralasafe的使用总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装ntop及快速安装rrdtool的方
- 下一篇: BIOS响铃代码