请稍等 ...
×

采纳答案成功!

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

店铺权限的验证不生效???

图片描述图片描述

如果是从商品管理页改shopid进去,就获取不到店铺信息

图片描述如果是店铺信息页里面改shopid,就能获取到了不是该用户的店铺信息了?
所以这个店铺的验证是生效了嘛?这个shopid不是该用户下的店铺

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

1回答

翔仔 2019-11-22 00:44:35

同学好,这里表述看起来有点绕,我总结一下是在自己的某些页面里面能通过修改店铺id看到他人的店铺信息,而有些页面不行吗?如果是这样的话,看看是不是有的页面请求被拦截器排除了导致没去做权限校验?

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_独闭关中_0 #1
    也差不多是这个意思了吧,如果是从商品管理页改了id,虽然没什么变化,商品信息、商品管理、类别管理还在,但是点击商铺信息进去是获取不到商店信息,这个拦截器生效了,就是从第一张图片改了id再点击到第二张图片,如果是在商店信息页里面改了id,就能获取到别人的商铺信息,也就能改别人的了,就是在第三张图片直接改id,断点调试发现在商店信息页改id,就是在第三页改id,在拦截器上Shop currentShop = (Shop) request.getSession().getAttribute("currentShop");获取到的店铺id并不是修改后的id还是修改之前的id,比如说点击id=10的店铺进来,在图三把id改为1,而在 从session中获取当前选择的店铺id还是10,而在执行了shopadmin/getshopbyid方法后Long shopId = HttpServletRequestUtil.getLong(request, "shopId");获取前端传来的id就是1,就能查看别人店铺的信息了
    回复 有任何疑惑可以回复我~ 2019-11-22 20:28:37
  • 翔仔 回复 提问者 qq_独闭关中_0 #2
    确实有这样的一个小bug,咱们程序的权限控制做得比较简单,不过也仅限能看到别人的店铺信息,但是应该是修改不了的。如果想精准控制的话,可以在获取到店铺信息的时候,取出对应店铺的店家或者雇员信息,然后对比一下和session里面的本人信息是否一致,不一致则拒绝
    回复 有任何疑惑可以回复我~ 2019-11-23 01:31:00
  • 提问者 qq_独闭关中_0 回复 翔仔 #3
    可以修改的,我把店铺的拦截器搬来/getshopid这个路由下再验证一次就不能查看了,老师,本来是想Shop shop = shopService.getByShopId(shopId);通过shopId查出来的shop实体再通过shop.getOwner().getUserId();获取店铺用户的id,再和当前session里的用户id是否一致,不一致就返回false,然而查出来的Owner=null,这是为什么?
    回复 有任何疑惑可以回复我~ 2019-11-23 14:18:33

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信