




已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
日志攔截器package erceptor;import java.util.Date;import java.util.Map;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionInvocation;import erceptor.AbstractInterceptor;import com.yuanit.app.action.AdminAction;import com.yuanit.app.model.Log;import com.yuanit.app.model.Member;import com.yuanit.app.model.Permission;import com.yuanit.app.model.Role;import com.yuanit.app.service.ILogService;import com.yuanit.app.service.IMemberService;import com.yuanit.app.service.IPermissionService;import com.yuanit.app.util.AppConstants;import com.yuanit.sys.action.GenericAction;import com.yuanit.sys.util.EEMediaBeanFactory;public class LogInterceptor extends AbstractInterceptor Overridepublic String intercept(ActionInvocation invocation) throws Exception / TODO Auto-generated method stubString result = invocation.invoke();ActionContext ctx = invocation.getInvocationContext();Map session = ctx.getSession();Member member = (Member) session.get(AppConstants.LOGIN_MEMBER);Role role = (Role) session.get(AppConstants.LOGIN_ROLE);String url = /;StringBuffer urlStringBuffer = new StringBuffer(url);String actionName = invocation.getInvocationContext().getName(); String args = actionName.split(AppConstants.ACTION_SPLIT_CHAR);urlStringBuffer.append(actionName);urlStringBuffer.append(.action); if(args1.indexOf(AppConstants.ACTION_INDEXOF_DO) = 0) if(args1.indexOf(doEdit) = 0) GenericAction genericAction = (GenericAction)invocation.getAction(); int id = genericAction.getId(); if(id != 0) urlStringBuffer.append(?id=); url = urlStringBuffer.toString(); IPermissionService permissionService = EEMediaBeanFactory.getService(IPermissionService.class); /IMemberService memberService = EEMediaBeanFactory.getService(IMemberService.class); /IRoleService roleService = EEMediaBeanFactory.getService(IRoleService.class); Permission permission = permissionService.getPermission(url); ILogService logService = EEMediaBeanFactory.getService(ILogService.class); Log log = new Log(); if(permission != null) String operateDescription = permission.getPermissionDesc(); int operateRole = role.getId(); int operateMember = member.getId(); Long operateDate = new Date().getTime(); log.setOperateDate(operateDate); log.setOperateDescription(operateDescription); log.setOperateMember(operateMember); log.setOperateRole(operateRole); logService.createLog(log); return result;權(quán)限攔截器package erceptor;import java.util.Map;import com.opensymphony.xwork2.Action;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionInvocation;import erceptor.AbstractInterceptor;import com.yuanit.app.dao.IRoleDAO;import com.yuanit.app.model.Permission;import com.yuanit.app.model.Role;import com.yuanit.app.service.IPermissionService;import com.yuanit.app.util.AppConstants;import com.yuanit.sys.util.EEMediaBeanFactory;public class PermissionValidateInterceptor extends AbstractInterceptor Overridepublic String intercept(ActionInvocation invocation) throws Exception ActionContext ctx = invocation.getInvocationContext();String actionName = invocation.getProxy().getActionName();if (AppConstants.ADMIN_GOLOGIN_ACTION.equals(actionName)| AppConstants.ADMIN_DOLOGIN_ACTION.equals(actionName)| AppConstants.ADMIN_GOINDEX_ACTION.equals(actionName)| AppConstants.ADMIN_GOLEFT_ACTION.equals(actionName)| AppConstants.PERMISSION_GETSUBPERMISSIONS_ACTION.equals(actionName) return invocation.invoke();String args = actionName.split(AppConstants.ACTION_SPLIT_CHAR);if (args1.indexOf(AppConstants.ACTION_INDEXOF_GO) = 0) Map session = ctx.getSession();Role role_login = (Role) session.get(AppConstants.LOGIN_ROLE);if (role_login = null) session.put(AppConstants.INTERCEPTOR_MESSAGE, 您還沒有登錄,請先登錄!);return Action.ERROR;IRoleDAO roleDAO = EEMediaBeanFactory.getService(IRoleDAO.class);Role role = roleDAO.findRole(role_login.getId();String role_permission = role.getRolePermissions();String url = /;StringBuffer urlStringBuffer = new StringBuffer(url);urlStringBuffer.append(actionName);urlStringBuffer.append(.action);url = urlStringBuffer.toString();IPermissionService permissionService = EEMediaBeanFactory.getService(IPermissionService.class);Permission permission = permissionService.getPermission(url);if (role_permission.contains(permission.getId().toString() return invocation.invoke(); else session.put(AppConstants.INTERCEPTOR_MESSAGE, 您沒有權(quán)限訪問此頁面!);return Action.ERROR; else return invocation.invoke();Struts中的配置!- - 日志攔截器的輔助調(diào)用方法一:package com.yuanit.sys.utilpublic static T getService(Class clz) if (ctx = null) throw new RuntimeException(application context wasnt intialized); String beanName = clz.getSimpleName(); if (beanName.startsWith(I) beanName = beanName.substring(1); beanName = beanName.substring(0, 1).toLowerCase() + beanName.substring(1); return (T)ctx.getBean(beanName);二:package com.yuanit.app.service.impl;/* * 根據(jù)權(quán)限URL取得權(quán)限信息 * param permissionURL 權(quán)限URL * return permission 權(quán)限對象 */Permission getPermission(String permissionURL) throws ServiceException;tryreturn permissionDAO.findPermission(permissionURL);catch(DAOException de)throw new ServiceException(de.getMessage();catch(Exception ex)logger.error(ex.getMessage();ex.printStackTrace();throw new ServiceException(根據(jù)權(quán)限URL取得權(quán)限信息發(fā)生錯誤.);權(quán)限攔截器的輔助方法一:package com.yuanit.sys.util; public static T getService(Class clz) if (ctx = null) throw new RuntimeException(application context wasnt intialized); String beanName = clz.getSimpleName(); if (beanName.startsWith(I) beanName = beanName.substring(1); beanName = beanName.substring(0, 1).toLowerCase() + beanName.substring(1); return (T)ctx.getBean(beanName);二:/* * 根據(jù)角色I(xiàn)D獲取權(quán)限對象 * param roleId * return * throws DAOException */public Role findRole(int roleId) throws DAOException tryreturn super.getObject(roleId);catch(DAOException ex)logger.error(取得 roleId( + roleId + ) 對應(yīng)的信息發(fā)生錯誤,該信息可能被刪除!);throw new DAOException(取得 roleId( + roleId + ) 對應(yīng)的信息發(fā)生錯誤,該信息可能被刪除!);catch(Exception exception)logger.error(取得 roleId( + roleId + ) 對應(yīng)的信息發(fā)生錯誤: + exception.getMessage();throw new DAOException(取得 roleId( + roleId + ) 對應(yīng)的信息發(fā)生錯誤!);其中APPConstantspackage com.yuanit.app.util;public class AppConstants public static int SUCCESS_YES = 1;/是否操作成功:是public static int SUCCESS_NO = 0;/是否操作成功:否public static String LOGIN_MEMBER = loginMember;/登錄用戶public static String LOGIN_ROLE = loginRole;/登錄角色public static int PAGINATION_RANGE = 10;/默認(rèn)分頁大?。?0public static String RETURN_TYPE_JSON = json;/Action返回類型:Jsonpublic static St
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 影視劇配音課件
- 小班數(shù)學(xué)《找不同》活動課件
- 大學(xué)生命健康教育體系構(gòu)建
- 2025年中國格仔橫拉窗市場調(diào)查研究報(bào)告
- 2025年中國接紙機(jī)市場調(diào)查研究報(bào)告
- 2025年中國單面補(bǔ)強(qiáng)膠帶市場調(diào)查研究報(bào)告
- 肉牛租賃合同協(xié)議
- 碼頭倉儲轉(zhuǎn)租合同協(xié)議
- 礦產(chǎn)品交易合同協(xié)議
- 種植項(xiàng)目合作合同協(xié)議
- GB/T 44275.2-2024工業(yè)自動化系統(tǒng)與集成開放技術(shù)字典及其在主數(shù)據(jù)中的應(yīng)用第2部分:術(shù)語
- 數(shù)獨(dú)題目高級50題(后附答案)
- 內(nèi)蒙古鄂爾多斯市2020年中考英語試題(解析版)
- Vue.js前端開發(fā)實(shí)戰(zhàn)(第2版) 課件 第2章 Vue.js開發(fā)基礎(chǔ)
- 異面直線 高一下學(xué)期數(shù)學(xué)湘教版(2019)必修第二冊
- 筆墨時空-解讀中國書法文化基因智慧樹知到期末考試答案2024年
- GLB-2防孤島保護(hù)裝置試驗(yàn)報(bào)告
- 的溝通技巧評估表
- 職場人健康狀況調(diào)查報(bào)告
- 卵巢囊腫診治中國專家共識解讀
- 兩癌篩查的知識講座
評論
0/150
提交評論