userType=PrivilegeType.系统管理员
如果 我还想加一种 PrivilegeType.超级管理员
我想 有两种 用户 可以 访问 怎么加啊 ?
如果 我还想加一种 PrivilegeType.超级管理员
我想 有两种 用户 可以 访问 怎么加啊 ?
解决方案 »
- VNC客户短短开发遇到的问题,懂rfb协议的高人进来
- weblogic9.2新建的域的服务器注册为windows服务问题
- 360安全卫士7.1借口兼容问题诱使用户强行卸载金山网盾,金山安全认为,360安全卫士的这种卸载行为是赤裸裸的病毒行为
- 懂servlet的请进
- spring getBean 的问题 ********
- javascript中的正则表达式的问题->请进来看看吧!
- Apache与Tomcat集成,运行DWR reverse-ajax的疑问
- MySQL5.0的中文乱码问题,怎么处理啊?
- Hibernate映射文件中的<property>中的name="xxx"必须与POJO中的getXXX,setXXX对应吗?
- 求助,关于Hibernate一对多查询问题?
- 各位大大们,救救我,给我点建议我想培训,不知道上哪去
- 用超链接如何提交表单
这样写错的 。。
我现在 有 4种 权限
但 这个 方法我想 有 两种 权限的 人 可以 使用 比方说
@Privilege(userType = PrivilegeType.系统管理员 , message = "需管管理员权限!")
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
return mapping.findForward("add");
}
我还想 一般用户 可以 使用
应该是 如何 设计 的
这是我的 切面 @Around("anyMethod()")
public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {
ActionMapping mapping = (ActionMapping) pjp.getArgs()[0];
ActionForm form = (ActionForm) pjp.getArgs()[1];
HttpServletRequest request = (HttpServletRequest) pjp.getArgs()[2];
HttpServletResponse response = (HttpServletResponse) pjp.getArgs()[3]; String name = (String) request.getSession().getAttribute("name"); // 从拦截点处获取它所处的类名,并经过反射取得权限配置信息
Class dispatchAction = Class.forName(pjp.getSignature()
.getDeclaringTypeName());
Object obj = dispatchAction.newInstance();
String mappingParament = mapping.getParameter() == null ? "execute"
: request.getParameter(mapping.getParameter());
Method method = obj.getClass().getDeclaredMethod(mappingParament,
ActionMapping.class, ActionForm.class,
HttpServletRequest.class, HttpServletResponse.class);
Privilege privilege = method.getAnnotation(Privilege.class); if (privilege == null)
return (ActionForward) pjp.proceed(); HttpSession session = request.getSession();
String kind = session.getAttribute("kind").toString(); switch (privilege.userType().getValue()) {
case 2:
if (!kind.equals(privilege.userType().toString())) {
request.setAttribute("message", privilege.message());
return mapping.findForward("message");
}
break;
case 3:
if (!kind.equals(privilege.userType().toString())) {
request.setAttribute("message", privilege.message());
return mapping.findForward("message");
}
break;
case 4:
if (!kind.equals(privilege.userType().toString())) {
request.setAttribute("message", privilege.message());
return mapping.findForward("message");
}
break;
} // 否则必须是登录用户,进行第一关粗粒度拦截
return (ActionForward) pjp.proceed(); }这是 我的 4种 权限
public enum PrivilegeType {
一般用户 {
public int getValue() {
return 1;
}
},
部门经理 {
public int getValue() {
return 2;
}
},
系统管理员 {
public int getValue() {
return 3;
}
},
最高管理者 {
public int getValue() {
return 4;
}
};
public abstract int getValue();
}
我是 小菜 这些 都是 网上 找来 的
自己 吧 这些 东西 拼起来 可能 写的不太好
大家 有没有 比较好的 想法
告诉我 我试着 改一下