Null Pointer Exception from UnmarshallerFactory while migrating from OpenSAML2.x to OpenSAML3.x
DD K
ddk05361 at gmail.com
Thu Aug 8 00:41:37 EDT 2019
Hi Brent,
I've been able to debug the process and found out that I have got null from
unmarshallerFactory.getUnmarshaller(element) because there has been no
unmarshaller registered to unmarshall the element. Can you suggest a way to
manually register an unmarshaller for the element (any resource that i can
refer). So my request is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<samlp:AuthnRequest AssertionConsumerServiceURL="
http://localhost.com:8080/saml2-web-app-pickup-dispatch.com/home.jsp"
Destination="https://localhost:9443/samlsso" ForceAuthn="false"
ID="fnhigdbcehpepkchcpbacfooiadpciniicamhckg" IsPassive="true"
IssueInstant="2019-08-08T04:40:07.949Z"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Version="2.0"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"><samlp:Issuer
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:assertion">
saml2-web-app-pickup-dispatch.com</samlp:Issuer><saml2p:NameIDPolicy
AllowCreate="true"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
SPNameQualifier="Issuer"
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"/><saml2p:RequestedAuthnContext
Comparison="exact"
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"><saml:AuthnContextClassRef
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef></saml2p:RequestedAuthnContext></samlp:AuthnRequest>
Any answers answers would be appreciated,
Thanks,
Deshan Koswatte
On Thu, Aug 8, 2019 at 4:21 AM Brent Putman <putmanb at georgetown.edu> wrote:
>
> On 8/6/19 1:30 AM, DD K wrote:
>
>
> The exception is thrown from the code snippet at the commented line:
>
> public static XMLObject unmarshall(String authReqStr) throws IdentityException {
> InputStream inputStream = null; try {
> doBootstrap(); DocumentBuilderFactory documentBuilderFactory = IdentityUtil.getSecuredDocumentBuilderFactory(); DocumentBuilder docBuilder = documentBuilderFactory.newDocumentBuilder(); inputStream = new ByteArrayInputStream(authReqStr.trim().getBytes(StandardCharsets.UTF_8)); Document document = docBuilder.parse(inputStream); Element element = document.getDocumentElement(); UnmarshallerFactory unmarshallerFactory = XMLObjectProviderRegistrySupport.getUnmarshallerFactory(); Unmarshaller unmarshaller = unmarshallerFactory.getUnmarshaller(element); return unmarshaller.unmarshall(element); // Exception thrown here } catch (Exception e) {
> log.error("Error in constructing AuthRequest from the encoded String", e); throw IdentityException.error(
> "Error in constructing AuthRequest from the encoded String ", e); } finally {
> if (inputStream != null) {
> try {
> inputStream.close(); } catch (IOException e) {
> log.error("Error while closing the stream", e); }
> }
> }
> }
>
>
>
>
> I don't see anything obviously wrong there. If it's throwing on that
> line, it's likely that the unmarshaller is null, which means you didn't get
> anything back from the unmarshallerFactory. That means something is likely
> not working with your initialization of the library. I can't say anything
> more than that. I'd suggest turning up logging to DEBUG or even TRACE on
> some or all of the OpenSAML packages to see what is actually happening, for
> example whether you are actually successfully reading and registering the
> XMLObject builders, marshallers and unmarshallers.
> --
> To unsubscribe from this list send an email to
> dev-unsubscribe at shibboleth.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/dev/attachments/20190808/751e1c6e/attachment-0001.html>
More information about the dev
mailing list