`
234390216
  • 浏览: 10238752 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:462899
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1775984
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1398756
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:395157
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:680175
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:531148
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1185023
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:468824
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:151494
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:68344
社区版块
存档分类
最新评论

struts2的interceptor实现权限管理

阅读更多

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

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

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

<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"/>
@Override
	public String intercept(ActionInvocation invoke) throws Exception {
		// TODO Auto-generated method stub
		HttpSession	session  = 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;
	}

 

3
5
分享到:
评论

相关推荐

    struts2 Interceptor详解

    开发者可以通过实现`org.apache.struts2.interceptor.Interceptor`接口或继承`org.apache.struts2.interceptor.StrutsInterceptor`抽象类来自定义拦截器。在自定义拦截器时,需要重写`intercept()`方法,实现自己的...

    struts2 interceptor介绍

    在Struts2框架中,Interceptor(拦截器)扮演着极其关键的角色,它不仅能够增强框架的灵活性,还能提供一系列强大的功能,包括但不限于权限控制、事务管理、数据验证等。本文将深入探讨Struts2 Interceptor的原理、...

    struts2 Interceptor拦截器

    2. **如何实现**:Struts2提供了一个灵活的Interceptor框架,开发者可以通过实现Interceptor接口来自定义拦截器,也可以通过继承已有的拦截器实现来进行扩展。 3. **配置方式**:Interceptor的配置通过Struts2的配置...

    Struts2 拦截器 Interceptor

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

    saif(struts1 interceptor)

    "saif(struts1 interceptor)"插件实现了类似Struts2的拦截器机制,使开发者可以在Struts1中创建和配置拦截器,实现对请求的拦截和处理。以下是一些关键知识点: 1. **拦截器链**:在Struts1中,拦截器被组织成一个...

    Struts2拦截器实现权限控制demo

    在这个“Struts2拦截器实现权限控制demo”中,我们将深入探讨如何利用拦截器来实现细粒度的用户权限管理。 首先,我们需要了解Struts2中的拦截器工作原理。拦截器是基于Java的动态代理模式实现的,它们按照配置的...

    struts2权限管理系统

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

    基于Struts2的用户权限管理

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

    struts2 interceptor annotation plugin

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

    Struts2框架实现图书管理系统

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

    struts2拦截器实现权限控制

    这篇博客文章“struts2拦截器实现权限控制”深入探讨了如何利用Struts2的拦截机制来执行用户访问权限的验证。 在Struts2中,拦截器是基于AOP(面向切面编程)的概念设计的,它们在Action调用前后执行,可以添加额外...

    权限管理系统struts2

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

    struts2的新闻管理系统

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

    基于角色的权限管理 struts2

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

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

    基于Struts2的个人信息管理系统是使用这一框架来设计和实现的一个典型示例,它涵盖了用户管理、行程管理和文件操作等多个核心功能。 在用户管理模块中,Struts2提供了丰富的动作类(Action)和结果(Result)配置,...

    基于Struts2实现报道管理系统

    **基于Struts2实现报道管理系统** Struts2是一款强大的MVC框架,用于构建Java Web应用程序。在报道管理系统中,Struts2起到了核心架构的作用,它提供了模型-视图-控制器的设计模式,使得开发者能够更有效地组织和...

    struts实现的权限分配

    在“struts实现的权限分配”这一主题中,我们将深入探讨如何使用Struts来设计和实现一个安全的权限管理系统。 首先,我们需要理解权限分配的基本概念。在Web应用程序中,权限分配是确保不同用户或角色访问不同资源...

    权限管理系统struts2.0+easyUI

    2. **Interceptor**: 拦截器是Struts2中的重要概念,它可以看作是在Action调用前后执行的一系列方法,用于实现如日志记录、事务管理、权限检查等功能。 3. **Result**: 结果是Action执行后的输出,通常用来决定如何...

    Sring+hibernate+struts2+easyui基本权限管理框架

    本示例"Spring+Hibernate+Struts2+EasyUI基本权限管理框架"提供了一个全面的解决方案,旨在帮助初学者理解和掌握这些核心技术的集成与应用。下面将分别介绍这四个主要组件以及它们在权限管理中的作用。 1. **Spring...

Global site tag (gtag.js) - Google Analytics