我试图使用google OpenId提供程序在Java语言中实现Openid。我读到我们需要做response.sendRedirect()
这将返回一个XML文档,这意味着它要求我保存一个XRDS文档。我不知道如何在servlet中处理这个文档。如果有人解决这个简单的问题,那将是非常有帮助的。
发布于 2013-07-08 14:54:11
不知道你是否知道openid4java --它是一个openid库,它应该具有你正在寻找的功能。不管您是否决定使用这个库,看看这个sample consumer code,它应该让您知道如果决定不使用这个库,如何自己检索和解析XRDS。
例如,使用openid4java库,您可以使用如下所示的简单内容获取谷歌端点:
import java.util.List;
import org.openid4java.consumer.ConsumerManager;
import org.openid4java.discovery.DiscoveryException;
import org.openid4java.discovery.DiscoveryInformation;
public class XRDSConsumer {
public static void main(String[] args) {
ConsumerManager manager = new ConsumerManager();
try {
//get XRDS from Google discovery url
List<DiscoveryInformation> discoveries =
manager.discover("https://www.google.com/accounts/o8/id");
for(DiscoveryInformation info: discoveries) {
//will get something like: https://www.google.com/accounts/o8/ud
System.out.println(info.getOPEndpoint());
}
} catch (DiscoveryException e) {
e.printStackTrace();
}
}
}https://stackoverflow.com/questions/17498663
复制相似问题