0

我有一个使用 pac4j 的应用程序并使用多个身份验证客户端来保护我的路由(直接和间接),如下所示:Secure("AnonymousClient", "FacebookClient", "JWTClient"). 我真的不明白客户端的使用顺序。它似乎是从右到左,如果没有客户可以建立配置文件,则返回 401。我对吗?授权人的顺序是否相同?

4

1 回答 1

1

似乎比这复杂得多。从 DefaultSecurityLogic.java 中的评论:

首先,如果用户未通过身份验证(无配置文件)并且如果在 clients 参数中定义了一些客户端,则尝试为直接客户端登录。

然后,如果用户有个人资料,则根据授权人配置检查授权。如果授权有效,则授予用户访问权限。否则,将显示 403 错误页面。

最后,如果用户仍然没有通过身份验证(没有配置文件),如果第一个定义的客户端是客户端配置中的间接客户端,他将被重定向到适当的身份提供者。否则,将显示 401 错误页面。

于 2021-07-18T14:24:44.740 回答