`
qq663135128
  • 浏览: 8885 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Java 注解 权限应用

阅读更多

首先思路是

用户登录 获得权限列表 存在加密cookie session什么的

方法用注解修饰 不通的权限有不同的修饰参数

 


@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@interface AnnotationVerify {
 /**
  * to verify code,
  * 定义参数
  * @return
  */
 public String code();
}

public class SomeAction {

 @AnnotationVerify(code = "ADMIN,user")
 public static List<String> sayHello(String name,int sex) {
  System.out.println("------------hello ------"+name);
  List<String> l=new ArrayList<String>();
  l.add("Accept");
  l.add("PassAccept");
  return l;
 }

 @AnnotationVerify(code = "ADMIN")
 public static void sayHelloWorld() {
  System.out.println("---------admin---------");
 }

 public static void main(String[] args) throws Exception {
  SomeAction s = new SomeAction();
  //代理 获得结果
  Map<String,Object> resultMap = s.invoke(s,"sayHello",new Object[]{"赵天明",1});
  
  //判读是否成功  验证权限
  if (resultMap.get("success").equals(Boolean.TRUE)) {
   System.out.println("执行成功!  结果");
   System.out.println(resultMap.get("result"));
   
  } else {
   System.out.println("没有权限!");
  }

 }

 
 /**
  * 验证方法权限  并且执行invoke结果
  * @param Object proxy
  * @param String methodName
  * @param Object[] methodParams
  * @return Map
  * @throws Exception
  */
 public Map<String,Object> invoke(Object proxy, String methodName, Object[] methodParams)
   throws Exception {
  Map<String,Object> resultMap=new HashMap<String,Object>();
  
  Method method = getMethod(proxy.getClass(), methodName);
  String verfiyCode = getMethodAnnotation(method);
  if (Verfiy(verfiyCode)) {
   Object resultObject=method.invoke(proxy, methodParams);
   resultMap.put("success",true);
   resultMap.put("result",resultObject);
   return resultMap;
  } else {
   resultMap.put("success",false);
   return resultMap;
  }
 }

 /**
  * 验证权限
  * @param code
  * @return
  */
 public boolean Verfiy(String code) {
  String[] codes=code.split(",");
  for (VerfiyCode v : VerfiyCode.values()) {
   for(String c:codes){
    if (v.name().equals(c))
     return true;
   }
  }
  return false;
 }
 /**
  * 获得方法
  * @param aClass
  * @param methodName
  * @return
  */
 public Method getMethod(Class<? extends Object> aClass, String methodName) {
  Method[] methods = aClass.getDeclaredMethods();
  for (Method method : methods) {
   if (method.getName().equals(methodName)) {
    return method;
   }
  }
  return null;
 }
 /**
  * 获得方法注解信息
  * @param method
  * @return
  */
 public String getMethodAnnotation(Method method) {
  AnnotationVerify annotation = method
    .getAnnotation(AnnotationVerify.class);
  if (annotation != null) {
   return annotation.code();
  }
  return null;
 }

}

/**
 * 权限类
 * @author XiaoMing
 *
 */
enum VerfiyCode {
 ADMIN, USER,
}

分享到:
评论
1 楼 vtrtbb 2010-10-20  
你倒是排排版啊

相关推荐

    java用户权限设计

    在Java编程领域,权限设计是构建安全应用程序的关键组成部分。它涉及到如何管理用户访问资源的权限,确保只有授权的用户或系统组件能够执行特定的操作。在这个主题中,"java用户权限设计"涵盖了多个重要知识点,包括...

    java后台权限管理

    在Java后台权限管理中,我们主要探讨的是如何在企业级应用中实现安全、高效和灵活的用户访问控制。Spring MVC框架常被用作构建这部分功能的基础,它提供了强大的MVC设计模式支持,使得开发人员能够方便地处理HTTP...

    通过Java注解实现安全控制

    这篇名为“通过Java注解实现安全控制”的博文主要探讨了如何利用Java注解来加强应用程序的安全性。 Java注解的定义通常以`@`符号开头,后面跟着注解的类型。例如,`@Override`用于确保方法覆盖父类的方法,`@...

    java角色权限源码

    在Java开发领域,权限管理是系统安全的重要组成部分。在这个项目中,我们主要关注的是使用SpringMVC、Hibernate和MySQL构建的角色权限系统。SpringMVC作为轻量级的MVC框架,负责处理请求和响应,而Hibernate作为ORM...

    Java基本的权限设计

    Java权限设计是构建安全应用程序的关键组成部分,它涉及到对系统资源的访问控制,确保只有授权的用户和角色才能执行特定的操作。以下是对标题和描述中提到的知识点的详细说明: 1. **实体设计**: 在Java权限设计...

    一个java权限管理系统

    总结来说,这个Java权限管理系统是一个结合了Struts2、Spring和Hibernate技术的Web应用,实现了用户权限和菜单权限的管理,同时具备公司办公自动化功能。这样的系统为企业的信息安全管理提供了有效支撑,确保了不同...

    java开发权限模块讲解

    在Java开发中,权限管理模块是企业级应用中不可或缺的一部分,它主要用于控制用户对系统资源的访问,确保数据安全和业务流程的顺畅。本讲解将深入探讨如何在Java环境中实现一个详细的权限模块,以帮助开发者更好地...

    java token验证和注解方式放行

    "java token验证和注解方式放行"的主题涉及了两个关键概念:Token验证和基于注解的权限管理。Token通常用于验证用户身份,防止未授权的访问。下面我们将深入探讨这两个主题。 首先,Token验证是一种常见的身份验证...

    java登录权限控制项目

    在Java开发领域,登录权限控制是构建任何复杂Web应用程序的核心组成部分。这个项目专注于实现安全的用户身份验证和授权,确保只有经过验证的用户才能访问特定的系统资源。下面将详细介绍这个"java登录权限控制项目...

    java权限管理系统(简单)

    在IT行业中,权限管理系统是构建安全、高效应用的关键组成部分,特别是在企业级软件系统中。本文将深入探讨基于Java实现的简单权限管理系统,该系统利用了Struts、Hibernate和Spring这三大流行框架的整合来实现其...

    java用户权限管理

    在这个场景中,提到的项目可能是一个基于Java实现的用户权限管理系统,可以直接部署在Tomcat应用服务器上。Tomcat是一款广泛使用的开源Java Servlet容器,它能够运行Java Web应用程序。 在Java中,用户权限管理通常...

    java权限控制

    这里的“java权限控制”主要指的是在Web应用程序中实施的安全策略,以保护敏感数据和操作。过滤器(Filter)是Java Servlet API提供的一种机制,常用于实现这种权限控制。下面将详细探讨这一主题。 1. **Java过滤器...

    java模块级通用权限

    "java模块级通用权限"是指一种能够应用于不同模块,具有高度可复用性和灵活性的权限控制框架。这种设计旨在为应用程序提供细粒度的访问控制,确保只有经过授权的用户或角色才能执行特定的操作。 **模块化设计** ...

    java 通用权限管理

    Java 通用权限管理系统是一种在Java平台上实现的,用于管理和控制应用程序访问权限的框架。它能够帮助开发者构建安全、可扩展的应用程序,确保只有授权的用户或系统能够执行特定的操作。在Java中,权限管理通常涉及...

    基于 java EE .Java权限后台管理系统.pdf

    Java EE 是一种企业级的应用开发平台,用于构建分布式、多层的Web应用程序。在这个基于 Java EE 的权限后台管理系统中,开发者使用了 Spring MVC、MyBatis 和 Apache Shiro 框架来实现权限管理和控制。这是一个典型...

    JAVA SSM项目 包含权限控制

    【标题】"JAVA SSM项目 包含权限控制"指的是一个基于Java的Web应用程序,它采用了Spring、Spring MVC和MyBatis(简称SSM)这三个主流的开源框架进行开发。这个项目是一个超市购物系统,其核心功能是实现线上购物的...

    Java基础应用实例

    在Java编程世界里,基础知识是构建复杂应用的基石。"Java基础应用实例"这个主题旨在为初学者提供一系列实用的示例,帮助他们理解和掌握Java编程的基本概念。这些实例覆盖了从简单的数据类型、控制结构到面向对象编程...

    SpringBoot 、Shiro、 自定义注解权限控制源码下载

    通过自动配置、起步依赖和内嵌Web服务器等功能,SpringBoot使得开发者可以快速创建独立运行的Java应用。在"SpringBoot-shiro"项目中,SpringBoot作为基础架构,提供了快速开发的环境。 Shiro是Apache开源组织提供的...

    《轻量级Java EE企业应用实战(第三版) 第4章第1节的源代码

    《轻量级Java EE企业应用实战(第三版)》是一本深入浅出的Java EE开发指南,旨在帮助开发者掌握在企业环境中构建高效、轻量级的应用程序。第四章的主题通常会涉及Java EE的核心技术,如Servlet、JSP、JDBC以及...

    java权限控制demo

    在Java开发领域,权限控制是实现安全访问控制的关键部分,特别是在构建企业级应用时。本示例"java权限控制demo"旨在演示如何在Spring、SpringMVC和Mybatis框架下实现用户权限管理。这些技术是Java Web开发中的常用...

Global site tag (gtag.js) - Google Analytics