请稍等 ...
×

采纳答案成功!

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

关于过滤器拦截的代码

视频8分15秒老师在StationController的RequestMapping注解上加上了”/admin",但是我感觉,这里过滤器不应该按后端接口来选择是否要拦截吧?我觉得是不是应该通过访问接口的前端url来判断是否要拦截吧。按照视频中的做法的话,那我岂不是web端也可以随便访问station的接口了吗?所以我感觉,应该是把locahost:9001这个url对后端接口的访问全部放行,这样判断才对吧?
这是我个人的理解,说得不对的话请老师指正

正在回答

1回答

我觉得是不是应该通过访问接口的前端url来判断是否要拦截吧”这句话我不太理解你的意思。

接口的拦截都是在后端,后端是不会判断从哪个前端来源的,所以统一用前缀来判断,访问带/admin的就表示是内部控台才能访问,访问/api就表示是开放给第三方的,当然,我们要根据/admin和/api做不同的权限设置

0 回复 有任何疑惑可以回复我~
  • 抱歉老师我可能没表达清楚,我的意思就是判断这个请求的来源。
    比如我们的控台端的url不是localhost:9001吗,就判断请求是不是从localhost:9001发过来就完了。老师的思路是请求的接口是带/admin的就放行,我感觉这样的话不会有安全问题吗。这样的话实际上我们的web端也可以随便访问这些带/admin的接口了,当然逻辑上我们当然不会让web端去调用这些接口,但是从技术上讲这个是可行的吧,web端有权限随便访问带/admin的接口。所以我觉得应该是判断请求来源是不是localhost:9001,而不是判断访问的接口是不是带/admin的。
    回复 有任何疑惑可以回复我~ 2023-08-24 14:38:24
  • 不是/admin就放行,而是针对/admin有一套权限校验,针对/api有另一套校验。
    根据来源的话,一方面经过SLB、gateway之后,有些还会加一层nginx反向代理,很难获得准确的来源,另一方面,会不会被伪造来源呢?
    回复 有任何疑惑可以回复我~ 2023-08-24 16:12:47
  • 明白了,那是我之前理解错了老师课程中的意思了。谢谢老师
    回复 有任何疑惑可以回复我~ 2023-08-24 16:15:05
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号