如何在我的 Google App Engine 项目中实现 OpenID 使用者?

Posted

技术标签:

【中文标题】如何在我的 Google App Engine 项目中实现 OpenID 使用者?【英文标题】:How do I implement an OpenID consumer in my Google App Engine project? 【发布时间】:2010-10-23 07:29:40 【问题描述】:

我想在我的 Java Google App Engine Web 应用程序中使用 OpenID,但我不知道从哪里开始...

我看过openid4java 和joid。

openid4java 说您必须将一些库放在“认可库”路径上。我的电脑本地没有,而且我肯定不知道如何 在 Google App Engine 上执行此操作。

joid 看起来很简单,但看起来不是最新的或其他什么,因为当我尝试获得身份验证时,我从 Google 收到了 HTTP 400。

任何指针?

【问题讨论】:

【参考方案1】:

http://code.google.com/p/dyuproject/

【讨论】:

【参考方案2】:

如果您可以通过 rpxnow.com,将 http://appengine-cookbook.appspot.com/recipe/accept-google-aol-yahoo-myspace-facebook-and-openid-logins/(它提供了一种 Python 应用程序引擎的方式)翻译成应用程序引擎 Java 应该很容易。如果解析 json 有问题,您还可以从 rpxnow.com 请求 xml 结果。有关 RPX API 的更多信息,请参阅 https://rpxnow.com/docs。

【讨论】:

这个链接很棒。谢谢亚历克斯!【参考方案3】:

对于 openidjava 库,您只需将其包含在您的项目中即可。如果您使用的是 Eclipse(它有一个很棒的 GWT 和 App Engine 插件)。将 openidjava 文件粘贴到您的 src 目录或 WEB-INF/lib 目录中的 jar 中,并确保将其添加到您的类路径中。

【讨论】:

类路径还是构建路径?因为我在 buildPath 上有库,但是在尝试实例化 ConsumerManager 时会遇到有关某些 XML 安全性的异常 在检查了最新的 openid4java 并构建了一个新的 jar 之后,它就可以工作了。【参考方案4】:

好吧,我知道这是一个老问题,但我现在正在尝试让 openid4java 在 App Engine 上运行,但它无法正常工作。 似乎它使用了一个“HTTPClient”库来启动一个新线程,因此 App Engine 抛出了一个异常。

因此,如果您打算在 App Engine 上使用 openid4java,请先查看是否有解决方案。我只是找不到一个:(

您可以更详细地查看问题here 和here。

希望对你有帮助!

【讨论】:

显然,最近在 svn 中已通过使 HTTP 客户端代码 openid4java 使用“可插入”来解决此问题。见opensource.bamboo.atlassian.com/browse/OPENID-OPENID4JAVA-338/…

以上是关于如何在我的 Google App Engine 项目中实现 OpenID 使用者?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Google App Engine 中包含 Stripe 库

如何在 Google App Engine 中解析 JSON?

如何将使用 Google App Engine 构建的应用程序移动到 Ubuntu 服务器?

如何将私有、自托管的 NPM 包与 Google App Engine 节点、标准环境一起使用

Google App Engine 上的 Ruby on Rails 应用程序

我如何从Google App Engine中触发一个HTTP云函数?