使用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) 个答案