`
单一色调
  • 浏览: 83873 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Struts2拦截器配置

 
阅读更多

Struts 拦截器配置

1、新建拦截器,该拦截器用于拦截方法并继承MethodFilterInterceptor,重写doIntercept方法:

package com.current.interceptor;

import java.util.List;
import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;
import com.current.pagemodel.User;
import com.current.util.RequestUtil;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;

public class AuthInterceptor extends MethodFilterInterceptor{
	private static final Logger logger = Logger
			.getLogger(AuthInterceptor.class);

	private static final long serialVersionUID = 1L;

	@Override
	protected String doIntercept(ActionInvocation actionInvocation) throws Exception {
		logger.info("执行这里");
		ActionContext act = actionInvocation.getInvocationContext();
		//取到Sessoin对象
		User sessioninfo = (User) ActionContext.getContext().getSession().get("User");
		if(sessioninfo.getUsername().equals("admin")){//如果是管理员不需要验证权限
			return actionInvocation.invoke();
		}
		//得到请求的地址
		String requestPath = RequestUtil.getRequestPath(ServletActionContext.getRequest());
		logger.info("拦截的方法类:"+actionInvocation.getAction().getClass());
		logger.info("请求的方法:"+requestPath);
		List<String> auths = sessioninfo.getResourceUrls();
		if(auths!=null &&auths.size()>0){
			if(auths.contains(requestPath)){
				return actionInvocation.invoke();
			}else{
				logger.info("测试测试");
				ServletActionContext.getRequest().setAttribute("msg", 
						"您没有访问此资源的权限!<br/>请联系超管赋予您<br/>[" + requestPath + "]<br/>的资源访问权限!"
						);
				return "noAuth";
			}
		}
		logger.info(ServletActionContext.getRequest().getAttribute("msg"));
		return "noAuth";
	}

}

 该拦截器主要是从用户Session中获取用户的权限,前台页面根据权限控制用户所能访问的资源。

 

2、在Struts.xml中配置拦截器

<package name="basePackage" extends="struts-default">
	<!-- 配置拦截器 -->
	<interceptors>
		<interceptor name="authInterceptor" class="com.current.interceptor.AuthInterceptor"/>
		<!-- 配置拦截栈 -->
		<interceptor-stack name="authStack">
			<interceptor-ref name="authInterceptor">
			<!-- 指定拦截器不需要过滤的方法 -->
				<param name="excludeMethods">
					login,getTreeNode
				</param>
			</interceptor-ref>
			<!-- 默认拦截栈 ,如果不配置后台有可能获取不到前台表单的值 -->
			<interceptor-ref name="defaultStack"></interceptor-ref>
		</interceptor-stack>
	</interceptors>
	<default-interceptor-ref name="authStack"></default-interceptor-ref>
	<global-results>
		<result name="noAuth">/error/noAuth.jsp</result>
	</global-results>	
		<action name="acceptDLAction" class="com.current.action.ChainingAction" method="acceptDLAction">  
	  	<result name="success" type="plainText">
	  	<param name="charSet">UTF-8</param>
	  	<param name="location">/MyJsp.jsp</param>
	  	</result>  
	  	</action>  
	</package>

 

分享到:
评论

相关推荐

    struts2 拦截器实例

    struts2,Interceptor struts2拦截器实例,两套实例,一套是针对单个的action配置的,另一套实例是针对全局的action配置的拦截器interceptor

    struts2拦截器的使用方法

    struts2拦截器的使用说明文档,配置说明文档。可以看一下

    Struts拦截器及token拦截器防止重复提交例子源码

    Struts2拦截器的实现原理相对简单,当请求struts2的action时,Struts 2会查找配置文件,并根据其配置实例化相对的 拦截器对象,然后串成一个列表,最后一个一个地调用列表中的拦截器 三、定义Struts2拦截器。 ...

    Struts2 拦截器详细配置过程

    Struts2 拦截器详细配置过程 1:所有拦截器的超级接口Interceptor ,Action去实现这个接口; Interceptor 它其中有三个方法(init(),destroy() ,interceptor()): Init()方法:在服务器起动的时候加载一次,并且只加载一...

    struts2自定义拦截器配置心得

    strut2 配置自定义拦截器 包括struts2.xml 和 action对应的xml 以及拦截器 可能有点简单 但是基本配置都有

    struts2拦截器

    struts2拦截器拦截器的概念 配置拦截器 使用拦截器

    Struts2拦截器

    解说Struts2拦截器的配置

    Struts2拦截器及其用法详细说明

    Struts2拦截器及其用法详细说明,描述了 各个拦截器配置对应的功能

    struts2实现拦截器、

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

    struts2拦截器实例

    主要是有关Struts2中拦截器的配置和解析,简单的应用。

    Struts1 拦截器(SAIF)的使用

    完整可运行起来的SSH项目!中使用了SAIF 插件 实现拦截器的效果!并且有sql语句 !我使用的是mysql数据库,如果你使用别的数据库请改配置文件!运行成功后注意控制台的输出

    struts2拦截器示例

    struts2拦截器可以控制action的执行顺序,这个小示例直接在Tomcat下配置完就可以发布

    Struts2 配置登陆拦截器

    NULL 博文链接:https://chaoyi.iteye.com/blog/2158316

    struts2拦截器及监听器示例demo

    默认登录页面 http://localhost:8080/Struts_ljq ...登录成功页面有add,delete,modify方法,配置有不同拦截,在后台看拦截信息。...有全局拦截器配置和方法拦截,及监听器简单运用, 仅新手学习demo

    ssm配置及struts文件,拦截器.zip

    该文件主要针对springMVC+spring+mybatis框架配置,struts2文件上传的代码,Struts2自定义拦截器配置

    Struts 2的拦截器

    Struts2的拦截器的配置 Struts2的拦截器举例

    struts2上传文件及拦截器

    struts2上传单个文件及多个文件,strus2拦截器的使用,里面有个user用户,先执行user.jsp即登陆,可以执行上传文件的操作,反之,不能,有个exit...主要文件PremissionInterceptor.java和struts2.xml拦截器配置文件,ok

Global site tag (gtag.js) - Google Analytics