问题标签 [openid4java]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1745 浏览

java - 使用 openid4java 进行“使用谷歌登录”时验证失败

我正在使用 openid4java 库在 spring-mvc 应用程序中实现“使用 google 登录”功能。

它在我的本地 tomcat 服务器上运行良好,但在远程服务器上它突然停止工作。在那之前它也工作得很好。

在 catalina.out 进行一些登录后,我发现在 google 重定向到返回 url 后,响应的验证失败

在远程服务器上验证的值为空。在本地服务器上,它是一个 uri

我知道在处理响应时,ConsumerManager 需要与用于放置身份验证请求的实例相同。

其余代码实现如下

有一个 OpenIdController,其中 OpenIdService 是自动装配的。

OpenIdServiceImpl 实现 OpenIdService 并具有返回 consumerManager 实例的 getConsumerManager 方法。

在 OpenIdServiceImpl 的构造中,创建了 ConsumerManager 的实例。

创建提交表单和处理响应的操作写在 OpenIdController 中,并使用 getConsumerManager 方法访问 consumerManager 实例。

编辑:

我尝试在表单提交之前记录发现信息,并在此处的回调中将其输出

我在这里做错什么了吗?但它适用于本地服务器!

或者与远程服务器上的 tomcat 配置有关?

任何帮助表示赞赏。如果需要,我可以发布代码。

谢谢。

0 投票
1 回答
1089 浏览

wicket - 从 Wicket 1.5 中的 PageParameters 获取地图

我正在尝试将使用 OpenId4Java 的应用程序迁移到 Wicket 1.5。使用迁移说明,我已经完成了所有工作。

除了一件事:在 Wicket 1.5 之前,PageParameters 是一个完美的地图,因为 OpenId4Java 的ParameterList将地图作为参数。

但是在 Wicket 1.5 中,我无法弄清楚如何从 PageParameters 中获取地图。通过 PageParameters NamedPairs 并制作一张地图并不难。但是创建一个类(在几个地方创建一个ParameterLists)感觉不是一个好的解决方案。

什么是更简单的解决方案?

-- 编辑 -- 为我解决问题的代码。

0 投票
0 回答
94 浏览

openid - 用于移动设备的 Javascript OpenID 选择器?

我之前使用openid4javaopenid-selector将 Open Id 身份验证集成到我的 Web 应用程序中。现在我正在开发针对移动网络应用程序优化的 UI。

可以推荐类似于 openid-selector 但面向移动 UI 的东西吗?

需要明确的是,现有解决方案适用于移动浏览器,但并未针对移动 UI 进行优化。

任何想法都非常感谢。

0 投票
0 回答
716 浏览

jsf - ConsumerManager.verify() 失败并显示“未找到与断言中的 ClaimedID / OP-endpoint 匹配的服务元素”。

我正在尝试在 JSF2 应用程序中实现 openid 身份验证,直到应用程序需要验证 openid-server 的响应(在我的情况下为 stackexchange)之前,一切似乎都运行良好。

我已经检查了 openid4java 源来调试和跟踪问题,但我似乎找不到它失败的原因。该代码基于来自 openid4java 网站的示例代码。

首先,我正在制定这样的请求:

我被重定向到https://openid.stackexchange.com/,我使用我的电子邮件和密码登录,stackexchange 将我重定向回 RETURN_URL,以下 servlet 正在等待:

这是我在 server.log 中得到的(RETURN_URL 替换为 mydomain.org):

我已经证实

  • 发送和接收部分上的 getManager() 是同一个对象
  • 两部分的 sessionId 相同

我已经与这个问题作斗争了 2 天,我似乎被困住了。我会非常感谢任何指点。

编辑:

我刚刚在 myopenid.com 上使用 openid 帐户测试了相同的代码,并且它可以工作。我真的很困惑现在的问题是什么:|

0 投票
1 回答
743 浏览

java - openid认证简单消费者

我正在做一个项目,其中一部分是 openid 身份验证。我正在使用 Java。我从以下站点下载了代码:

http://www.ibm.com/developerworks/java/library/j-openid/index.html,它说他使用了检票口。

我试图用tomcat服务器执行。我能够成功编译java文件。

但是当我尝试运行 openidregistration.html 并输入 www.myopenid.com 或 (http)://pratap533.myopenid.com 时,它根本没有响应。

我遇到了大麻烦,因为我必须完成这个项目才能获得学位。

我在类路径中包含了 openid4java.jar、joda-time.jar 和 wicket.jar 文件以及 C:\Downloads\FileServe Manager\openid4java-sample-app\src 所有这些文件。所以我编译了它们并成功了。

我在 webapps 中创建了 wicket 文件夹,并在其中放置了 web-inf。在 web-inf 中,我创建了 classes 文件夹,并将 web.xml 复制到 web-inf 文件夹中。

在课程中,我放置了所有 4 类的 wicket 文件夹。

当我尝试运行 openidregistration.html 并放入 www.myopenid.com 或 (http)://pratap533.myopenid.com 时,它根本没有响应......在 web.xml 文件中它带有 servlet 标签。那些标签我没有包括它们。

请任何人帮助我..

我想我需要使用 eclipse,但我没有得到什么问题。

0 投票
1 回答
349 浏览

openid - openid(gmail 或 myopenid)仅返回电子邮件

正如问题所说:)

这是我使用 openid4java 提出的请求:

