Hi!
Thanks for your help, Alik!
However, I managed to find out the reason of the problem by myself. The
problem was, that I was using "XML-security 1.4.0" library, which
incorrectly encodes the unicode characters. So the russian text was
incoded incorrectly, and caused this error. When I tried with the last
version 1.4.1, it was working correctly.
Alick Buckley wrote:
Hi,
I have used WS-Security with Apache Axis 1.4 client.
I hope this helps.
=========================================================================================================================
Your deployment
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<transport name="http"
pivot="java:org.apache.axis.transport.http.HTTPSender"/>
<globalConfiguration >
<requestFlow >
<handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
<parameter name="action" value="UsernameToken"/>
<parameter name="passwordType" value="PasswordDigest"/>
</handler>
</requestFlow >
</globalConfiguration >
</deployment>
=========================================================================================================================
My deployment.
I also set the client configuration file via the
org.apache.axis.AxisProperties class
org.apache.axis.AxisProperties.setProperty ( "axis.ClientConfigFile",
"axis-client-config.xml" ) ;
The file axis-client-config.xml contains the following:
<deployment name="defaultClientConfig"
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
<parameter name="disablePrettyXML" value="true"/>
<parameter name="addressing.sendReplyTo" value="true"/>
<parameter name="enableNamespacePrefixOptimization" value="false"/>
</globalConfiguration>
<service name="XYZPort">
<requestFlow>
<handler
type="java:org.apache.axis.message.addressing.handler.AddressingHandler">
<!-- Reference elements are added in the same order -->
<parameter name="referencePropertyNames"
value="{Element}{http://schemas.xmlsoap.org/ws/2004/03/addressing}Action;
{Element}{http://schemas.xmlsoap.org/ws/2004/03/addressing}MessageID;
{Element}{http://schemas.xmlsoap.org/ws/2004/03/addressing}ReplyTo;
{Element}{http://schemas.xmlsoap.org/ws/2004/03/addressing}To;
{Element}{http://schemas.xmlsoap.org/ws/2004/03/addressing}From"/>
</handler>
<handler type="java:org.apache.ws.axis.security.WSDoAllSender">
<!-- action order is important, do Timestamp then Signature if
signing Timestamp -->
<parameter name="action" value="Timestamp Signature"/>
<parameter name="user" value="XYZLabel"/>
<parameter name="passwordCallbackClass"
value="com.acme.security.PasswordCallback"/>
<parameter name="signatureKeyIdentifier" value="DirectReference"/>
<parameter name="signaturePropFile"
value="pki/security.properties"/>
<parameter name="timeToLive" value="300"/>
<parameter name="precisionInMilliseconds" value="false" />
<!-- Reference elements are added in the same order -->
<parameter name="signatureParts"
value="{Element}{http://schemas.xmlsoap.org/ws/2004/03/addressing}Action;
{Element}{http://schemas.xmlsoap.org/ws/2004/03/addressing}MessageID;
{Element}{http://schemas.xmlsoap.org/ws/2004/03/addressing}ReplyTo;
{Element}{http://schemas.xmlsoap.org/ws/2004/03/addressing}To;
{Element}{http://schemas.xmlsoap.org/ws/2004/03/addressing}From;
{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Timestamp;
{Element}{http://schemas.xmlsoap.org/soap/envelope/}Body"/>
</handler>
</requestFlow>
</service>
<transport name="http"
pivot="java:org.apache.axis.transport.http.HTTPSender"/>
<transport name="java"
pivot="java:org.apache.axis.transport.java.JavaSender"/>
<transport name="local"
pivot="java:org.apache.axis.transport.local.LocalSender"/>
</deployment>
=========================================================================================================================
-----Original Message-----
From: Sergei Fedulov [mailto:[EMAIL PROTECTED]
Sent: Monday, 1 October 2007 6:53 PM
To: [email protected]
Subject: Problem with enabling WS-Security in Axis
Hi all!
I have a problem with enabling WS-security on Axis client. I am using
Axis, not Axis2. The problem is, that when the security is enabled, Axis
doesn't encode special characters (like "<") in XML-elements, and I am
getting an error from server:
----------------------------------------------------
org.xml.sax.SAXParseException: The content of elements must consist of
well-formed character data or markup.
----------------------------------------------------
When the security is not enabled, characters encoded just fine.
The name of my service is "SendSms". I am configuring the service using
following construction:
----------------------------------------------------
EngineConfiguration config = new FileProvider("conf/client_deploy.wsdd");
SendSmsServiceLocator serviceLocator = new SendSmsServiceLocator(config);
SendSms_PortType serviceStub = serviceLocator.getSendSms();
Stub stub = (Stub) serviceStub;
stub._setProperty(UsernameToken.PASSWORD_TYPE,
WSConstants.PASSWORD_DIGEST);
stub._setProperty(WSHandlerConstants.USER, userName);
stub._setProperty(WSHandlerConstants.PW_CALLBACK_REF, callbackHandler);
----------------------------------------------------
The content of the "conf/client_deploy.wsdd" is the following:
----------------------------------------------------
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<transport name="http"
pivot="java:org.apache.axis.transport.http.HTTPSender"/>
<globalConfiguration >
<requestFlow >
<handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
<parameter name="action" value="UsernameToken"/>
<parameter name="passwordType" value="PasswordDigest"/>
</handler>
</requestFlow >
</globalConfiguration >
</deployment>
----------------------------------------------------
Thanks for your help in advance!
--
Sergei Fedulov
Euro-Baltic Software Alliance
Mobile: +372 56 984026
ICQ#: 257838427
MSN: [EMAIL PROTECTED]
Skype: fedulows
Y!ID: fedulows
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Sergei Fedulov
Euro-Baltic Software Alliance
Mobile: +372 56 984026
ICQ#: 257838427
MSN: [EMAIL PROTECTED]
Skype: fedulows
Y!ID: fedulows
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]