管理员权限判定

来源:7-2 添加分类和更新分类名字功能开发

三又十二分之四

2019-07-22

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

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

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

写回答

1回答

geelylucky

2019-07-22

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

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

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

0
1
三又十二分之四
1 . 的意思是,在除了addCategory( )的方法中可能调用到checkAdmin,但可能其他方法本身不会有空判断,所以,checkAdmin自己必要有。 如果只对addCategory() 方法,这里有一个空判断就是够的对吗? 2. 保证信息同步:是指这个用户数据库权限更新了,但是浏览器session可能还没更新的意思吗? 3.理解了。
2019-07-22
共1条回复

从0开始 独立完成企业级Java电商网站服务端开发

前后端分离,数据库接口设计,架构设计,功能开发,上线运维

9476 学习 · 8804 问题

查看课程