【问题标题】:Apache shiro - How to support multiple user types with individual database tablesApache shiro - 如何使用单个数据库表支持多种用户类型
【发布时间】:2015-07-02 12:54:41
【问题描述】:

我正在使用Java / Spring / Apache Shiro 开发一个网络项目, 在 3 个单独的数据库表中有 3 种不同的用户类型,2 种用户类型从网页登录,1 种用户类型从移动设备登录。

我已经实现了一个扩展AuthorizingRealmRealm,但我似乎很难提供一个单一的Restful API 来让3 种用户类型登录。

我目前的想法是:

定义一个扩展UsernamePasswordToken的新token类,并添加一个新字段accountType,当用户登录时首先检查帐户类型参数,然后决定查询哪个表,并使用accountTypeusername的组合作为Principal

我的问题是:

  1. 上述想法可行吗?或者我应该如何改进?
  2. 我应该如何为 3 个不同的用户定义 loginUrl,尤其是对于移动客户端,它应该是 json result 而不是 url,对吧?

【问题讨论】:

    标签: java spring authentication shiro


    【解决方案1】:

    我已经解决了这个问题。

    这是我所做的:

    • 实现UsernamePasswordToken,并添加accountType字段。
    • 使用accountType:username 作为主体。需要重写相关方法。
    • 登录时,用户需要提供accountType参数。
    • 查询db时,根据accountType查询不同的表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-19
      • 2015-12-13
      • 2018-07-27
      • 1970-01-01
      • 2015-11-22
      • 2019-11-26
      • 2012-12-04
      • 1970-01-01
      相关资源
      最近更新 更多