package com.sise.action;
import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
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();
Object user = session.get("currentUserId");
boolean ignore = false;
if (user != null || ignore == true) {
return invocation.invoke();
} else {
return Action.LOGIN;
}
}
}
struct.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="default" extends="struts-default">
<interceptors>
<interceptor name="loginInterceptor"
class="com.sise.action.AuthorizationInterceptor"></interceptor>
<interceptor-stack name="loginDefaultStack">
<interceptor-ref name="loginInterceptor">
<param name="ignoreActions">
validate_code,register.*,.*login.*,upload,connector</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="loginDefaultStack"></default-interceptor-ref>
<global-results>
<result name="login" type="redirect">/login.html</result>
</global-results>
<action name="index" class="com.sise.action.IndexAction"
method="index">
<result name="success">/index.html</result>
</action>
<action name="login" class="com.sise.action.LoginAction"
method="login">
<result type="redirectAction">index</result>
<result name="login" >/login.html</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
</struts>