首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

struts2的interceptor兑现权限管理

2012-09-06 
struts2的interceptor实现权限管理这是以前写过的一个利用struts2的interceptor进行权限管理的笔记,以前是

struts2的interceptor实现权限管理

这是以前写过的一个利用struts2的interceptor进行权限管理的笔记,以前是放电脑上的,今天偶然看到了,就贴出来,希望能对有需要的人有点帮助,同时自己以后需要看的时候也会更加方便点!

说明一点:这个interceptor里面的代码是根据我特定的项目写的,所以请有需要的人不要盲目的照搬!

自己写一个interceptor,该interceptor继承interceptor接口,实现其中的intercept方法;然后在struts.xml
中进行配置,并把该interceptor置于默认的interceptor中,注意,这里在设置默认的intercept的时候
一定要加上原来的intercept,否则原来的就不可以用了,就不能用struts2了,具体来说是这样:

@Overridepublic String intercept(ActionInvocation invoke) throws Exception {// TODO Auto-generated method stubHttpSessionsession  = ServletActionContext.getRequest().getSession();String actionName = invoke.getProxy().getActionName();//获取action的名称String methodName = invoke.getProxy().getMethod();//获取执行的方法if ("execute".equals(methodName)) methodName = "index";int index = actionName.indexOf("/");String name = actionName.substring(0, index);//priorityService通过Spring注入Priority priority = priorityService.find(name, methodName);Object obj = session.getAttribute("user");if (obj != null) {User currentUser = (User) obj;//moduleService利用Spring注入Module module = moduleService.findByUrl(name+"/"+methodName);if (module != null) {//sdService通过Spring注入SystemDiary diary = new SystemDiary();diary.setOperator(currentUser);diary.setOperateModule(module.getName());sdService.add(diary);}if (priority != null) {boolean hasPermission = currentUser.hasPermission(priority);if (!hasPermission) {return "forbidden";}}}//System.out.println("name = "+name + "**actionName = "+actionName+"*methodName = "+methodName);String result = invoke.invoke();return result;}

?

热点排行