EeSs:求一份JAVA寫的通用權(quán)限管理系統(tǒng)的源碼
創(chuàng)新互聯(lián)成立與2013年,先為運城等服務(wù)建站,運城等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為運城企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
為獲取建議,你需要提供合法的E-Mail地址。
您還可以通過Baidu Hi聯(lián)系我們或QQ:六伍柒幺伍六幺伍 ('幺'讀 yao 一聲)
根據(jù)你的需求
我們可以提供一套與需求相匹配的代碼
ES:\D65AC43436A0CAF22194155F1DAECEBA
EeSs:求一份JAVA寫的通用權(quán)限管理系統(tǒng)的源碼
交易提醒:預(yù)付訂金是陷阱
spring security可以實現(xiàn)。。不過spring要升級到3.0
tomcat6。7都能用,我有婉轉(zhuǎn)班。。置于前臺菜單用js隱藏也可以,用security判斷角色都行,
如果按資源判斷就要做acl。。這個很簡單。。不過一般初學(xué)者要學(xué)會spring security至少要1,2個星期吧,如果樓主需要我可以把文檔發(fā)給你,如果你直接要代碼我也可以給你,但你看不懂。。建議還是看文檔先把,你留個郵箱給我我發(fā)給你。。
關(guān)于權(quán)限管理,如果是網(wǎng)站的話,最簡單的方式就是用過濾器。通過用戶訪問的URL進行控制。
這種方式,在寫控制或網(wǎng)頁時,不用考慮權(quán)限問題!權(quán)限由過濾器統(tǒng)一管理。
spring 的servlet.xml配置如下:
!-- 權(quán)限系統(tǒng) 攔截 --
mvc:interceptors
mvc:interceptor
mvc:mapping path="/admin/**" /
bean class="com.zmax.web.spring.AdminContextInterceptor"
!-- 開發(fā)模式,懶得登錄 --
property name="devmode" value="1"/
property name="auth" value="true" /
property name="loginUrl" value="/admin/login.do" /
property name="returnUrl" value="/admin/index.do" /
property name="excludeUrls"
list
value/test.do/value
value/login.do/value
value/logout.do/value
/list
/property
/bean
/mvc:interceptor
相應(yīng)的JAVA代碼:
package com.zmax.utils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class AdminContextInterceptor extends HandlerInterceptorAdapter{
private static final Logger logger = Logger.getLogger(AdminContextInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
if (logger.isDebugEnabled())
logger.debug("權(quán)限預(yù)處理");
//獲取用戶訪問的地址
String uri = getURI(request);
// 不在驗證的范圍內(nèi)
if (exclude(uri)) {
return true;
}
AdminUser adminUser=(AdminUser)session.getAttribute(request, SessionName.ADMINUSER);
// 用戶為null跳轉(zhuǎn)到登陸頁面
if (adminUser == null) {
if(devmode==null||devmode.equals(0)){
response.sendRedirect(getLoginUrl(request));
return false;
}
}
//如果用戶權(quán)限不夠,跳到登錄頁面
if(checkAdmin(adminUser,uri)){
response.sendRedirect(getLoginUrl(request));
return false;
}else{
//權(quán)限夠了,返回true
adminUser=adminUserService.get(devmode);
session.setAttribute(request, response, SessionName.ADMINUSER, adminUser);
return true;
}
return true;
}
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler, ModelAndView mav)
throws Exception {
if (logger.isDebugEnabled())
logger.debug("權(quán)限處理");
}
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex)
throws Exception {
if (logger.isDebugEnabled())
logger.debug("權(quán)限后處理");
}
}
思路:
1、用戶表 user;
2、角色表 role;
3、菜單 menu;
4、角色菜單權(quán)限表 role_menu;
5、用戶菜單權(quán)限表 user_menu;
Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實現(xiàn)了面向?qū)ο罄碚摚试S程序員以優(yōu)雅的思維方式進行復(fù)雜的編程[1]? 。
Java具有簡單性、面向?qū)ο蟆⒎植际健⒔研浴踩浴⑵脚_獨立與可移植性、多線程、動態(tài)性等特點[2]? 。Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等[3]? 。
由于在開發(fā)Oak語言時,尚且不存在運行字節(jié)碼的硬件平臺,所以為了在開發(fā)時可以對這種語言進行實驗研究,他們就在已有的硬件和軟件平臺基礎(chǔ)上,按照自己所指定的規(guī)范,用軟件建設(shè)了一個運行平臺,整個系統(tǒng)除了比C++更加簡單之外,沒有什么大的區(qū)別。1992年的夏天,當Oak語言開發(fā)成功后,研究者們向硬件生產(chǎn)商進行演示了Green操作系統(tǒng)、Oak的程序設(shè)計語言、類庫和其硬件,以說服他們使用Oak語言生產(chǎn)硬件芯片,但是,硬件生產(chǎn)商并未對此產(chǎn)生極大的熱情。因為他們認為,在所有人對Oak語言還一無所知的情況下,就生產(chǎn)硬件產(chǎn)品的風(fēng)險實在太大了,所以O(shè)ak語言也就因為缺乏硬件的支持而無法進入市場,從而被擱置了下來。
1994年6、7月間,在經(jīng)歷了一場歷時三天的討論之后,團隊決定再一次改變了努力的目標,這次他們決定將該技術(shù)應(yīng)用于萬維網(wǎng)。他們認為隨著Mosaic瀏覽器的到來,因特網(wǎng)正在向同樣的高度互動的遠景演變,而這一遠景正是他們在有線電視網(wǎng)中看到的。作為原型,帕特里克·諾頓寫了一個小型萬維網(wǎng)瀏覽器WebRunner。[4]
1995年,互聯(lián)網(wǎng)的蓬勃發(fā)展給了Oak機會。業(yè)界為了使死板、單調(diào)的靜態(tài)網(wǎng)頁能夠“靈活”起來,急需一種軟件技術(shù)來開發(fā)一種程序,這種程序可以通過網(wǎng)絡(luò)傳播并且能夠跨平臺運行。于是,世界各大IT企業(yè)為此紛紛投入了大量的人力、物力和財力。這個時候,Sun公司想起了那個被擱置起來很久的Oak,并且重新審視了那個用軟件編寫的試驗平臺,由于它是按照嵌入式系統(tǒng)硬件平臺體系結(jié)構(gòu)進行編寫的,所以非常小,特別適用于網(wǎng)絡(luò)上的傳輸系統(tǒng),而Oak也是一種精簡的語言,程序非常小,適合在網(wǎng)絡(luò)上傳輸。Sun公司首先推出了可以嵌入網(wǎng)頁并且可以隨同網(wǎng)頁在網(wǎng)絡(luò)上傳輸?shù)腁pplet(Applet是一種將小程序嵌入到網(wǎng)頁中進行執(zhí)行的技術(shù)),并將Oak更名為Java(在申請注冊商標時,發(fā)現(xiàn)Oak已經(jīng)被人使用了,再想了一系列名字之后,最終,使用了提議者在喝一杯Java咖啡時無意提到的Java詞語)。5月23日,Sun公司在Sun world會議上正式發(fā)布Java和HotJava瀏覽器。IBM、Apple、DEC、Adobe、HP、Oracle、Netscape和微軟等各大公司都紛紛停止了自己的相關(guān)開發(fā)項目,競相購買了Java使用許可證,并為自己的產(chǎn)品開發(fā)了相應(yīng)的Java平臺。
struts攔截器不推薦使用 建議使用spring AOP 面向切面 統(tǒng)一權(quán)限操作當做一類失誤處理 對于數(shù)據(jù)庫權(quán)限 簡單權(quán)限可以設(shè)定一張權(quán)限表 復(fù)雜權(quán)限 但權(quán)限沒有從屬關(guān)系可以使用2進制表示 0101010 0和1分別代表是否具有該權(quán)限操作 多級權(quán)限表結(jié)構(gòu)又相應(yīng)復(fù)雜
給你一個簡單的管理代碼
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("進入失敗");
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("進入失敗");
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("進入失敗");
return false;
}
}
}
return invocation.proceed();
}
}
當前題目:權(quán)限管理系統(tǒng)java代碼,權(quán)限管理系統(tǒng) 開源
網(wǎng)頁網(wǎng)址:http://vcdvsql.cn/article12/hedpgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、云服務(wù)器、網(wǎng)頁設(shè)計公司、網(wǎng)站策劃、做網(wǎng)站、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)