我有一个使用第三方OpenID
提供商登录的工作“依赖方”应用程序。但是,如果我尝试使用使用 的“本土”OpenID
提供商登录,则不会在和org.openid4java.server.SampleServer
之间维护会话。beginConsumption
endConsumption
我可以看到成功的发现和关联,并在 springs 中实现了这一点OpenID4JavaConsumer
:
DiscoveryInformation information = consumerManager.associate(discoveries);
req.getSession().setAttribute(DISCOVERY_INFO_KEY, information);
但是在我的 OP 进行身份验证并response.sendRedirect
返回 RP 之后,在那里开始了一个新会话,并且我在以下位置失败了OpenID4JavaConsumer.endConsumption
:
DiscoveryInformation discovered =
(DiscoveryInformation) request.getSession().getAttribute(DISCOVERY_INFO_KEY);
if (discovered == null) {
throw new OpenIDConsumerException("DiscoveryInformation is not available. Possible causes are lost session or replay attack");
}
是什么导致这个新会话被创建,我怎样才能保留我的旧会话?