userType=PrivilegeType.系统管理员
如果 我还想加一种 PrivilegeType.超级管理员
我想 有两种 用户 可以  访问  怎么加啊 ?

解决方案 »

  1.   

    userType=PrivilegeType.系统管理员,PrivilegeType.超级管理员
      

  2.   

    userType=PrivilegeType.系统管理员,PrivilegeType.超级管理员
    这样写错的 。。
      

  3.   

    可能 我的 想法 有问题 
    我现在  有  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();
    }
    我是 小菜   这些 都是  网上  找来 的 
    自己 吧 这些 东西  拼起来  可能 写的不太好 
    大家 有没有  比较好的 想法 
    告诉我    我试着   改一下