老生常談-權限控制的一些話題

權限判斷一向蔸諟大伙儿常谈的话题啦。偶列举一下比较常见的做法吧(注意,是常见的)

数据库端最简单的可能 是会建 权限实体表、角色表、用户表,偶称其为权限基础表、以及三者之间的关联表。

当然复杂一点的有url到权限或者角色的关联表,用以管理url访问的权限控制。

或者一些其他资源与权限基础表之间的关联,总之就是做一些与具体业务挂钩的扩展啦。

 

茬后代代码端,多半会在某一处施加拦截器用以做权限判断吧。

例如用xwork的拦截器拦截action,通过当前用户色角色以及Action的访问url路径 再加上权限实体三者之间的映射关系来判断用户是否有访问Action的权利。

当然也有用AspectJ的方式来实现,不过原理是一样的。

 

在前台页面上,首先说导航菜单这一块儿。后台肯定是有一个导航菜单表跟角色关联啦,不同的角色登陆进来能看到不同的菜单。这不是问题,因为几个简单的迭代就出菜单啦。

 

最麻烦就是业务页面上这一块儿,按钮级的权限控制,真的是很麻烦呢。

很多人怕麻烦,直接省略掉前台按钮级的权限控制,如果你点了你不能点的按钮,就给个提示说“你不够格”。

 

但理论上,应该直接屏蔽掉这个按钮是最好的,但是应该怎么做呢?

硬编码,偶肯定会被人说菜菜啦。

 

偶目前想到的是用tag的方式。但使用范围太窄了呀。并且,一旦用了tag,前台页面就依赖于这个tag了,换句话说,以后要是决定不用tag了,还很麻烦滴。再者,在我的tag还没出来以前,人家做业务的就没法动手写页面了。因为写了以后还得改,这也是偶不想看见的。

 

有没有类似于AOP一样的无侵入式的方法,能够很优雅的解决视图层的权限控制的问题呢?偶想虚心学习哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值