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

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拦截器对登陆权限验证

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

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

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

    struts2实现拦截器、

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

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

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

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

    方式一,实现Interceptor接口。 28 方式二、继承AbstractInterceptor抽象类 29 方式三、继承MethodFilterInteceptor类 30 3.使用来MethodFilterInterceptor灵活拦截 32 4.使用默认的execAndWait拦截器 33 5. ...

    数据采集系统

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

    struts2拦截器

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

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

    2.比如每个人执行action之前,我可以查看他们有没有这个权限执行这个action。 如果不设置拦截器,你要在每种action方法之前设置判定程序,非常繁琐。 拦截器interceptor体现了一种编程理念,叫做AOP(面向切面编程)...

    Java面试题

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

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

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

    拦截器登陆权限验证案例

    支持Struts2 不支持Hibernate

    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(格式化...

    Java学习笔记-个人整理的

    {7.1}Java的文件系统管理}{103}{section.7.1} {7.2}回调模式与FileFilter}{104}{section.7.2} {7.3}\ttfamily RandomAccessFile}{106}{section.7.3} {7.4}基本类型数据序列化}{108}{section.7.4} {7.5}String的...

    SpringBoot 自定义拦截器 的 源代码

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

    FilterAndInterceptor

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

Global site tag (gtag.js) - Google Analytics