我有一个使用pac4j的应用程序,并使用多个身份验证客户机来保护我的路由(直接和间接),如下所示:Secure("AnonymousClient", "FacebookClient", "JWTClient")。不过,我并不真正理解客户端的使用顺序。它似乎是从右到左的,如果没有一个客户端可以构建配置文件,则返回401。我说的对吗?授权者的顺序是一样的吗?
发布于 2021-07-18 22:24:45
看起来比这复杂得多。来自DefaultSecurityLogic.java中的评论:
首先,如果用户未经过身份验证(无配置文件),并且已在clients参数中定义了某些客户端,则将尝试直接客户端登录。
然后,如果用户有配置文件,则根据授权者配置检查授权。如果授权有效,则授予用户访问权限。否则,将显示403错误页面。
最后,如果用户仍未通过身份验证(无配置文件),并且第一个定义的客户端是客户端配置中的间接客户端,则用户将被重定向至适当的身份提供者。否则,将显示401错误页。
https://stackoverflow.com/questions/68428308
复制相似问题