設(shè)計(jì):
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比蒙城網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式蒙城網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋蒙城地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
獨(dú)立的菜單管理
設(shè)計(jì)角色管理模塊
然后配置角色的菜單權(quán)限
再將用戶或組加入到角色模塊即可。
通過(guò)這個(gè)關(guān)系模型,你就可以控制哪些用戶可以看到哪些菜單的權(quán)限了
struts攔截器不推薦使用 建議使用spring AOP 面向切面 統(tǒng)一權(quán)限操作當(dāng)做一類失誤處理 對(duì)于數(shù)據(jù)庫(kù)權(quán)限 簡(jiǎn)單權(quán)限可以設(shè)定一張權(quán)限表 復(fù)雜權(quán)限 但權(quán)限沒(méi)有從屬關(guān)系可以使用2進(jìn)制表示 0101010 0和1分別代表是否具有該權(quán)限操作 多級(jí)權(quán)限表結(jié)構(gòu)又相應(yīng)復(fù)雜
給你一個(gè)簡(jiǎn)單的管理代碼
public class CheckIdAdvice implements MethodInterceptor {
protected final Log log = LogFactory.getLog(getClass());
public Object invoke(MethodInvocation invocation) throws Throwable {
String methodName = invocation.getMethod().getName();
for(int i=0;iConstant.levelOneMethod.length;i++)
{
if(Constant.levelOneMethod[i].equals(methodName))
{
Map map=(Map) ActionContext.getContext().get("session");
Admin admin=(Admin)map.get("admin");
if(admin.getQuanxian()!=nulladmin.getQuanxian()=1)
{
return invocation.proceed();
}
else
{
log.info("進(jìn)入失敗");
return false;
}
}
}
for(int i=0;iConstant.levelTwoMethod.length;i++)
{
if(Constant.levelTwoMethod[i].equals(methodName))
{
Map map=(Map) ActionContext.getContext().get("session");
Admin admin=(Admin)map.get("admin");
if(admin.getQuanxian()!=nulladmin.getQuanxian()=3)
{
return invocation.proceed();
}
else
{
log.info("進(jìn)入失敗");
return false;
}
}
}
for(int i=0;iConstant.levelThreeMethod.length;i++)
{
if(Constant.levelThreeMethod[i].equals(methodName))
{
Map map=(Map) ActionContext.getContext().get("session");
Admin admin=(Admin)map.get("admin");
if(admin!=nulladmin.getQuanxian()=5)
{
return invocation.proceed();
}
else
{
log.info("進(jìn)入失敗");
return false;
}
}
}
return invocation.proceed();
}
}
用戶表里加一個(gè)role的角色,對(duì)應(yīng)role的一張表,當(dāng)用戶登錄時(shí),判斷該用戶的角色,這樣根據(jù)該用戶所擁有的角色來(lái)處理該 用戶擁有系統(tǒng)哪部分的使用權(quán)?;⒏?,在做web項(xiàng)目?
用戶權(quán)限管理一般是用servlet的過(guò)濾器來(lái)實(shí)現(xiàn)的。
過(guò)濾器會(huì)過(guò)濾訪問(wèn)相關(guān)資源(這個(gè)是在web.xml里面配置的)的請(qǐng)求。
如果樓主要實(shí)現(xiàn)防止未登錄用戶訪問(wèn)相關(guān)資源。只要在過(guò)濾器里判斷該用戶是否登錄,也就是樓主所說(shuō)的session中的用戶狀態(tài)屬性。是登陸的則放行,否則拒絕。
過(guò)濾器的用法就不在這里寫了,網(wǎng)上很多的。
不知能否解決樓主的問(wèn)題呢?
你說(shuō)的就是簡(jiǎn)單的角色權(quán)限。這些在網(wǎng)上有很多的教程,而且比較簡(jiǎn)單,我可以給你一點(diǎn)提示
1:如果你登陸頁(yè)面之后,比如想點(diǎn)一個(gè)按鈕提交,那么如果你有這么權(quán)限才能看見或者才能點(diǎn)的話,那么你可以做一個(gè)簡(jiǎn)單的判斷,比如if(如果有這個(gè)權(quán)限,那么可以點(diǎn)或者可以看見),這時(shí)就做了一個(gè)簡(jiǎn)單的權(quán)限。
2:那么你的權(quán)限哪來(lái)的,數(shù)據(jù)庫(kù)中存著。
3:角色是什么,角色關(guān)聯(lián)了很多的權(quán)限,你登陸之后判斷你幾個(gè)角色,然后在遍歷你的角色就拿到了你的所有權(quán)限,那么按鈕那就可以判斷了,當(dāng)然這是比較笨的方法,原理都是這樣子,也有很多權(quán)限框架會(huì)比較方便
不理解可以問(wèn)我