用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

登录拦截

2016-07-29 作者: 云代码会员举报

[java]代码库

package com.app.common;

import org.apache.log4j.Logger;

import com.app.model.User;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class PrivilegeInterceptor extends AbstractInterceptor{

	/**
	 * 
	 */
	private static final long serialVersionUID = 5851995979071627976L;

	private static final Logger logger = Logger.getLogger(PrivilegeInterceptor.class);
	
	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		logger.info("PrivilegeInterceptor:Action方法拦截");

		//获取当前用户
		User user = (User) ActionContext.getContext().getSession().get("loginUser");
		
		//获取当前访问的URL,并去掉当前应用程序的前缀(也就是 namespaceName + actionName )
		String namespace = invocation.getProxy().getNamespace();
		String actionName = invocation.getProxy().getActionName();
		
		logger.info("namespace:" + namespace +" , "+"actionName:" + actionName);
		
		String privilegeUrl = null;
		if(namespace.endsWith("/")){
			privilegeUrl = namespace + actionName;
		}else{
			privilegeUrl = namespace + "/" + actionName; 
		}
		
		//要去掉开头的'/'
		if(privilegeUrl.startsWith("/")){
			privilegeUrl = privilegeUrl.substring(1);//从1开始截取
		}
		
		//String result = null;
		
		//如果未登录用户
		if(user==null){
//			if(privilegeUrl.endsWith("/login_index" + Constant.S2_ACTION_EXT)
//					|| privilegeUrl.endsWith("/login_login" + Constant.S2_ACTION_EXT )){
//				//如果是正在使用登录功能,就放行
//				result = invocation.invoke();
//			}else{
				//如果不是去登录,就转到登录页面
				return "login";
//			}
		}
		//如果已经登录,就判断权限
		else{
			//if(user.hasPrivilegeByUrl(privilegeUrl)){
				//如果有权限就放行
				return invocation.invoke();
			//}else{
				//如果没有权限,返回无权限信息
			//	return "noPrivilegeError";
			//}
		}
		
		//return result;
		
	}

}


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...