This is causing a build break it seems. Also, how are you planning to getting this fix into the Apache trunk?
On Tue, May 17, 2011 at 11:54 AM, <as...@wso2.com> wrote: > Author: asela > Date: Mon May 16 23:24:49 2011 > New Revision: 94446 > URL: http://wso2.org/svn/browse/wso2?view=rev&revision=94446 > > Log: > Appling secure vault patch for Axis2 - AXIS2-4725 and Adding method to > resolve password of NIO SSL and Mail transport. But Please note > implementation must be in the underline transport code in all defined > transports, actually not in Axis2. It is Ta ODO item for next release by > keeping secure vault as WS-commoms or WSO2-commons project. In 3.2.0, we > are condsider only on email and NIO-SSL > > Modified: > branches/carbon/3.2.0/dependencies/axis2/modules/kernel/pom.xml > > branches/carbon/3.2.0/dependencies/axis2/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java > > branches/carbon/3.2.0/dependencies/axis2/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java > > Modified: branches/carbon/3.2.0/dependencies/axis2/modules/kernel/pom.xml > URL: > http://wso2.org/svn/browse/wso2/branches/carbon/3.2.0/dependencies/axis2/modules/kernel/pom.xml?rev=94446&r1=94445&r2=94446&view=diff > > ============================================================================== > --- branches/carbon/3.2.0/dependencies/axis2/modules/kernel/pom.xml > (original) > +++ branches/carbon/3.2.0/dependencies/axis2/modules/kernel/pom.xml Mon > May 16 23:24:49 2011 > @@ -96,6 +96,11 @@ > <artifactId>commons-io</artifactId> > <scope>test</scope> > </dependency> > + <dependency> > + <groupId>org.wso2.securevault</groupId> > + <artifactId>org.wso2.securevault</artifactId> > + <version>1.0.0-SNAPSHOT</version> > + </dependency> > </dependencies> > <scm> > <connection>scm:svn: > http://svn.apache.org/repos/asf/axis/axis2/java/core/branches/1_6/modules/kernel > </connection> > > Modified: > branches/carbon/3.2.0/dependencies/axis2/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java > URL: > http://wso2.org/svn/browse/wso2/branches/carbon/3.2.0/dependencies/axis2/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java?rev=94446&r1=94445&r2=94446&view=diff > > ============================================================================== > --- > branches/carbon/3.2.0/dependencies/axis2/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java > (original) > +++ > branches/carbon/3.2.0/dependencies/axis2/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java > Mon May 16 23:24:49 2011 > @@ -53,6 +53,8 @@ > import org.apache.axis2.util.ThreadContextMigratorUtil; > import org.apache.commons.logging.Log; > import org.apache.commons.logging.LogFactory; > +import org.wso2.securevault.SecretResolver; > +import org.wso2.securevault.SecretResolverFactory; > > import javax.xml.namespace.QName; > import javax.xml.stream.XMLStreamException; > @@ -87,7 +89,7 @@ > public void populateConfig() throws DeploymentException { > try { > OMElement config_element = buildOM(); > - > + > axisConfig.setSecretResolver(SecretResolverFactory.create(config_element, > false)); > if (!TAG_AXISCONFIG.equals(config_element.getLocalName())) { > throw new > DeploymentException(Messages.getMessage("badelementfound", TAG_AXISCONFIG, > > config_element.getLocalName())); > @@ -644,6 +646,7 @@ > try { > Iterator itr = transport.getChildrenWithName(new > QName(TAG_PARAMETER)); > processParameters(itr, transportIN, axisConfig); > + resolveTransportPasswords(transportIN); > // adding to axis2 config > axisConfig.addTransportIn(transportIN); > transportReceivers.add(transportIN); > @@ -692,6 +695,7 @@ > Iterator itr = transport.getChildrenWithName(new > QName(TAG_PARAMETER)); > > processParameters(itr, transportout, axisConfig); > + resolveTransportPasswords(transportout); > // adding to axis2 config > axisConfig.addTransportOut(transportout); > } catch (NoClassDefFoundError e) { > @@ -785,4 +789,69 @@ > Class phaseClass = > Loader.loadClass(axisConfig.getSystemClassLoader(), className); > return (Phase) phaseClass.newInstance(); > } > + > + /** > + * This is to resolve secured passwords of the transport sender and > listeners. > + * But this implementation must be in the underline transport code. > TODO > + * This method is just to resolve the Email sender and NIO SSL > transport passwords. > + * @param transport Implementations of ParameterInclude > + */ > + private void resolveTransportPasswords(ParameterInclude transport) { > + > + SecretResolver secretResolver = axisConfig.getSecretResolver(); > + if(secretResolver.isInitialized()){ > + String keyStorePassToken = null; > + String keyStoreKeyPassToken = null; > + String trustStorePassToken = null; > + String emailSenderPassword = null; > + if (transport instanceof TransportOutDescription){ > + keyStorePassToken = > "Axis2.Https.Sender.KeyStore.Password"; > + keyStoreKeyPassToken = > "Axis2.Https.Sender.KeyStore.KeyPassword"; > + trustStorePassToken = > "Axis2.Https.Sender.TrustStore.Password"; > + emailSenderPassword = "Axis2.Mailto.Parameter.Password"; > + } > + if (transport instanceof TransportInDescription){ > + keyStorePassToken = > "Axis2.Https.Listener.KeyStore.Password"; > + keyStoreKeyPassToken = > "Axis2.Https.Listener.KeyStore.KeyPassword"; > + trustStorePassToken = > "Axis2.Https.Listener.TrustStore.Password"; > + } > + > + Parameter keyParam = transport.getParameter("keystore"); > + Parameter trustParam = transport.getParameter("truststore"); > + Parameter emailPasswordParam = > transport.getParameter("mail.smtp.password"); > + > + if (keyParam != null) { > + OMElement ksEle = > keyParam.getParameterElement().getFirstElement(); > + if(ksEle != null){ > + OMElement storePasswordElement = > ksEle.getFirstChildWithName(new QName("Password")); > + OMElement keyPasswordElement = > ksEle.getFirstChildWithName(new QName("KeyPassword")); > + if(secretResolver.isTokenProtected(keyStorePassToken) > && storePasswordElement != null){ > + String storePassword = > secretResolver.resolve(keyStorePassToken); > + ksEle.getFirstChildWithName(new > QName("Password")).setText(storePassword ); > + > + } > + > if(secretResolver.isTokenProtected(keyStoreKeyPassToken) && > keyPasswordElement != null){ > + String keyPassword = > secretResolver.resolve(keyStoreKeyPassToken); > + ksEle.getFirstChildWithName(new > QName("KeyPassword")).setText(keyPassword); > + } > + } > + } > + > + if (trustParam != null) { > + OMElement tsEle = > trustParam.getParameterElement().getFirstElement(); > + if(tsEle != null){ > + OMElement storePasswordElement = > tsEle.getFirstChildWithName(new QName("Password")); > + > if(secretResolver.isTokenProtected(trustStorePassToken) && > storePasswordElement != null){ > + String storePassword = > secretResolver.resolve(trustStorePassToken); > + tsEle.getFirstChildWithName(new > QName("Password")).setText(storePassword ); > + } > + } > + } > + > + if(secretResolver.isTokenProtected(emailSenderPassword) && > emailPasswordParam != null) { > + String emailPassword = > secretResolver.resolve(emailSenderPassword); > + emailPasswordParam.setValue(emailPassword); > + } > + } > + } > } > > Modified: > branches/carbon/3.2.0/dependencies/axis2/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java > URL: > http://wso2.org/svn/browse/wso2/branches/carbon/3.2.0/dependencies/axis2/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java?rev=94446&r1=94445&r2=94446&view=diff > > ============================================================================== > --- > branches/carbon/3.2.0/dependencies/axis2/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java > (original) > +++ > branches/carbon/3.2.0/dependencies/axis2/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java > Mon May 16 23:24:49 2011 > @@ -68,6 +68,7 @@ > import org.apache.axis2.util.JavaUtils; > import org.apache.commons.logging.Log; > import org.apache.commons.logging.LogFactory; > +import org.wso2.securevault.SecretResolver; > > /** > * Class AxisConfiguration > @@ -167,6 +168,12 @@ > private TransactionConfiguration transactionConfiguration; > > /** > + * To secure the password in axis2.xml. SecretResolver must be > initialized > + * When building axis configuration > + */ > + private SecretResolver secretResolver; > + > + /** > * Constructor AxisConfiguration. > */ > public AxisConfiguration() { > @@ -1545,4 +1552,12 @@ > } > return childFirstClassLoading; > } > + > + public SecretResolver getSecretResolver() { > + return secretResolver; > + } > + > + public void setSecretResolver(SecretResolver secretResolver) { > + this.secretResolver = secretResolver; > + } > } > _______________________________________________ > Carbon-commits mailing list > carbon-comm...@wso2.org > https://wso2.org/cgi-bin/mailman/listinfo/carbon-commits > -- *Afkham Azeez* Director of Architecture; WSO2, Inc.; http://wso2.com Member; Apache Software Foundation; http://www.apache.org/ * <http://www.apache.org/>** email: **az...@wso2.com* <az...@wso2.com>* cell: +94 77 3320919 blog: **http://blog.afkham.org* <http://blog.afkham.org>* twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> * linked-in: **http://lk.linkedin.com/in/afkhamazeez* * * *Lean . Enterprise . Middleware*
_______________________________________________ Carbon-dev mailing list Carbon-dev@wso2.org http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev