controller里的setUsername在service层一点用处都没

来源:6-7 更新用户个人信息功能开发

慕先生5272158

2021-08-01

图片描述
图片描述
在controller中设置了username,这意义何在?在service里完全没用到啊,搞不清这逻辑

写回答

1回答

欧阳文轩

2021-08-04

老师写的代码在这里确实是存在问题的,问题是通过该接口修改完用户信息后,session中的用户信息会丢失username,role,createTime和updateTime这几个属性。

controller中老师获取到session中的userId和username,并将其传给service是为了防止用户越权,盗用他人的userId或username进行用户数据篡改。在service中老师针对id和email进行了判重就是此目的,有了该判断逻辑已经足够防止用户越权,无需再对username进行判重判断了,但是在service回传user对象给controller时,回传的user对象内容不完整,只包含了老师set的几个值,前文提到的几个属性并未在其中,所以,该更新接口调用后,session中的用户信息会出现不完整的情况。

此处可能是老师遗漏了,建议在service中,update逻辑完成并确认成功后,重新根据userId查询到完整的user信息,并回传controller。

1
0

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

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

9476 学习 · 8804 问题

查看课程