struts2的interceptor实现权限管理

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

 

目录
相关文章
|
Java
Struts2【拦截器】(一)
Struts2【拦截器】
167 0
Struts2【拦截器】(一)
|
算法 安全 前端开发
springboot整合shiro实现权限控制(下)
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。上个月写了一个在线教育的项目用到了shiro权限控制,这几天又复盘了一下,对其进行了深入探究,来总结一下。
144 0
springboot整合shiro实现权限控制(下)
|
缓存 安全 Java
springboot整合shiro实现权限控制(中)
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。上个月写了一个在线教育的项目用到了shiro权限控制,这几天又复盘了一下,对其进行了深入探究,来总结一下。
179 0
|
安全 前端开发 Java
springboot整合shiro实现权限控制(上)
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。上个月写了一个在线教育的项目用到了shiro权限控制,这几天又复盘了一下,对其进行了深入探究,来总结一下。
363 0
|
数据安全/隐私保护
14 Struts2 验证框架
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hxdeng/article/details/82020359 数据校验 数据校验是程序中最常见的模块。
1352 0
|
SQL Java 数据库
Struts2【拦截器】就是这么简单
什么是拦截器 拦截器Interceptor.....拦截器是Struts的概念,它与过滤器是类似的...可以近似于看作是过滤器 为什么我们要使用拦截器 前面在介绍Struts的时候已经讲解过了,Struts为我们实现了很多的功能,比如数据自动封装阿..文件上传功能阿....Struts为我们提供的这些功能都是通过拦截器完成的...... 数据自动封装通过这个拦截器。
1134 0
|
安全 Java Spring
安全框架 - Shiro与springMVC整合的注解以及JSP标签
Shiro想必大家都知道了,之前的文章我也有提过,是目前使用率要比spring security都要多的一个权限框架,本身spring自己都在用shiro,之前的文章有兴趣可以去扒一下 最近正好用到shiro,简单聊聊几个小tips吧 /images/**...
1552 0