哪位大哥有关于struts2登陆拦截的代码?示例
解决方案 »
- 请教高手:关于ejb的一个奇怪的问题
- hibernate createSQLQuery查询问题,大家帮我看下 谢谢了
- 有关JXTA(jxtaim)的菜鸟级问题
- 请问该如何做开源软件的分析工作,谢谢
- 一个关于JMS的问题,长期使用造成死机
- websphere的问题(1)?
- 请问在Eclipse下如何配置jboss-3.2.0_tomcat-4.1.24
- Weblogic 6.1嵌入Jubilder7.0启动出现问题:连接池连不上
- 哪位兄弟提供给小弟一个金山词霸2003的下载链接?
- java实现前后端分离,前端是用json传输数据吗?
- java 发送http请求后,处理返回流出现丢失"<",求解?
- 云计算
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
import com.gbsou.dns.common.Constants;/**
* @author Jeson
* @blog http://www.gbsou.com
* @date:Oct 30, 2009 1:51:34 PM
* @version :1.0
*
*/
public class LoginInterceptor extends MethodFilterInterceptor{
private String exIncludeMethod = null;
@Override
protected String doIntercept(ActionInvocation inv)
throws Exception {
String method = inv.getInvocationContext().getName();
if ("saveLog".equals(method)) {
return inv.invoke();
}
if (!isIgnoreMethod(method)) {
Object isLogin = ServletActionContext.getRequest().getSession()
.getAttribute(Constants.SESSION_USER_IS_LOGIN);
if (isLogin == null || !"y".equals(isLogin)) {
ServletActionContext
.getRequest()
.setAttribute(Constants.ERROR_INFO,
"用户信息丢失,请重新登陆 <a href='"+ServletActionContext.getServletContext().getAttribute(Constants.WEBAPP_CONTEXT_PATH_KEY)+"/login/t_memLogin.action'>登录</a>");
throw new NullPointerException("用户信息丢失");
}
}
return inv.invoke();
} private boolean isIgnoreMethod(String targetActionName) {
boolean flag = false;
targetActionName = targetActionName.toLowerCase();
String[] Methods = exIncludeMethod.split(",");
for (String m : Methods) {
if (targetActionName.indexOf(m) != -1) {
flag = true;
break;
}
}
return flag;
} public String getExIncludeMethod() {
return exIncludeMethod;
} public void setExIncludeMethod(String exIncludeMethod) {
this.exIncludeMethod = exIncludeMethod;
}
}