如何使用 Shiro 验证基于 cookie 或 facebook 的用户?

Posted

技术标签:

【中文标题】如何使用 Shiro 验证基于 cookie 或 facebook 的用户?【英文标题】:How to use Shiro for authenticating cookie based or facebook user? 【发布时间】:2011-07-24 11:47:11 【问题描述】:

在我的 Web 应用程序中,我没有用户注册/登录。我所拥有的是用户帐户是在用户第一次访问该站点时基于 cookie 自动创建的。为此,我如何使用 Shiro 来验证这样的用户(并利用它的其他网络安全功能)?

如果用户选择通过 Facebook connect 登录,那么我如何在这种情况下使用 Shiro?

【问题讨论】:

【参考方案1】:

好的,在 JohnS 告诉我链接的博客文章不起作用并且经过一段时间后,我重新编写了答案。

据我了解,Apache Shiro 不支持(在撰写本文时)OAuth,请参阅 SHIRO-21 和 SHIRO-119 以及它们上的 cmets。

有两个库可以简化 OAuth,Scribe 和 pac4j。

GAEShiro 使用 Scribe,其中包括 scribe 和 Shiro 之间的桥梁。 Pac4J 由buji-pac4j 使用,它是 Apache Shiro 的 Web 多协议客户端。在链接页面上是一个带有 Facebook 身份验证的演示,请参阅here。我建议从这个演示开始。

请务必阅读Facebook OAuth 2.0 和Server-Side Authentication)。如果您想让您的网站使用 OAuth 2.0,那么您必须按照链接上的指南进行操作。

还有提到的blog post,或者你可以使用Spring security 和Spring social,见Signing in with Service Provider Accounts。

【讨论】:

以上是关于如何使用 Shiro 验证基于 cookie 或 facebook 的用户?的主要内容,如果未能解决你的问题,请参考以下文章

服务器如何验证基于会话的 cookie 是真实的?

如何使用 Apache Shiro 实现基于 JWT 令牌的身份验证机制?

用于保护 REST api 的 Apache Shiro

Apache shiro:使用 ldap 进行用户身份验证,使用数据库获得角色/权限?

简单两步快速实现shiro的配置和使用,包含登录验证角色验证权限验证以及shiro登录注销流程(基于spring的方式,使用maven构建)

如何使用基于 cookie 的身份验证授权 Web API