package com.oa.extend;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.oa.action.UserAction;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
public class SecurityInterceptor implements Interceptor {
/**
*
*/
private static final long serialVersionUID = -8181217632709500253L;
public String intercept(ActionInvocation invocation) throws Exception {
HttpSession session = ServletActionContext.getRequest().getSession();
HttpServletRequest request=ServletActionContext.getRequest();
String clazz=invocation.getAction().getClass().getName();
System.out.println("clazz is "+clazz);
// System.out.println(clazz+invocation.getAction());
if (session.getAttribute("admin") == null ){
if(UserAction.class.getName().equals(clazz)){
System.out.println("if admin is null");
return invocation.invoke();
}
System.out.println("admin is null");
return Action.LOGIN;
}else {
if(UserAction.class.getName().equals(clazz)){
Map parameters = invocation.getInvocationContext().getParameters();
if(parameters.get("user.account")!=null){
System.out.println("-====");
System.out.println("user.account");
session.removeAttribute("admin");
}
}
return invocation.invoke();
}
}
public void destroy() {
// TODO Auto-generated method stub
}
public void init() {
// TODO Auto-generated method stub
}
}