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

[color=darkred][b]用拦截器实现登录验证功能AuthorizationInterceptor:[/b][/color]

package com.interceptor;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.*;
import com.opensymphony.xwork2.*;
import java.util.*;
/**
* @author http://xp9802.iteye.com/
*/
public class AuthorizationInterceptor extends AbstractInterceptor {
private String ignoreActions;

// ignoreActions属性的getter方法
public String getIgnoreActios() {
return ignoreActions;
}

// ignoreActions属性的setter方法
public void setIgnoreActions(String ignoreActions) {
this.ignoreActions = 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;
}

}
}


[color=darkred][b]在struts.xml文件里面配置该拦截器:[/b][/color]


<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"/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值