【问题标题】:How to authenticate and authorize an Android application with Apache Shiro如何使用 Apache Shiro 对 Android 应用程序进行身份验证和授权
【发布时间】:2013-11-28 12:15:43
【问题描述】:

我开发了一个带有 Rest 完整服务的 Java Web 应用程序,并且我已经集成了 Apache Shiro 用于会话管理,它在 Web 上运行良好。现在我开发了一个 android 应用程序,我能够与其余的完整服务进行通信。当我使用我的 android 应用程序登录时,Apache Shiro 为我提供了一个会话,但之后对于任何其他的完整调用,我使 SecurityUtils.getSubject().isAuthenticated() 返回 false。因为我是新手,所以我不知道如何使用 Apache Shiro 验证 android 应用程序

【问题讨论】:

    标签: java android restful-authentication shiro


    【解决方案1】:

    (我刚刚从另一篇关于该主题的帖子中复制了我的回复)

    您可以从您的 REST 服务器发回一个令牌(会话 ID),在成功登录后发布。然后,您的 iOS/Android 应用程序将需要存储此信息,并将其与它发出的每个 REST 请求一起发送。以下是登录后 REST 响应的示例:

    session-start-timestamp: 1394683755389,
    session-timeout: 1800000,
    session-id: "068C8E0E289788A7ABC5FE47B2CC0D28"
    

    session-id 将由您的 REST 服务器维护,每次带有此 id 的新请求进入时,都会重置其 TTL。

    在浏览器上,此 ID 会自动发送。对于您的情况,您可能希望在每个 HTTP 请求(这就是 REST 请求)中显式发送它 - 因为您没有将此令牌发送回 Shiro/REST 服务器,Shiro 认为您是一个新的未经身份验证的用户,因此, isAuthenticated 检查失败。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2014-07-17
      • 2015-12-24
      • 2013-05-16
      • 1970-01-01
      • 2011-11-19
      • 2014-09-05
      • 2014-07-09
      • 1970-01-01
      • 2015-06-29
      相关资源
      最近更新 更多