Null Pointer Exception from UnmarshallerFactory while migrating from OpenSAML2.x to OpenSAML3.x
DD K
ddk05361 at gmail.com
Tue Aug 6 01:30:14 EDT 2019
Hi All,
As soon as the Authentication Request is sent I'm getting the Exception,
>
> *[2019-08-06 09:15:28,233] INFO {org.opensaml.core.config.*
*InitializationService} - Initializing OpenSAML using the Java Services
API[2019-08-06 09:15:28,830] ERROR {org.wso2.carbon.identity.sso.*
*saml.util.SAMLSSOUtil} - Error in constructing AuthRequest from the
encoded Stringjava.lang.NullPointerException at
org.wso2.carbon.identity.sso.**saml.util.SAMLSSOUtil.*
*unmarshall(SAMLSSOUtil.java:*
*394) at org.wso2.carbon.identity.sso.**saml.SAMLSSOService.*
*validateSPInitSSORequest(*
*SAMLSSOService.java:95) at org.wso2.carbon.identity.sso.**saml.servlet.*
*SAMLSSOProviderServlet.**handleSPInitSSO(**SAMLSSOProviderServlet.java:*
*706) at org.wso2.carbon.identity.sso.**saml.servlet.*
*SAMLSSOProviderServlet.**handleRequest(**SAMLSSOProviderServlet.java:*
*264) at org.wso2.carbon.identity.sso.**saml.servlet.*
*SAMLSSOProviderServlet.doGet(**SAMLSSOProviderServlet.java:*
*143) at javax.servlet.http.**HttpServlet.service(*
*HttpServlet.java:624) at javax.servlet.http.**HttpServlet.service(*
*HttpServlet.java:731) at org.eclipse.equinox.http.**helper.*
*ContextPathServletAdaptor.**service(**ContextPathServletAdaptor.*
*java:37) at org.eclipse.equinox.http.**servlet.internal.*
*ServletRegistration.service(*
*ServletRegistration.java:61) at org.eclipse.equinox.http.*
*servlet.internal.ProxyServlet.**processAlias(ProxyServlet.*
*java:128) at org.eclipse.equinox.http.**servlet.internal.ProxyServlet.*
*service(ProxyServlet.java:60) at javax.servlet.http.**HttpServlet.service(*
*HttpServlet.java:731) at org.wso2.carbon.tomcat.ext.*
*servlet.DelegationServlet.**service(DelegationServlet.*
*java:68) at org.apache.catalina.core.**ApplicationFilterChain.*
*internalDoFilter(**ApplicationFilterChain.java:*
*303) at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
*ApplicationFilterChain.java:*
*208) at org.apache.tomcat.websocket.**server.WsFilter.doFilter(*
*WsFilter.java:52) at org.apache.catalina.core.**ApplicationFilterChain.*
*internalDoFilter(**ApplicationFilterChain.java:*
*241) at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
*ApplicationFilterChain.java:*
*208) at org.owasp.csrfguard.**CsrfGuardFilter.doFilter(*
*CsrfGuardFilter.java:88) at org.apache.catalina.core.*
*ApplicationFilterChain.**internalDoFilter(**ApplicationFilterChain.java:*
*241) at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
*ApplicationFilterChain.java:*
*208) at org.apache.catalina.filters.**HttpHeaderSecurityFilter.**doFilter(*
*HttpHeaderSecurityFilter.java:*
*126) at org.apache.catalina.core.**ApplicationFilterChain.*
*internalDoFilter(**ApplicationFilterChain.java:*
*241) at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
*ApplicationFilterChain.java:*
*208) at org.wso2.carbon.tomcat.ext.**filter.CharacterSetFilter.*
*doFilter(CharacterSetFilter.*
*java:65) at org.apache.catalina.core.**ApplicationFilterChain.*
*internalDoFilter(**ApplicationFilterChain.java:*
*241) at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
*ApplicationFilterChain.java:*
*208) at org.apache.catalina.filters.**HttpHeaderSecurityFilter.**doFilter(*
*HttpHeaderSecurityFilter.java:*
*126) at org.apache.catalina.core.**ApplicationFilterChain.*
*internalDoFilter(**ApplicationFilterChain.java:*
*241) at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
*ApplicationFilterChain.java:*
*208) at org.apache.catalina.core.**StandardWrapperValve.invoke(*
*StandardWrapperValve.java:219) at org.apache.catalina.core.*
*StandardContextValve.invoke(*
*StandardContextValve.java:110) at org.apache.catalina.**authenticator.*
*AuthenticatorBase.invoke(*
*AuthenticatorBase.java:494) at org.apache.catalina.core.*
*StandardHostValve.invoke(*
*StandardHostValve.java:169) at org.apache.catalina.valves.*
*ErrorReportValve.invoke(*
*ErrorReportValve.java:104) at org.wso2.carbon.identity.*
*context.rewrite.valve.**TenantContextRewriteValve.**invoke(*
*TenantContextRewriteValve.*
*java:80) at org.wso2.carbon.identity.**authz.valve.*
*AuthorizationValve.invoke(*
*AuthorizationValve.java:100) at org.wso2.carbon.identity.auth.*
*valve.AuthenticationValve.**invoke(AuthenticationValve.*
*java:74) at org.wso2.carbon.tomcat.ext.**valves.CompositeValve.*
*continueInvocation(*
*CompositeValve.java:99) at org.wso2.carbon.tomcat.ext.*
*valves.CarbonTomcatValve$1.**invoke(CarbonTomcatValve.java:*
*47) at org.wso2.carbon.webapp.mgt.**TenantLazyLoaderValve.invoke(*
*TenantLazyLoaderValve.java:57) at org.wso2.carbon.tomcat.ext.*
*valves.TomcatValveContainer.**invokeValves(*
*TomcatValveContainer.java:47) at org.wso2.carbon.tomcat.ext.*
*valves.CompositeValve.invoke(*
*CompositeValve.java:62) at org.wso2.carbon.tomcat.ext.**valves.*
*CarbonStuckThreadDetectionValv**e.invoke(**CarbonStuckThreadDetectionValv*
*e.java:159) at org.apache.catalina.valves.**AccessLogValve.invoke(*
*AccessLogValve.java:1025) at org.wso2.carbon.tomcat.ext.**valves.*
*CarbonContextCreatorValve.**invoke(**CarbonContextCreatorValve.*
*java:57) at org.wso2.carbon.tomcat.ext.**valves.*
*RequestCorrelationIdValve.**invoke(**RequestCorrelationIdValve.*
*java:112) at org.wso2.carbon.tomcat.ext.**valves.RequestEncodingValve.*
*invoke(RequestEncodingValve.*
*java:49) at org.apache.catalina.core.**StandardEngineValve.invoke(*
*StandardEngineValve.java:116) at org.apache.catalina.connector.*
*CoyoteAdapter.service(*
*CoyoteAdapter.java:445) at org.apache.coyote.http11.*
*AbstractHttp11Processor.**process(**AbstractHttp11Processor.java:*
*1137) at org.apache.coyote.**AbstractProtocol$**AbstractConnectionHandler.*
*process(AbstractProtocol.java:*
*637) at org.apache.tomcat.util.net <http://org.apache.tomcat.util.net>.*
*NioEndpoint$SocketProcessor.*
*doRun(NioEndpoint.java:1780) at org.apache.tomcat.util.net
<http://org.apache.tomcat.util.net>.**NioEndpoint$SocketProcessor.*
*run(NioEndpoint.java:1739) at java.util.concurrent.*
*ThreadPoolExecutor.runWorker(*
*ThreadPoolExecutor.java:1149) at java.util.concurrent.*
*ThreadPoolExecutor$Worker.run(*
*ThreadPoolExecutor.java:624) at org.apache.tomcat.util.*
*threads.TaskThread$**WrappingRunnable.run(*
*TaskThread.java:61) at java.lang.Thread.run(Thread.*
*java:748)*
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);
}
}
}
}
doBootstrap() method:
public static void doBootstrap() {
if (!isBootStrapped) {
try {
InitializationService.initialize();
isBootStrapped = true;
} catch (InitializationException e) {
log.error("Error in bootstrapping the OpenSAML2 library", e);
}
}
}
dependencies in pom file:
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-core</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-soap-api</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-soap-impl</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-profile-api</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-profile-impl</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-saml-api</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-saml-impl</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-messaging-api</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-messaging-impl</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-security-api</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-storage-api</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-storage-impl</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-xacml-api</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-xacml-impl</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-xacml-saml-api</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-xacml-saml-impl</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-xmlsec-api</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-xmlsec-impl</artifactId>
<version>${opensaml3.version}</version>
</dependency>
<dependency>
<groupId>net.shibboleth.utilities</groupId>
<artifactId>java-support</artifactId>
<version>${java-support.version}</version>
</dependency>
What I came across while searching was that the unmarshallers and
marshallers has not been initialized. But i have add the required
dependencies and also initialized using InitializationService.initialize().
Any answers for this would be appreciated,
Thanks,
Deshan Koswatte
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/dev/attachments/20190806/65320a54/attachment-0001.html>
More information about the dev
mailing list