Shiro:是否可以在 doGetAuthenticationInfo(AuthenticationToken token) 中获取 URL

Shiro: Is it possible to get the URL in doGetAuthenticationInfo(AuthenticationToken token)

我正在尝试在 google appengine 上使用 Jersey 框架创建一个 RESTful 网络服务。我正在使用 apache shiro 进行身份验证。

假设我有以下场景:

  1. 有一个预先配置的管理员用户,它创建其他用户并离线向每个用户提供用户名和密码。
  2. 对于普通用户,有一些 REST API。有一个API: GET /tokenInfo 应使用用户名和密码进行身份验证,return 用户 ID 和令牌作为响应。
  3. 对于所有其他 REST API,我希望用于身份验证的凭证是 UserId 和 Token,而不是用户名和密码。
  4. 所以基本上它是一个场景,其中用于身份验证的凭据对根据 API。

我怎样才能在 shiro 中实现这个。据我了解,doGetAuthenticationInfo() 会传递客户端发送的凭据并希望您进行验证,但在这种情况下,我需要知道调用了哪个 API。那么有没有办法得到URL? 如果不是那么还有什么其他方法可以实现这个?

听起来您需要创建一个自定义过滤器来构建您想要传递给您的领域的令牌类型,以其中一个默认值为例: https://shiro.apache.org/web.html#default-filters