Hi Richard,

to my surprise I was able to reproduce the issue with a small example.
https://github.com/abstract-thinking/JaasSoapTomEEIssue/tree/master

I really hope that it is not mistake by myself. ;-)

By the way - Java 17 is used.

Cheers,
Markus

> Gesendet: Dienstag, 18. Juli 2023 um 20:18 Uhr
> Von: "Richard Zowalla" <r...@apache.org>
> An: users@tomee.apache.org
> Betreff: Re: No XML deserialization with TomEE 9.1.0 and JAAS
>
> Hi,
> 
> maybe adding a small reproducer to GitHub would help in identifying any
> issue?
> 
> Gruß
> Richard
> 
> 
> Am Dienstag, dem 18.07.2023 um 17:56 +0200 schrieb tomee-u...@web.de:
> > Hi,
> > 
> > I ported our war file from TomEE 8.0.15 to TomEE 9.1.0.
> > 
> > The deployment works fine with some new infos[1] where I think they
> > are not a serious issue.
> > 
> > The application uses a SOAP interface and the WSDL will be retrieved.
> > 
> > The server is using JAAS [2][3][4]. I think at the moment I
> > configured the TomEE system correctly.
> > 
> > Now I'm observing that the SOAP messages are not deserialized and an
> > exception will be thrown.
> > 
> > 18-Jul-2023 17:19:49.419 WARNING [http-nio-8080-exec-1]
> > org.apache.cxf.phase.PhaseInterceptorChain.doDefaultLogging
> > Interceptor for {http://company.com/wssession/}WSSession has thrown
> > exc
> > eption, unwinding now
> >         org.apache.cxf.binding.soap.SoapFault: Error reading
> > XMLStreamReader.
> >                 at
> > org.apache.cxf.binding.soap.saaj.SAAJInInterceptor$SAAJPreInIntercept
> > or.handleMessage(SAAJInInterceptor.java:145)
> >                 at
> > org.apache.cxf.binding.soap.saaj.SAAJInInterceptor$SAAJPreInIntercept
> > or.handleMessage(SAAJInInterceptor.java:107)
> >                 at
> > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept
> > orChain.java:307)
> >         [...]
> >         Caused by: jakarta.xml.soap.SOAPException: Unable to create
> > message factory for SOAP: Error while searching for service
> > [jakarta.xml.soap.MessageFactory]
> >                 at
> > jakarta.xml.soap.MessageFactory.newInstance(MessageFactory.java:90)
> >                 at
> > org.apache.cxf.binding.soap.saaj.SAAJFactoryResolver.createMessageFac
> > tory(SAAJFactoryResolver.java:56)
> >                 at
> > org.apache.cxf.binding.soap.saaj.SAAJInInterceptor$SAAJPreInIntercept
> > or.getFactory(SAAJInInterceptor.java:151)
> >                 at
> > org.apache.cxf.binding.soap.saaj.SAAJInInterceptor$SAAJPreInIntercept
> > or.handleMessage(SAAJInInterceptor.java:133)
> >                 ... 36 more
> > 
> > 
> > In the resources.xml the WSS4J is configured where the onterceptor is
> > invoked [5] ...
> > 
> > Does anybody have an idea how TomEE is not finding a
> > SoapMessageFactory? What can I do? My assumption was that a lib is
> > inside the library folder? [6]
> > 
> > Thanks,
> > Markus
> > 
> > 
> > 
> > [1]
> > 18-Jul-2023 17:17:48.929 INFO [main]
> > org.apache.cxf.jaxb.JAXBContextInitializer.addClass Class
> > jakarta.xml.bind.JAXBElement does not have a default constructor
> > which JAXB requires.
> > 18-Jul-2023 17:17:48.983 INFO [main]
> > org.apache.cxf.common.jaxb.JAXBUtils.createEscapeHandler Failed to
> > create MinimumEscapeHandler
> > 
> > [2]
> > less conf/login.config
> > jaasContext  {
> >     org.apache.openejb.core.security.jaas.ServiceProviderLoginModule
> > required;
> > };
> > 
> > [3]
> > less conf/server.xml
> >     <Engine name="Catalina" defaultHost="localhost">
> > 
> >       <!--For clustering, please take a look at documentation at:
> >           /docs/cluster-howto.html  (simple how to)
> >           /docs/config/cluster.html (reference documentation) -->
> >       <!--
> >       <Cluster
> > className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
> >       -->
> > 
> >       <!-- Use the LockOutRealm to prevent attempts to guess user
> > passwords
> >            via a brute-force attack -->
> >       <Realm className="org.apache.catalina.realm.JAASRealm"
> > appName="jaasContext"
> >            
> > userClassNames="org.apache.openejb.core.security.jaas.UserPrincipal"
> >            
> > roleClassNames="org.apache.openejb.core.security.jaas.GroupPrincipal"
> > >
> >       </Realm>
> > 
> > [4]
> > less bin/setenv.sh
> > export CATALINA_OPTS="$CATALINA_OPTS -
> > Djava.security.auth.login.config=/opt/tomee/current/conf/login.config
> > "
> > 
> > [5]
> > <resources>
> >     <!-- In interceptors -->
> >     <Service id="wss4j" class-
> > name="org.apache.openejb.server.cxf.config.WSS4JInInterceptorFactory"
> > factory-name="create">
> >         action = UsernameToken
> >         passwordCallbackClass = com.company.PasswordHandler
> >     </Service>
> > </resources>
> > 
> > [6]
> > /opt/tomee/apache-tomee-plus-9.1.0/lib$ find -name "*cxf*"
> > ./cxf-rt-rs-mp-client-shade-9.1.0.jar
> > ./openejb-cxf-transport-9.1.0.jar
> > ./openejb-cxf-rs-9.1.0.jar
> > ./cxf-shade-9.1.0.jar
> > ./openejb-cxf-9.1.0.jar
> > /opt/tomee/apache-tomee-plus-9.1.0/lib$ find -name "*soap*"
> > ./opensaml-soap-api-4.2.0.jar
> > /opt/tomee/apache-tomee-plus-9.1.0/lib$ find -name "*xml*"
> > ./opensaml-xmlsec-impl-4.2.0.jar
> > ./opensaml-xmlsec-api-4.2.0.jar
> > ./xmlsec-3.0.1.jar
> > ./xmlschema-core-2.2.5.jar
> > 
> > 
> > 
> > 
> > 
> > 
> 
>

Reply via email to