`

struts2 之 interceptor权限管理

 
阅读更多
    这是以前写过的一个利用struts2的interceptor进行权限管理的笔记,以前是放电脑上的,今天偶然看到了,就贴出来,希望能对有需要的人有点帮助,同时自己以后需要看的时候也会更加方便点!
    自己写一个interceptor,该interceptor继承interceptor接口,实现其中的intercept方法;然后在struts.xml
    中进行配置,并把该interceptor置于默认的interceptor中,注意,这里在设置默认的intercept的时候
    一定要加上原来的intercept,否则原来的就不可以用了,就不能用struts2了,具体来说是这样:
    Xml代码
    <interceptors>
    <interceptor name="authentication" class="com.tiantian.tiantian.web.interceptor.AuthenticationInterceptor"></interceptor>
    <interceptor-stack name="myInterceptorStack">
    <interceptor-ref name="authentication"></interceptor-ref>
    <interceptor-ref name="defaultStack"></interceptor-ref>
    </interceptor-stack>
    </interceptors>
    <default-interceptor-ref name="myInterceptorStack"/>
    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;
    } 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;
    }();
    return result;
    } result;        
}
分享到:
评论

相关推荐

    使用struts2拦截器对登陆权限验证

    综合使用servlet filter与struts2 interceptor对权限进行验证。

    Struts2入门教程(全新完整版)

    十二、总结 本教程对struts2的基本知识进行了一些说明,关于struts2的更多详细内容应参看struts2的官方文档及提供的app实例。 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图...

    在struts2中使用拦截器(Interceptor)控制登录和权限[汇编].pdf

    在struts2中使用拦截器(Interceptor)控制登录和权限[汇编].pdf

    Struts2利用拦截器实现权限控制

    利用Struts2的核心技术----拦截器实现权限控制。详细代码详解

    struts2实现拦截器、

    使用Struts2实现用户权限拦截、重点是掌握拦截器的使用和配置方法,通过案例的学习,就能掌握struts中拦截器的使用方法,让我们能快速上手

    Java中的Struts2框架拦截器之实例代码

    本文实例为大家分享了Struts2框架拦截器实例的示例代码,供大家参考,具体内容如下 在看拦截器的小例子的前我们先来看看sturts2的原理   struts2自己是有拦截器的,通过拦截器可以拦截用户请求,并作出处理 拦截器...

    struts2拦截器

    拦截器可以说相当于是个过滤器:就是把你不想要的或不想显示的内容给过滤掉。拦截器可以抽象出一部分代码可以用来完善原来的...这样如果有新增权限的话,不用在Action里修改任何代码,直接在Interceptor里修改就行了。

    Java面试题

    java笔试题集(达内科技) j2ee面试题 Struts2权限interceptor JAVA工程师EJB面试题集

    数据采集系统

    6.采用二进制运算实现权限控制,利用interceptor实现粗粒度控制以及重写struts2 标签实现细粒度权限控制.采用二位运算能够使得权限运算更加快捷,而且极大 降低 session存储量,有效利用服务器资源. .系统中通过 cxf ...

    名为责任链或者拦截器或者过滤器的简单模拟

    比如说,struts2中Action在执行之前会首先执行一些Interceptor,完成诸如权限验证/属性注入/Validation/国际化等等的功能, 我看过一个比较好的功能是,利用strut2的拦截器和*-Validation.xml文件以及标签(strut2...

    拦截器登陆权限验证案例

    支持Struts2 不支持Hibernate

    Java学习笔记-个人整理的

    {12.9} 授权与回收权限}{161}{section.12.9} {12.10}示例}{162}{section.12.10} {12.10.1}exists}{165}{subsection.12.10.1} {12.11}集合操作}{165}{section.12.11} {12.11.1}union}{166}{subsection.12.11.1} ...

    J2EE应用开发详解

    118 8.3.5 Struts2配置文件 119 8.4 Action的配置方式 121 8.4.1 动态方法调用 121 8.4.2 设置action元素的method属性 122 8.4.3 使用通配符配置action 122 8.4.4 默认action 123 8.5 拦截器Interceptor 123 8.5.1 ...

    java后台框架源码

    action:存放struts2控制类的包 dao:数据库访问封装 enm:系统中使用到的常量包,这里不是用的常量,用的是枚举替代常量 entity:hibernate对应的orm与数据库表一一对应的实体类 filter:Log4jFormatFilter(格式化...

    SpringBoot 自定义拦截器 的 源代码

    我们对拦截器并不陌生,无论是 Struts 2 还是 Spring MVC 中都提供了拦截器功能,它可以根据 URL 对请求进行拦截,主要应用于登陆校验、权限验证、乱码解决、性能监控和异常处理等功能上。Spring Boot 同样提供了...

    FilterAndInterceptor

    本资源是包含过滤器、拦截器的一个完整的MyEclipse项目。...拦截器--它由spring管理,只对action起作用,不能拦截jsp页面、图片等其他资源。执行顺序:过滤前 - 拦截前 - Action处理 - 拦截后 - 过滤后

Global site tag (gtag.js) - Google Analytics