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