[
https://issues.apache.org/jira/browse/OFBIZ-6916?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15183784#comment-15183784
]
Jacques Le Roux commented on OFBIZ-6916:
----------------------------------------
Commited in
trunk r1733956
R15.12 r1733957
R14.12 r1733958+r1733959
R13.07 r1733991
Note: there is a newer Axis2 1.7.1 version
https://axis.apache.org/axis2/java/core/release-notes/1.7.1.html. OOTB we don't
use ADB but better to get the last version anyway. I will change the issue
title.
Replacing Axis2 1.6.3 by 1.7.1 version is easy as long as you don't try to
replace the commons-httpclient-3.1 lib. The only noticeable change is this
warning shown in log
|http-bio-8443-exec-1 |AxisConfigBuilder |W| Unable to
instantiate deployer org.apache.axis2.deployment.ServiceDeployer; see debug
logs for more details|
It has no effects on the SOAP test services, both works.
But the main goal of this issue is a security update because
commons-httpclient-3.1 lib is deprecated, no longer maintained and vulnerable
and must be replaced.
This commit also concerns OFBIZ-6755 but to not mix things OFBIZ-6755 will be
completed later. So to not block this issue, the commons-httpclient-3.1 lib is
moved from framework/service/lib to specialpurpose/passport/lib/ where it's
still required.
Normally, as explained at
https://axis.apache.org/axis2/java/core/release-notes/1.7.0.html, Axis2 1.7.1
requires "HttpClient 4.2.x and should work with 4.3.x and 4.4.x, but is
incompatible with 4.5.x". I did not replace commons-httpclient-3.1 by
HttpClient 4.2.1, which is bundled with Axis2 1.7.1, because we have already
HttpClient/Core 4.4.1 in base/lib and it works well as is (HttpClient/Core
4.4.1 is in the classpath).
To use HttpClient/Core 4.4.1 you need to change the axis2.xml files as
specified in the 1.7.0 release note. But where to place this file in OFBiz is
not obvious!
I decided the best way was to use Axis2
ConfigurationContextFactory.createConfigurationContextFromFileSystem() method
to let know Axis2 we want the new httpclient instead of the default one (I
really don't understand why the Axis2 team still prefers commons-httpclient-3.1
as default). I had to pass both locations to avoid hardcoding the repository
location in the axis2.xml file.
I have also decided the best place for the "Axis2 repository" (as they call it)
was in framework/service/axis2. So following Axis2 convention
http://wso2.com/library/tutorials/axis2-repository/ I put the axis2.xml file in
framework/service/axis2/conf.
Note: the Axis2 repository could be used to put [Apache
Rampart|https://axis.apache.org/axis2/java/rampart/] as a module to secure web
services...
After this change, there are a number of warnings thrown by Axis2 but they are
actually interesting as they provide guidance for future use of modules and
such (notably Apache Rampart)
|ttp-bio-8443-exec-10 |Utils |W| [JAXWS] - unable
to load org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher
|ttp-bio-8443-exec-10 |Utils |W| [JAXWS] - unable
to load org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher
|ttp-bio-8443-exec-10 |Utils |W| [JAXWS] - unable
to load org.apache.axis2.jaxws.dispatchers.MustUnderstandChecker
|ttp-bio-8443-exec-10 |Utils |W| [JAXWS] - unable
to load org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher
|ttp-bio-8443-exec-10 |Utils |W| [JAXWS] - unable
to load org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher
|ttp-bio-8443-exec-10 |AxisConfigBuilder |W| Unable to
instantiate deployer org.apache.axis2.deployment.ServiceDeployer; see debug
logs for more details
|ttp-bio-8443-exec-10 |AxisConfigBuilder |W| Unable to
instantiate deployer org.apache.axis2.jaxws.framework.JAXWSDeployer; see debug
logs for more details
While at it I replaced StAXOMBuilder (deprecated) by OMXMLBuilderFactory
I will backport the changes in the supporterd releases branches but R12.04.
Others all use HttpClient/Core version older than 4.2.1. I'm aware I will have
to handle several conflicts by hand, some are easy others "harder". We have the
passport component only in R15.12, it will be easy to neglect in older
releases. I expect more work with the LICENSE file and even more with the
.classpath file. Since R15.12 we use tabs in it (Adrian rightly told us to use
Eclipse internal tools to edit this file, though I noted it does not respect
the alphabetical order) but older releases still use spaces (and this is often
a pain now, but a bright future ahead ;))
Crossing fingers with this commit, I have other changes pending in this
instance (notably for OFBIZ-6849) and it got quite complicated.
> Upgrade Axis2 to 1.7.0
> ----------------------
>
> Key: OFBIZ-6916
> URL: https://issues.apache.org/jira/browse/OFBIZ-6916
> Project: OFBiz
> Issue Type: Sub-task
> Components: framework
> Affects Versions: Trunk
> Reporter: Jacques Le Roux
> Assignee: Jacques Le Roux
>
> With OFBIZ-5801 I recently upgraded Axis2 to 1.6.3. But it still uses
> commons-httpclient-3.1 which is not only deprecated but also faces a number
> of vulnerabilties:
> https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-5262
> https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-3577
> https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-6153
> This will also help to resolve OFBIZ-6755 (passport component)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)