⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 authorizationinterceptor.java

📁 外买系统struts2
💻 JAVA
字号:
package com.waimai.utils;

import java.util.HashMap;
import java.util.Map;

import org.apache.log4j.Logger;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.waimai.web.AbstractCRUDAction;
import com.waimai.web.IRoleAndCRUD;

/**
 * 描述:
 * 
 * @author Stone yang 创建日期:2007-5-21
 * @version pattern Study 技术支持: <a
 *          href="http://blog.csdn.net/yq76034150">http://blog.csdn.net/yq76034150</a>
 */
public class AuthorizationInterceptor extends AbstractInterceptor {

	private static final Logger log = Logger
			.getLogger(AuthorizationInterceptor.class);

	protected static Map<String, String> roleMethodMap = new HashMap<String, String>();

	static {
		if (roleMethodMap.size() <= 0) {
			roleMethodMap.put("list", "view");
			roleMethodMap.put("store", "edit");
			roleMethodMap.put("remove", "remove");
		}
	}

	@Override
	public String intercept(ActionInvocation ai) throws Exception {
		Map session = ai.getInvocationContext().getSession();
		String role = (String) session.get("ROLE");
		if (role != null) {
			Object action = ai.getAction();
			if (action instanceof IRoleAndCRUD) {
				IRoleAndCRUD crudAction = (IRoleAndCRUD) action;
				String methodName = ai.getProxy().getActionName();
				if (role.equals(roleMethodMap.get(methodName))) { //session中存储的角色和调用方法对应的权限一致
					crudAction.setRole(role);
					return ai.invoke();
				} else {

					return Action.LOGIN;
				}
			} else {
				return Action.LOGIN;
			}

		} else {
			return Action.LOGIN;
		}
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -