有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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

在卡塔琳娜登陆后。我发现在谷歌重定向到返回的url后,验证响应失败

VerificationResult verification = openIdService.getConsumerManager().verify(
                      receivingURL.toString(),
                      response, discovered);

Identifier verified = verification.getVerifiedId(); //Null

远程服务器上的verified值为null。在本地服务器上,它是一个uri

我知道,在处理响应时,ConsumerManager需要保持一致 用于放置身份验证请求的实例

代码的其余部分实现如下

有一个OpenIdController,其中OpenIdService是自动连接的

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

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

创建提交表单和处理响应的操作都写在 打开IDController并使用getConsumerManager方法访问consumerManager实例

编辑:

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

Debugging OpenId: Discovered (before) OpenID2
OP-endpoint:https://www.google.com/accounts/o8/ud
ClaimedID:null
Delegate:null
Debugging OpenId: Discovered (after) OpenID2
OP-endpoint:https://www.google.com/accounts/o8/ud
ClaimedID:null
Delegate:nul

我做错什么了吗?但它在本地服务器上工作

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

感谢您的帮助。如果需要,我可以发布代码

谢谢


共 (0) 个答案