请稍等 ...
×

采纳答案成功!

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

Shiro的executeLogin方法疑惑

在Filter类中的onAccessDenied方法中,如果token都没问题,我们会执行最后一步,就是调用executeLogin方法。
然后我看了一下executeLogin方法的源代码,如下图所示。 图片描述
在这个方法中,如果返回True的话,就是认证成功,然后返回到onAccessDenied是True。
如果返回False的话,就是认证失败, 然后返回到onAccessDenied就是False。 如下图所示。
图片描述
所以我不是很明白,onAccessDenied在最后调用了executeLogin方法,并且返回False的话,为什么也会出现授权失败呢?
而我的理解是,如果onAccessDenied在最后返回False,就是认证失败,是这样吗?
因为找了好久,在executeLogin方法中,没有看到会因为授权而返回失败的信息。

希望老师可以帮忙解答一下,谢谢老师。

正在回答

1回答

比如说你买了机票想要去坐飞机,但是先要换登机牌才能登飞机。token只是相当于用户买了机票能进入到机场,但是用户请求想要传递给web方法,必须要换取认证对象。executeLogin,相当于创建认证对象然后绑定到请求上,这样shiro才会放行请求,你才能执行web方法。executeLogin方法执行中发现你没有传递参数,它就抛出异常,没有别的复杂操作

1 回复 有任何疑惑可以回复我~
  • 提问者 慕哥0085313 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2021-01-25 07:03:12
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信