Shiro的executeLogin方法疑惑

来源:3-9 创建OAuth2Filter类(二)

慕哥0085313

2021-01-24

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

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

写回答

1回答

神思者

2021-01-24

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

1
1
慕哥0085313
非常感谢!
2021-01-25
共1条回复

SpringBoot 在线协同办公小程序开发 全栈式项目实战

未来趋势型业务 + 前后端综合技术栈 + 惊艳的细节打磨

1812 学习 · 1924 问题

查看课程