这是我收到的回复。如您所见,名字和性别计数为 0:

我尝试将 myopenid 和 gmail 作为提供者,但它只发送电子邮件。当我的页面重定向时,从提供商页面中,它仅显示电子邮件作为我在代码中需要的一件事,但我添加了名称和性别。

我想获取电子邮件以外的信息,例如姓名、性别和出生日期。

Upadte:我使用了 sreg 扩展对象,我得到了三个值(姓名、电子邮件、昵称)但是仍然希望能够获得其他值,如地址......

0 投票
0 回答
1355 浏览

java - 在 Java 中使用 OpenID 进行身份验证失败

我正在尝试创建一个使用 OpenID4Java 进行 openId 身份验证的小型应用程序。

我能够成功地将用户重定向到 OpenID 提供程序站点以登录,但在返回 URL 时,其验证失败。

处理来自 openID Provider 的响应的方法是,

返回时,控制台中有以下失败消息。

0 投票
1 回答
1678 浏览

openid4java - OpenId4Java 不适合我

嗨,我正在为我的应用程序使用 openId4Java,但对于任何 URL,我都收到以下错误。请帮我解决这个问题。

谢谢 ...

例外

org.apache.jasper.JasperException:javax.servlet.ServletException:org.openid4java.discovery.yadis.YadisException:0x704:I/O 传输错误:连接到“https://www.google.com”被拒绝 org.apache。 jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:502) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

根本原因

javax.servlet.ServletException:org.openid4java.discovery.yadis.YadisException:0x704:I/O 传输错误:连接到“https://www.google.com”被拒绝 org.apache.jasper.runtime.PageContextImpl.doHandlePageException( PageContextImpl.java:865) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794) org.apache.jsp.index_jsp._jspService(index_jsp.java:214) org.apache.jasper.runtime.HttpJspBase。服务(HttpJspBase.java:70)javax.servlet.http.HttpServlet.service(HttpServlet.java:717)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)org.apache.jasper.servlet。 JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

根本原因

org.openid4java.discovery.yadis.YadisException:0x704:I/O 传输错误:连接到“https://www.google.com”被拒绝 org.openid4java.discovery.yadis.YadisResolver.retrieveXrdsLocation(YadisResolver.java:478) org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:248) org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:232) org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver. java:166) org.openid4java.discovery.Discovery.discover(Discovery.java:147) org.openid4java.discovery.Discovery.discover(Discovery.java:129) org.openid4java.consumer.ConsumerManager.discover(ConsumerManager.java: 542)openIdTest.security.LoginManager.Login(LoginManager.java:51)org.apache.jsp.index_jsp._jspService(index_jsp.java:154)org.apache.jasper.runtime。HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) org.apache.jasper。 servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

根本原因

org.apache.http.conn.HttpHostConnectException:连接到“https://www.google.com”被拒绝 org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:127) org.apache.http。 impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:147) org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:101) org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector. java:381) org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641) org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576) org.apache.http。 impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554) org.openid4java.util.HttpCache.head(HttpCache.java:335) org.openid4java.discovery.yadis。YadisResolver.retrieveXrdsLocation(YadisResolver.java:400) org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:248) org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:232) org.openid4java。 discovery.yadis.YadisResolver.discover(YadisResolver.java:166) org.openid4java.discovery.Discovery.discover(Discovery.java:147) org.openid4java.discovery.Discovery.discover(Discovery.java:129) org.openid4java。 consumer.ConsumerManager.discover(ConsumerManager.java:542) openIdTest.security.LoginManager.Login(LoginManager.java:51) org.apache.jsp.index_jsp._jspService(index_jsp.java:154) org.apache.jasper.runtime。 HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper。服务(JspServletWrapper.java:388) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http。 HttpServlet.service(HttpServlet.java:717)

0 投票
1 回答
171 浏览

grails - 如何在 OpenID 插件中升级 OpenId4Java jar 版本?

我已经为我的 Grails(v2.0.1) 应用程序安装了OpenID 插件(v0.4.3),但我无法通过 Google 作为 OpenID 提供程序进行身份验证。

我认为问题在于 OpenId4Java v0.9.4 没有正确处理 Google 的响应。前几天我在某个地方读到了这篇文章,但目前找不到参考资料(找到后会进行编辑)。

所以我想用更高版本升级插件具有的 OpenId4Java jar 的版本。但我不确定在哪里/如何做到这一点。

<home dir>/.grails/2.0.1/projects/<my project>/plugins/openid-0.4.3/lib文件夹中,jar 是java-openid-sxip-0.9.4.jar. 我在http://code.google.com/p/openid4java/的推荐下载中找到的是openid4java-0.9.6.jar.

我以前从来没有更换过插件提供的 jar,所以我只是想知道我应该把 0.9.6 jar 放在哪里,以及如何让我的应用程序识别它?

0 投票
1 回答
995 浏览

openid4java - openid4java 中的 NoClassDefFoundError

我已经下载了 openid4java-0.9.6.662 并使用它实现了一个类。当我执行时:

我得到一个

有趣的是这个类在任何 jar 中都找不到,以为它应该在 httpcore-4.0.1.jar 中找到,因为它包含相同包的类。该类在 httpcore-4.2.1.jar 中可用。但我已经尝试过了

据说是移植错误,应该使用以前的版本

使用这种方法的正确方法应该是什么?