采用long型数据的每一个二进制位代表一种权限,进行票据权限保存、取消、认证
来源:互联网 发布:jenkins 数据库插件 编辑:程序博客网 时间:2024/05/21 13:58
/**
* 类名: TicketHelper <br/>
* 功能: TODO 凭证认证辅助类
* 使用long 数据类型的1-63位二进制位来表示63项权限 ,
* 1.表示有该项权限,0表示没有该项权限
* 例如,ticket:1010 对应的十进制数为10,表示有第二和第四项权限
* 类名: TicketHelper <br/>
* 功能: TODO 凭证认证辅助类
* 使用long 数据类型的1-63位二进制位来表示63项权限 ,
* 1.表示有该项权限,0表示没有该项权限
* 例如,ticket:1010 对应的十进制数为10,表示有第二和第四项权限
* ticket:111 对应的十进制数为7,表示有第一、二、三项权限
public class TicketHelper {/** * initTicket:获取最初凭证 <br/> * @author jiangy * @return */ public static Long initTicket(){return 0L;}/** * saveTicket:保存凭证,多次保存不会对最后凭证造成影响,每次的保存结果只改变postion位置的二进制位为1<br/> * @author jiangy * @param ticket 原始凭证 * @param position 保存位置 * @return 最新凭证 * @throws Exception */ public static Long saveTicket(Long ticket ,long position) throws Exception{ticket = check(ticket,position);return ticket|(1<<(position-1));}/** * cancelTicket:(取消凭证).多次取消不会对最后凭证造成影响,每次的保存结果只改变postion位置的二进制位为0 <br/> * @author jiangy * @param ticket 原始凭证 * @param position 取消位置 * @return 最新凭证 * @throws Exception */ public static Long cancelTicket(Long ticket ,long position)throws Exception{ticket = check(ticket,position);return ticket&(~(1<<(position-1)));}/** * checkTicket:(凭证认证,返回true,表示有该项权限,false,表示没有该项权限). <br/> * @author jiangy * @param ticket 凭证 * @param position 位置 * @return * @throws Exception 可能超出最大位置63位 */ public static boolean checkTicket(Long ticket ,long position)throws Exception{ticket = check(ticket,position);return (ticket&(1<<(position-1))) >0 ;}/** * check:凭证和权限位置长度检查. <br/> * @author jiangy * @param ticket * @param position * @throws Exception */ private static Long check(Long ticket ,long position) throws Exception{if(ticket == null){ticket = 0L;}if(position > 63){throw new Exception("位置超出最大值63");}return ticket;}}
0 0
- 采用long型数据的每一个二进制位代表一种权限,进行票据权限保存、取消、认证
- ASP.NET内置票据认证(实现登录权限的判定)
- ASP.NET内置票据认证(实现登录权限的判定)
- 采用BigInteger进行的权限设计
- 采用BigInteger进行的权限设计
- 【权限设计】采用BigInteger进行的权限设计
- 采用ApacheShiro来实现应用的权限认证
- Restful安全认证及权限的一种解决方案
- 实现数据权限控制的一种方法
- 权限的认证类
- 二进制位运算实现权限系统
- apche运用LDAP进行权限认证
- 权限认证
- 权限认证
- 文件权限数字所代表的信息
- linux中文件权限代表的意义
- 采用shiro实现登录认证与权限授权管理
- 基于身份验证票据的权限系统的实现
- 屏蔽backspace键和浏览器回退按钮
- 数据库分库分表(sharding)系列
- 在 Outlook 中,为什么附件有时候显示在邮件正文中,有时候显示在标题中?
- C++读写.mat文件
- cacai安装与配置
- 采用long型数据的每一个二进制位代表一种权限,进行票据权限保存、取消、认证
- 线程的分离状态
- springMVC3学习(五)--MultiActionController
- word与excel的结合使用
- Ruby on Rails 查询数据库 where 和 find 的区别
- java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
- JBPM工作流
- 深度剖析迅捷产品评估
- 日期控件(只要年月)