这是以前写过的一个利用struts2的interceptor进行权限管理的笔记,以前是放电脑上的,今天偶然看到了,就贴出来,希望能对有需要的人有点帮助,同时自己以后需要看的时候也会更加方便点!
说明一点:这个interceptor里面的代码是根据我特定的项目写的,所以请有需要的人不要盲目的照搬!
自己写一个interceptor,该interceptor继承interceptor接口,实现其中的intercept方法;然后在struts.xml
中进行配置,并把该interceptor置于默认的interceptor中,注意,这里在设置默认的intercept的时候
一定要加上原来的intercept,否则原来的就不可以用了,就不能用struts2了,具体来说是这样:
Xml代码
Java代码
- @Override
- public String intercept(ActionInvocation invoke) throws Exception {
- // TODO Auto-generated method stub
- HttpSession session = ServletActionContext.getRequest().getSession();
- ApplicationContext context = Util.getContext(ServletActionContext.getServletContext());
- PriorityService priorityService = context.getBean(PriorityService.class);
- String actionName = invoke.getProxy().getActionName();
- String methodName = invoke.getProxy().getMethod();
- if ("execute".equals(methodName))
- methodName = "index";
- int index = actionName.indexOf("/");
- String name = actionName.substring(0, index);
- Priority priority = priorityService.find(name, methodName);
- Object obj = session.getAttribute("user");
- if (obj != null) {
- User currentUser = (User) obj;
- ModuleService moduleService = context.getBean(ModuleService.class);
- Module module = moduleService.findByUrl(name+"/"+methodName);
- if (module != null) {
- SystemDiaryService sdService = context.getBean(SystemDiaryService.class);
- 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;
- }
网站名称:Struts2的interceptor实现权限管理
当前地址:http://www.shufengxianlan.com/qtweb/news39/439289.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联