我正在尝试使用 OpenSAML2 库设置我的服务提供者。我正在尝试设置一个 servlet,它将接受来自用户浏览器的 HttpRequest,并根据我想创建一个 SAML 身份验证请求数据包的请求参数。
我能够创建 SAML 数据包,但是我想对 SAML 进行 Base64 编码,以便我可以将用户浏览器重定向到身份提供程序服务器。为此,我尝试使用“org.opensaml.saml2.core.impl.AuthnRequestMarshaller#marshall(AuthnRequest)”来编组 SAML 身份验证请求。
当我在 Web 服务器环境(独立的 JAVA 应用程序)之外尝试它时,它工作得很好。但是,当我将它作为 servlet 组件运行时,我收到一条错误消息:“No marshaller available for {urn:oasis:names:tc:SAML:2.0:assertion}Issuer, child of {urn:oasis:names:tc:SAML:2.0 :protocol}AuthnRequest”,其中 Issuer 是 AuthnRequest 对象的一个组件。
我正在使用 Tomcat 5.5.34 网络服务器。如果有人能帮我弄清楚这里发生了什么,那就太好了。它也会帮助其他人尝试编写自己的服务提供者。令人惊讶的是,可用于此的文档非常少。
谢谢,考斯图布