这里
我正在尝试为服务提供商生成SAML元数据,我创建了简单的servlet并尝试在methoad doGet()中生成元数据
这是我在下面尝试过的代码
import java.io.IOException;
import java.io.PrintWriter;
import java.net.HttpRetryException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.namespace.QName;
import org.opensaml.Configuration;
import org.opensaml.saml2.metadata.EntityDescriptor;
import org.opensaml.xml.XMLObjectBuilderFactory;
public class MetadataProviderServlet extends HttpServlet{
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
PrintWriter writer = response.getWriter();
response.setContentType("text/html");
writer.println("Hello world");
String entityId = "www.sampleEntityId.com";
XMLObjectBuilderFactory builderFactory = Configuration.getBuilderFactory();
EntityDescriptor descriptor = (EntityDescriptor)(builderFactory.getBuilder(EntityDescriptor.DEFAULT_ELEMENT_NAME).buildObject(EntityDescriptor.DEFAULT_ELEMENT_NAME));
descriptor.setEntityID(entityId);
}
}
但是当我使用一个应用程序服务器运行 Web 应用程序时,我在特别创建对象实体描述符时遇到了 NUllpointer 异常。任何人都可以弄清楚出了什么问题吗?
您需要先初始化 OpenSAML 库。OpenSAML 使用引导方法进行初始化。
DefaultBootstrap.bootstrap();
我在我的博客上写了这个