请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

管理员权限判定

老师
权限判定有三个问题
1、如图
图片描述
图片描述
已经在Controller 做了User的非空判断,为什么在service还要做一次?

2、校验权限时,是直接利用session中数据的 role 字段,会不会被篡改,一个普通用户权限改成 1 管理员
有没有必要,根据session中的currentuser 的id ,name查找他数据库中的权限,来校验权限?

3、checkAdmin()作为service层的方法,返回值给controller,不回传给前端,我能不能返回值不传ServerResponse ,就简单的传个true和false?

正在回答 回答被采纳积分+3

1回答

geelylucky 2019-07-22 20:11:48
  1. 因为checkAdmin是复用的,所以你不能保证所有调用的方法都会提前做判断,所以作为独立的功能,它就不能依赖调用者。

  2. 这个要看具体的实现原理,假如只在session存储一个userId,就需要通过这个userId查询数据库来验证权限,假如把整个用户实体包括权限存储进session,那就不需要再次查询,前提是用户信息保证同步的情况下。

  3. 这个要看你自己的实现,逻辑说的通都是可以的。

0 回复 有任何疑惑可以回复我~
  • 提问者 三又十二分之四 #1
    1 . 的意思是,在除了addCategory( )的方法中可能调用到checkAdmin,但可能其他方法本身不会有空判断,所以,checkAdmin自己必要有。 如果只对addCategory() 方法,这里有一个空判断就是够的对吗?
    
    2. 保证信息同步:是指这个用户数据库权限更新了,但是浏览器session可能还没更新的意思吗?
    
    3.理解了。
    回复 有任何疑惑可以回复我~ 2019-07-22 21:46:15
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信