`

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 Interceptor详解

    Struts2作为一款流行的Java Web框架,其强大的功能之一就是拦截器(Interceptor)。拦截器在MVC模式中扮演着重要角色,它可以对请求进行预处理和后处理,提供了灵活的扩展机制,使得业务逻辑与表现层更加分离。本文...

    Struts2 拦截器 Interceptor

    在Struts2框架中,拦截器(Interceptor)是一种非常重要的机制,它能够帮助开发者实现诸如权限控制、事务管理、日志记录等跨切关注点的功能。通过定义不同的拦截器栈,可以灵活地组合各种功能,从而达到复用代码的...

    struts2 Interceptor拦截器

    Struts2框架的核心设计理念之一是MVC(Model-View-Controller),它将业务逻辑、数据和界面分离,使得应用程序更加清晰、易于维护。在Struts2框架中,**Interceptor(拦截器)**是一个关键组件,它允许开发者在特定...

    struts2权限管理系统

    此外,Struts2还支持拦截器(Interceptor)机制,这在权限管理中至关重要,因为拦截器可以在请求到达Action之前进行预处理,例如验证用户权限。 在权限管理方面,Apache Shiro或Spring Security是常用的工具。它们...

    基于Struts2的用户权限管理

    在"基于Struts2的用户权限管理"项目中,它被用来处理用户的登录、权限控制以及不同角色间的差异化访问。这个系统的核心目标是实现安全、高效的角色与权限分配,以确保不同级别的用户只能访问他们被授权的页面和功能...

    Struts2.x_Interceptor

    Interceptor(拦截器)是Struts2框架的核心组件之一,它在Action调用前后执行,实现了业务逻辑的分离,增强了代码的复用性和灵活性。 Interceptor是Struts2实现AOP(面向切面编程)的一种方式,主要负责处理请求和...

    基于Struts2的个人信息管理系统

    在用户管理模块中,Struts2提供了丰富的动作类(Action)和结果(Result)配置,使得开发者可以轻松处理用户的登录、注册、权限验证等操作。通过ActionSupport基类和Interceptor拦截器,我们可以实现诸如验证码校验...

    struts2的新闻管理系统

    Struts2通过拦截器(Interceptor)机制实现了AOP(面向切面编程),提供了异常处理、数据验证、国际化等高级功能。 在"新闻管理系统"中,可能包含以下几个主要模块: 1. **新闻管理**:这是系统的核心部分,包括...

    saif(struts1 interceptor)

    然而,在Struts1的原生设计中,并没有内置拦截器(Interceptor)这一概念,这与后来的Struts2框架有所不同。Struts2引入了拦截器,极大地增强了框架的灵活性和可扩展性。但是,由于Struts1的流行和项目需求,"saif...

    struts2 interceptor annotation plugin

    在Struts2中,拦截器(Interceptor)是核心组件之一,它们在Action执行前后进行拦截,实现了如日志记录、权限检查、数据验证等业务逻辑。而"struts2 interceptor annotation plugin"则是Struts2框架提供的一种使用...

    STRUTS2个人通讯录管理系统

    STRUTS2的配置文件(struts.xml)用于定义Action的映射,以及各种拦截器的配置,这些拦截器可以处理权限验证、日志记录等任务。 在本系统中,登录功能引入了验证码技术。验证码是一种防止机器自动操作的安全机制,...

    权限管理系统struts2

    在“权限管理系统”这个场景下,Struts2扮演着核心控制器的角色,帮助开发者处理用户请求,控制应用程序流程,并实现权限管理功能。 在Struts2中,权限管理通常涉及到以下几个关键知识点: 1. **Action类与结果...

    基于struts2商品管理项目

    项目可能使用了Struts2的拦截器(Interceptor)机制,如LoginInterceptor,来检查用户是否已登录,只有登录成功的管理员才能执行管理操作。同时,还需要实现角色和权限的管理,确保不同角色的用户只能访问其权限范围...

    Struts2框架实现图书管理系统

    在"Struts2框架实现图书管理系统"这个项目中,我们将深入探讨如何利用Struts2来设计和实现一个用于管理图书信息的系统,包括对图书的基本信息进行添加、删除、修改和查询等核心功能。同时,项目还涉及到拦截器的使用...

    基于Struts2框架的名片管理系统

    安全方面,Struts2提供了拦截器(Interceptor)机制,可以集成Shiro或Spring Security进行权限控制。 总之,基于Struts2框架的名片管理系统是一个典型的JavaEE应用实例,它展示了如何利用现代Web框架来构建一个功能...

    struts2+Hibernate个人管理系统

    此外,Struts2还支持拦截器(Interceptor),这些拦截器可以添加额外的功能,如权限验证、日志记录等,增强了系统的灵活性和可扩展性。 其次,Hibernate是一个强大的ORM框架,它消除了直接使用SQL与数据库交互的...

    基于角色的权限管理 struts2

    2. **Interceptor(拦截器)**:Struts2的拦截器可以用来在Action执行前后添加额外的功能,如登录检查、权限验证等。一个定制的权限拦截器可以检查用户的角色,决定是否允许执行特定的Action。 3. **Role(角色)**...

    简单struts2项目(人事管理)

    Struts2提供了一套完善的拦截器(Interceptor)机制,可以方便地添加数据校验、事务管理等功能。通过在struts.xml中声明拦截器栈,我们可以控制Action执行前后的逻辑。 对于国际语言支持,Struts2提供了i18n(国际...

    留言板留言板struts2留言板struts2

    拦截器链是Struts2的一大特色,允许开发者自定义拦截器,实现如权限验证、日志记录、事务管理等功能。 4. **结果类型(Result)**:Action执行完成后,会返回一个结果类型,告诉框架如何处理后续的响应。Struts2内置...

Global site tag (gtag.js) - Google Analytics