如何使用Apache Shiro对Android应用程序进行身份验证和授权

时间:2013-11-15 07:07:52

标签: java android restful-authentication shiro

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

1 个答案:

答案 0 :(得分:1)

(我刚刚将关于该主题的另一篇文章的回复复制到此)

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

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

会话ID将由您的REST服务器维护,每当有此ID的新请求进入时,其TTL将被重置。

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

希望这有帮助