2013-11-15 34 views
1

我开发了一个具有Rest完整服务的Java Web应用程序,并且我为会话管理集成了Apache Shiro,并且它对Web的工作正常。现在我开发了一个Android应用程序,并且能够与其余的完整服务进行通信。当我用我的android应用程序登录时,Apache Shiro为我提供了一个会话,但在此之后,对于任何其他休息充分的呼叫,我使SecurityUtils.getSubject().isAuthenticated()返回false。由于我新我不知道如何使用Apache四郎验证Android应用程序如何使用Apache Shiro对Android应用程序进行身份验证和授权

回答

1

(我只是复制我的回应来自另一篇文章的话题到此)

您可以发送回一个令牌(会话ID )从您的REST服务器发送,成功登录后。然后,您的iOS/Android应用程序将需要存储此信息,并将其发送给每个REST请求。这里是您登录后REST响应可以是什么样:

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

会话ID会被你的REST服务器进行维护,其TTL将重置每一个具有此ID的新请求到来时

在浏览器上,此ID会自动发送。对于你的情况,你会希望明确地发送它与每个HTTP请求(这是什么REST请求) - 因为你没有发送这个令牌回Shiro/REST服务器,Shiro认为你是一个新的未经验证的用户,因此, isAuthenticated检查失败。

希望这会有所帮助

相关问题