【发布时间】:2021-09-26 09:32:59
【问题描述】:
我有一个使用 pac4j 的应用程序并使用多个身份验证客户端来保护我的路由(直接和间接),如下所示:Secure("AnonymousClient", "FacebookClient", "JWTClient")。
我真的不明白客户端的使用顺序。它似乎是从右到左,如果没有客户可以建立配置文件,则返回 401。我对吗?
授权人的顺序是一样的吗?
【问题讨论】:
标签: pac4j
我有一个使用 pac4j 的应用程序并使用多个身份验证客户端来保护我的路由(直接和间接),如下所示:Secure("AnonymousClient", "FacebookClient", "JWTClient")。
我真的不明白客户端的使用顺序。它似乎是从右到左,如果没有客户可以建立配置文件,则返回 401。我对吗?
授权人的顺序是一样的吗?
【问题讨论】:
标签: pac4j
似乎比这要复杂得多。来自 DefaultSecurityLogic.java 中的 cmets:
首先,如果用户未通过身份验证(没有配置文件)并且如果某些 客户端已在客户端参数中定义,尝试登录 对于直接客户。
然后,如果用户有个人资料,则根据以下内容检查授权 授权人配置。如果授权有效,则 用户被授予访问权限。否则会显示 403 错误页面。
最后,如果用户仍然没有通过身份验证(没有配置文件),他是 如果第一个定义,则重定向到适当的身份提供者 客户端是客户端配置中的间接客户端。否则,一个 显示 401 错误页面。
【讨论】: