📄 authorizationinterceptor.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 + -