您的位置:首页 > 编程语言 > Java开发

struts中用拦截器实现登录验证功能AuthorizationInterceptor

2012-08-31 21:21 531 查看
用拦截器实现登录验证功能AuthorizationInterceptor



package com.interceptor;



import com.opensymphony.xwork2.ActionInvocation;

import com.opensymphony.xwork2.interceptor.*;

import com.opensymphony.xwork2.*;

import java.util.*;

public class AuthorizationInterceptor extends AbstractInterceptor {

private String ignoreActions;

@Override

public String intercept(ActionInvocation invocation) throws Exception {

ActionContext ctx = invocation.getInvocationContext();



Map session = ctx.getSession();

String user = (String) session.get("username");



boolean ignore = false;

String currentAction = invocation.getProxy().getActionName();

String[] actions = ignoreActions.split(",");



for (String action : actions) {

if (currentAction.matches(action.trim())) {

ignore = true;

break;

}

}



if (user != null || ignore == true) {

return invocation.invoke();

} else {

return Action.LOGIN;

}

}



public String getIgnoreActios() {

return ignoreActions;

}



public void setIgnoreActions(String ignoreActions) {

this.ignoreActions = ignoreActions;

}

}



在struts.xml文件里面配置该拦截器



<interceptors>

<interceptor name="authorization" class="com.interceptor.AuthorizationInterceptor" />

<interceptor-stack name="myStack">

<interceptor-ref name="authorization">

<param name="ignoreActions"> validate_code,register.*,.*login.*,upload,connector</param>

</interceptor-ref>

<interceptor-ref name="defaultStack" />

</interceptor-stack>

</interceptors>

<default-interceptor-ref name="myStack"/>

原帖地址:http://www.cnblogs.com/jobscn/archive/2011/11/22/2258343.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: