我正在使用openid4java库在spring-mvc应用程序中实现'使用google登录'功能。使用openid4java进行'使用google登录'时验证失败
它在我的本地tomcat服务器上正常工作,但在远程服务器上突然停止工作。在那之前它工作得很好。
在catalina.out中做一些记录后,我发现,谷歌重定向到返回URL
VerificationResult verification = openIdService.getConsumerManager().verify(
receivingURL.toString(),
response, discovered);
Identifier verified = verification.getVerifiedId(); //Null
的验证值是在远程服务器上的空后的反应的验证失败。在本地服务器上它的一个URI
我知道,在处理响应时,ConsumerManager需要与用于放置身份验证请求的实例相同 。
的代码的其余部分如下
有一个OpenIdController其中OpenIdService是自动装配Autowired被实现。
OpenIdServiceImpl实现OpenIdService并具有返回consumerManager实例的getConsumerManager方法。
在OpenIdServiceImpl的构造中,创建了一个ConsumerManager实例。
创建提交表单并处理响应的操作写入 OpenIdController中,并使用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配置有关?
任何帮助表示赞赏。如果需要,我可以发布代码。
谢谢。
你确定你提供DiscoveryInformation'您关联期间得到了_same_'? (我假设没有'verify(...)'抛出异常) – Osw
我已经编辑了DiscoveryInformation日志输出的问题。谢谢 – naiquevin