一种别样的鉴权方式 注解 + 接口 + 枚举 妙用
2014-08-05 17:12
501 查看
/** * Authentication interface * @author keane * */ public interface IIdentify { String INFO = "no permiss"; public boolean verify(); }
定义权限说明接口。
/** * Authentication impl * * @author keane * */ public enum IdentifyType implements IIdentify{ //level READER(true),AUTHOR(true),ADMIN; private boolean allow; private IdentifyType() { this.allow = false; } private IdentifyType(boolean allow) { this.allow = allow; } //impl @Override public boolean verify() { return allow; } }
使用枚举实现鉴权接口,并定义三种权限的枚举类型
import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface Access { //what's access IdentifyType level() default IdentifyType.READER; }
鉴权注解定义
/** * access entity * @author keane * */ @Access(level=IdentifyType.AUTHOR) public class FaceBook { }
使用注解
public class Test { /** * @param args */ public static void main(String[] args) { if(FaceBook.class.isAnnotationPresent(Access.class)){ Access access = FaceBook.class.getAnnotation(Access.class); if(access == null || !access.level().verify()){ System.out.println("no," + access.level().INFO); }else{ System.out.println("yes,welcome!"); } }else{ System.out.println("nothing!"); } } }
使用测试
相关文章推荐
- servlet调用spring容器中的bean,的两种方式一种注解一种xml配置
- servlet调用spring容器中的bean,的两种方式一种注解一种xml配置
- Mybatis XML和接口注解 两种方式CURD
- 关于注解方式 进行鉴权
- 写接口请求类型为get或post的时,参数定义的几种方式,如何用注解(原创)--雷锋
- servlet调用spring容器中的bean,的两种方式一种注解一种xml配置
- 一种优秀的放置枚举的编码方式
- 注解的方式发布接口,解析XML及返回
- 11_注解03_用注解方式决定接口的实现类
- mybatis源码学习--spring+mybatis注解方式为什么mybatis的dao接口不需要实现类
- 线程:创建线程有两种方式,一种是继承Thread类,另一种是实现Runnable接口。代码如下:
- mybatis源码学习--spring+mybatis注解方式为什么mybatis的dao接口不需要实现类
- Hibernate 注解方式 save后获取不到对象id一种情况
- spring mybatis mapper接口注解方式注入
- 在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取。这里主要讲这个注解
- SSH向Dao接口的实现类中用注解和声明方式注入创建HibernateTemplate对象
- 注解的作用目标 类(接口 枚举) 方法 构造器 参数 局部变量 包(但是不能直接放在上面)
- url里含有中文参数,已get方式提交到接口,中文编码后有乱码问题的一种解决
- mybatis源码学习--spring+mybatis注解方式为什么mybatis的dao接口不需要实现类
- 使用注解方式实现Dubbo搭建,解决消费者调用接口出现空指针异常以及事务等问题