You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Sukma Agung Verdianto <sa...@gmail.com> on 2007/11/30 04:02:54 UTC

Axis2 Rampart + Sandesha integration problem

Hi All,

I have successfully implementing Axis2 web service with WS-Security only and
WS-RM only (not integrated yet).
Today, I've tried to implement Axis2 1.3 web service with
WS-Security(Rampart) and Reliable Messaging Support (Sandesha2) but have no
luck due to "Missing Timestamp" error when invoking RM CreateSequence.
The real message is encrypted and successfully processed after
CreateSequence but the client repeat therequest and never terminated (not
sure, never wait, maybe there is timeout).

Here is the CreateSequence request:
----------------------------------------------------

POST /axis2/services/CreateApplicationInitiatorSOAPService?wsdl HTTP/1.1
Content-Type: application/soap+xml; charset=UTF-8; action="
http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence"
User-Agent: Axis2
Host: 127.0.0.1:8888
Transfer-Encoding: chunked

36e
<?xml version='1.0' encoding='UTF-8'?>
   <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope
">
      <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
         <wsse:Security xmlns:wsse="
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
soapenv:mustUnderstand="true" />
         <wsa:To>
http://localhost:8888/axis2/services/CreateApplicationInitiatorSOAPService?wsdl
</wsa:To>

<wsa:MessageID>urn:uuid:5B6ECBFB9B01F9184A1196349989655</wsa:MessageID>
         <wsa:Action>http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence
</wsa:Action>
      </soapenv:Header>
      <soapenv:Body>
         <wsrm:CreateSequence xmlns:wsrm="
http://schemas.xmlsoap.org/ws/2005/02/rm">
            <wsrm:AcksTo>
               <wsa:Address xmlns:wsa="http://www.w3.org/2005/08/addressing
">http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
            </wsrm:AcksTo>
         </wsrm:CreateSequence>
      </soapenv:Body>
   </soapenv:Envelope>0



And the response:
--------------------------

HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Content-Type: application/soap+xml; action="
http://www.w3.org/2005/08/addressing/soap/fault";charset=UTF-8
Transfer-Encoding: chunked
Date: Thu, 29 Nov 2007 15:26:30 GMT
Connection: close

aff
<?xml version='1.0' encoding='UTF-8'?>
   <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope
">
      <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
         <wsa:Action>http://www.w3.org/2005/08/addressing/soap/fault
</wsa:Action>

<wsa:RelatesTo>urn:uuid:5B6ECBFB9B01F9184A1196349989655</wsa:RelatesTo>
      </soapenv:Header>
      <soapenv:Body>
         <soapenv:Fault>
            <soapenv:Code>
               <soapenv:Value>soapenv:Receiver</soapenv:Value>
            </soapenv:Code>
            <soapenv:Reason>
               <soapenv:Text xml:lang="en-US">Missing
Timestamp</soapenv:Text>
            </soapenv:Reason>
            <soapenv:Detail>
               <Exception>org.apache.axis2.AxisFault: Missing Timestamp at
org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:92) at
org.apache.axis2.engine.Phase.invoke(Phase.java:292) at
org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:235) at
org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:135) at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(
HTTPTransportUtils.java:275) at
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:121) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252) at
org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173) at
org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:213) at
org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:178) at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126) at org.apache.catalina.valves.ErrorReportValve.invoke(
ErrorReportValve.java:105) at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:107) at org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(
Http11Processor.java:869) at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
(Http11BaseProtocol.java:664) at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
PoolTcpEndpoint.java:527) at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
LeaderFollowerWorkerThread.java:80) at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:684) at java.lang.Thread.run(Thread.java:613)Caused by:
org.apache.rampart.RampartException: Missing Timestamp at
org.apache.rampart.PolicyBasedResultsValidator.validate(
PolicyBasedResultsValidator.java:68) at
org.apache.rampart.RampartEngine.process(RampartEngine.java:192) at
org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:85) ...
21 more</Exception>
            </soapenv:Detail>
         </soapenv:Fault>
      </soapenv:Body>
   </soapenv:Envelope>
0



I have search on google, and found some article that there is some hack to
integrate Rampart & Sandesha2, but I'm not really clear.
Is this configuration problem or something else?
I would appreciate if someone help me out with this problem.

Regards,
Sukma

Re: Axis2 Rampart + Sandesha integration problem

Posted by Alberto Patino <pa...@gmail.com>.
I think it was not a good idea to attach the binary file. :) I'm sorry

If you dont't want to build your own distro ( its very easy but you
need a good internet connection and be patiente) I would upload the
latest snapshots in a public server.

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: Axis2 Rampart + Sandesha integration problem

Posted by Sukma Agung Verdianto <sa...@gmail.com>.
Thanks Alberto,
I have tried using latest Axis2, Sandesha2 and Rampart snapshots.
But I still get must understand check exception.

- Sandesha2 sender thread has not received a valid synchronous response.

org.apache.axis2.AxisFault: Must Understand check failed for header
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:
Security

at org.apache.axis2.engine.AxisEngine.checkMustUnderstand(AxisEngine.java:89
)

at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:138)

at org.apache.sandesha2.workers.SenderWorker.checkForSyncResponses(
SenderWorker.java:609)


Where did you get the rampart snapshot?
Is that http://people.apache.org/dist/rampart/nightly/ ?

Regards,
Sukma

On Dec 24, 2007 3:37 AM, Alberto Patino <pa...@gmail.com> wrote:

> Using the latest snapshot for axis2 sandesha y rampart, NOW its
> working!!! Please try with snapshosts
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>

Re: Axis2 Rampart + Sandesha integration problem

Posted by Alberto Patino <pa...@gmail.com>.
Using the latest snapshot for axis2 sandesha y rampart, NOW its
working!!! Please try with snapshosts

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: Axis2 Rampart + Sandesha integration problem

Posted by Alberto Patino <pa...@gmail.com>.
Would you verify if you get the same stack trace:

Caused by: java.lang.Exception: Sandesha2 sender thread has not
received a valid CreateSequnceResponse
	at org.apache.sandesha2.workers.SenderWorker.invokeCallBackObject(SenderWorker.java:757)
	at org.apache.sandesha2.workers.SenderWorker.run(SenderWorker.java:339)
	at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
	at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
	at java.lang.Thread.run(Thread.java:619)

Debugging the client application I am able to see the origin of the
problem, in the file SenderWorker.java, function checkForSyncResponses
line 657, AxisEngine.receive() invocation generate an exception:

			if (resenvelope!=null) {
				AxisEngine.receive(responseMessageContext);
			}

		} catch (Exception e) {

            String message =
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noValidSyncResponse);
            if (msgCtx != null &&! msgCtx.isServerSide() &&

(Sandesha2Constants.SPEC_2005_02.Actions.ACTION_CREATE_SEQUENCE.equals(msgCtx.getSoapAction())
                            ||
Sandesha2Constants.SPEC_2007_02.Actions.ACTION_CREATE_SEQUENCE.equals(msgCtx.getSoapAction()))
){
                // We have not received a valid createSequnce reponse
for the request we send so we need to terminate the seunce here
                return false;
            } else {
                if (log.isWarnEnabled())
                    log.warn(message, e);
            }
}

The message is totally confusing me because the content of the
exception is not propagated to the client, this error is originated in
AxisEngine.receive(), checkMustUnderstand invocation line #135:

    private static void checkMustUnderstand(MessageContext msgContext)
throws AxisFault {
        SOAPEnvelope envelope = msgContext.getEnvelope();
        if (envelope.getHeader() == null) {
            return;
        }

        // Get all the headers targeted to us
        Iterator headerBlocks = envelope.getHeader().getHeadersToProcess(null);

        while (headerBlocks.hasNext()) {
            SOAPHeaderBlock headerBlock = (SOAPHeaderBlock) headerBlocks.next();

            // if this header block has been processed or mustUnderstand isn't
            // turned on then its cool
            if (headerBlock.isProcessed() || !headerBlock.getMustUnderstand()) {
                continue;
            }

            // Oops, throw an appropriate MustUnderstand fault!!
            QName faultQName =
headerBlock.getVersion().getMustUnderstandFaultCode();
            throw new AxisFault(Messages.getMessage("mustunderstandfailed",

headerBlock.getNamespace().getNamespaceURI(),

headerBlock.getLocalName()), faultQName);
        }
    }

The exception has this message:

Must Understand check failed for header
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
: Security

I will try to deploy with early SNAPSHOTS!!!

On Dec 21, 2007 2:22 AM, Sukma Agung Verdianto <sa...@gmail.com> wrote:
> I've solved my previous problem.
> And now I get the same error like yours.
>
>
>
> On Dec 19, 2007 3:27 PM, Alberto Patino <pa...@gmail.com> wrote:
> >
> >
> >
> > I'm trying to do the same thing you want to do but I having a
> > different message error: (Debug enabled)
> >
> > [DEBUG] Exit: InMemoryTransaction::enlist
> > [DEBUG] Enter: InMemoryStorageManager::removeMessageContext, key:
> > urn:uuid:818835A043FB6125F01198050445672
> > [DEBUG] Exit: InMemoryStorageManager::removeMessageContext, key:
> > urn:uuid:818835A043FB6125F01198050445672
> > [DEBUG] Entry: OutInAxisOperationClient$SyncCallBack::onError,
> > java.lang.Exception: Sandesha2 sender thread has not received a valid
> > CreateSequnceResponse
> > [DEBUG] Exit: OutInAxisOperationClient$SyncCallBack::onError
> > [DEBUG] Exit: SenderWorker::run
> >
> > The error is:  "Sandesha2 sender thread has not received a valid
> > CreateSequnceResponse"
> >
> > I'm tracking the error in the SenderWorker.java file,
> > checkForSyncResponses function:
> >
> >
> >        } catch (Exception e) {
> >
> >            String message =
> > SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noValidSyncResponse);
> >            if (msgCtx != null &&! msgCtx.isServerSide () &&
> >
> (Sandesha2Constants.SPEC_2005_02.Actions.ACTION_CREATE_SEQUENCE.equals(msgCtx.getSoapAction())
> >
> >
> ||Sandesha2Constants.SPEC_2007_02.Actions.ACTION_CREATE_SEQUENCE.equals(msgCtx.getSoapAction()))
> > ){
> >                // We have not received a valid createSequnce reponse
> > for the request we send so we need to terminate the seunce here
> >                return false;
> >            } else {
> >                if ( log.isWarnEnabled())
> >                    log.warn(message, e);
> >         }
> >
> > I'm not sure why the code is looking for ACTION_CREATE_SEQUENCE
> > instead of ACTION_CREATE_SEQUENCE_RESPONSE!
> >
> >
> > Any ideas?
> >
> > ( I have read the link in http://wso2.org/library/1027 but I realized
> > the changes suggested in the article are already incorporated in the
> > sandesha 1.3 module.xml file)
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-user-help@ws.apache.org
> >
> >
>
>



-- 
Don't be evil!!!

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: Axis2 Rampart + Sandesha integration problem

Posted by Sukma Agung Verdianto <sa...@gmail.com>.
I've solved my previous problem.And now I get the same error like yours.

On Dec 19, 2007 3:27 PM, Alberto Patino <pa...@gmail.com> wrote:

> I'm trying to do the same thing you want to do but I having a
> different message error: (Debug enabled)
>
> [DEBUG] Exit: InMemoryTransaction::enlist
> [DEBUG] Enter: InMemoryStorageManager::removeMessageContext, key:
> urn:uuid:818835A043FB6125F01198050445672
> [DEBUG] Exit: InMemoryStorageManager::removeMessageContext, key:
> urn:uuid:818835A043FB6125F01198050445672
> [DEBUG] Entry: OutInAxisOperationClient$SyncCallBack::onError,
> java.lang.Exception: Sandesha2 sender thread has not received a valid
> CreateSequnceResponse
> [DEBUG] Exit: OutInAxisOperationClient$SyncCallBack::onError
> [DEBUG] Exit: SenderWorker::run
>
> The error is:  "Sandesha2 sender thread has not received a valid
> CreateSequnceResponse"
>
> I'm tracking the error in the SenderWorker.java file,
> checkForSyncResponses function:
>
>
>        } catch (Exception e) {
>
>            String message =
> SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noValidSyncResponse);
>            if (msgCtx != null &&! msgCtx.isServerSide() &&
> (Sandesha2Constants.SPEC_2005_02.Actions.ACTION_CREATE_SEQUENCE.equals(
> msgCtx.getSoapAction())
>
> ||Sandesha2Constants.SPEC_2007_02.Actions.ACTION_CREATE_SEQUENCE.equals(
> msgCtx.getSoapAction()))
> ){
>                // We have not received a valid createSequnce reponse
> for the request we send so we need to terminate the seunce here
>                return false;
>            } else {
>                if (log.isWarnEnabled())
>                    log.warn(message, e);
>         }
>
> I'm not sure why the code is looking for ACTION_CREATE_SEQUENCE
> instead of ACTION_CREATE_SEQUENCE_RESPONSE!
>
>
> Any ideas?
>
> ( I have read the link in http://wso2.org/library/1027 but I realized
> the changes suggested in the article are already incorporated in the
> sandesha 1.3 module.xml file)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>

Re: Axis2 Rampart + Sandesha integration problem

Posted by Alberto Patino <pa...@gmail.com>.
I'm trying to do the same thing you want to do but I having a
different message error: (Debug enabled)

[DEBUG] Exit: InMemoryTransaction::enlist
[DEBUG] Enter: InMemoryStorageManager::removeMessageContext, key:
urn:uuid:818835A043FB6125F01198050445672
[DEBUG] Exit: InMemoryStorageManager::removeMessageContext, key:
urn:uuid:818835A043FB6125F01198050445672
[DEBUG] Entry: OutInAxisOperationClient$SyncCallBack::onError,
java.lang.Exception: Sandesha2 sender thread has not received a valid
CreateSequnceResponse
[DEBUG] Exit: OutInAxisOperationClient$SyncCallBack::onError
[DEBUG] Exit: SenderWorker::run

The error is:  "Sandesha2 sender thread has not received a valid
CreateSequnceResponse"

I'm tracking the error in the SenderWorker.java file,
checkForSyncResponses function:


	} catch (Exception e) {

            String message =
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noValidSyncResponse);
            if (msgCtx != null &&! msgCtx.isServerSide() &&
(Sandesha2Constants.SPEC_2005_02.Actions.ACTION_CREATE_SEQUENCE.equals(msgCtx.getSoapAction())

||Sandesha2Constants.SPEC_2007_02.Actions.ACTION_CREATE_SEQUENCE.equals(msgCtx.getSoapAction()))
){
                // We have not received a valid createSequnce reponse
for the request we send so we need to terminate the seunce here
                return false;
            } else {
                if (log.isWarnEnabled())
                    log.warn(message, e);
         }

I'm not sure why the code is looking for ACTION_CREATE_SEQUENCE
instead of ACTION_CREATE_SEQUENCE_RESPONSE!


Any ideas?

( I have read the link in http://wso2.org/library/1027 but I realized
the changes suggested in the article are already incorporated in the
sandesha 1.3 module.xml file)

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: Axis2 Rampart + Sandesha integration problem

Posted by Sukma Agung Verdianto <sa...@gmail.com>.
Hi All,
http://wso2.org/library/1027

I've got this article from WSO2, could someone here explain what I should do
exactly please.

I'm getting stuck with this :(

Regards,
Sukma


On Nov 30, 2007 10:02 AM, Sukma Agung Verdianto <sa...@gmail.com> wrote:

> Hi All,
>
> I have successfully implementing Axis2 web service with WS-Security only
> and WS-RM only (not integrated yet).
> Today, I've tried to implement Axis2 1.3 web service with
> WS-Security(Rampart) and Reliable Messaging Support (Sandesha2) but have no
> luck due to "Missing Timestamp" error when invoking RM CreateSequence.
> The real message is encrypted and successfully processed after
> CreateSequence but the client repeat therequest and never terminated (not
> sure, never wait, maybe there is timeout).
>
> Here is the CreateSequence request:
> ----------------------------------------------------
>
> POST /axis2/services/CreateApplicationInitiatorSOAPService?wsdl HTTP/1.1
> Content-Type: application/soap+xml; charset=UTF-8; action="
> http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence"
> User-Agent: Axis2
> Host: 127.0.0.1:8888
> Transfer-Encoding: chunked
>
> 36e
> <?xml version='1.0' encoding='UTF-8'?>
>    <soapenv:Envelope xmlns:soapenv="
> http://www.w3.org/2003/05/soap-envelope">
>       <soapenv:Header xmlns:wsa=" http://www.w3.org/2005/08/addressing">
>          <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
> " soapenv:mustUnderstand="true" />
>          <wsa:To>http://localhost:8888/axis2/services/CreateApplicationInitiatorSOAPService?wsdl
> </wsa:To>
>
> <wsa:MessageID>urn:uuid:5B6ECBFB9B01F9184A1196349989655</wsa:MessageID>
>          <wsa:Action>http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence
> </wsa:Action>
>       </soapenv:Header>
>       <soapenv:Body>
>          <wsrm:CreateSequence xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm
> ">
>             <wsrm:AcksTo>
>                <wsa:Address xmlns:wsa="http://www.w3.org/2005/08/addressing
> ">http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
>             </wsrm:AcksTo>
>          </wsrm:CreateSequence>
>       </soapenv:Body>
>    </soapenv:Envelope>0
>
>
>
> And the response:
> --------------------------
>
> HTTP/1.1 500 Internal Server Error
> Server: Apache-Coyote/1.1
> Content-Type: application/soap+xml; action="
> http://www.w3.org/2005/08/addressing/soap/fault";charset=UTF-8
> Transfer-Encoding: chunked
> Date: Thu, 29 Nov 2007 15:26:30 GMT
> Connection: close
>
> aff
> <?xml version='1.0' encoding='UTF-8'?>
>    <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope
> ">
>       <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
>          <wsa:Action> http://www.w3.org/2005/08/addressing/soap/fault
> </wsa:Action>
>
> <wsa:RelatesTo>urn:uuid:5B6ECBFB9B01F9184A1196349989655</wsa:RelatesTo>
>       </soapenv:Header>
>       <soapenv:Body>
>          <soapenv:Fault>
>             <soapenv:Code>
>                <soapenv:Value>soapenv:Receiver</soapenv:Value>
>             </soapenv:Code>
>             <soapenv:Reason>
>                <soapenv:Text xml:lang="en-US">Missing
> Timestamp</soapenv:Text>
>             </soapenv:Reason>
>             <soapenv:Detail>
>                <Exception>org.apache.axis2.AxisFault: Missing Timestamp at
> org.apache.rampart.handler.RampartReceiver.invoke (RampartReceiver.java
> :92) at org.apache.axis2.engine.Phase.invoke(Phase.java:292) at
> org.apache.axis2.engine.AxisEngine.invoke (AxisEngine.java:235) at
> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:135) at
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(
> HTTPTransportUtils.java:275) at
> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:121) at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:252) at
> org.apache.catalina.core.ApplicationFilterChain.doFilter (
> ApplicationFilterChain.java:173) at
> org.apache.catalina.core.StandardWrapperValve.invoke(
> StandardWrapperValve.java:213) at
> org.apache.catalina.core.StandardContextValve.invoke(
> StandardContextValve.java:178) at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
> :105) at org.apache.catalina.core.StandardEngineValve.invoke (
> StandardEngineValve.java:107) at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java
> :148) at org.apache.coyote.http11.Http11Processor.process(
> Http11Processor.java:869) at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(
> Http11BaseProtocol.java:664) at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
> PoolTcpEndpoint.java:527) at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
> LeaderFollowerWorkerThread.java:80) at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run (
> ThreadPool.java:684) at java.lang.Thread.run(Thread.java:613)Caused by:
> org.apache.rampart.RampartException: Missing Timestamp at
> org.apache.rampart.PolicyBasedResultsValidator.validate(
> PolicyBasedResultsValidator.java:68) at
> org.apache.rampart.RampartEngine.process(RampartEngine.java :192) at
> org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:85) ...
> 21 more</Exception>
>             </soapenv:Detail>
>          </soapenv:Fault>
>       </soapenv:Body>
>    </soapenv:Envelope>
> 0
>
>
>
> I have search on google, and found some article that there is some hack to
> integrate Rampart & Sandesha2, but I'm not really clear.
> Is this configuration problem or something else?
> I would appreciate if someone help me out with this problem.
>
> Regards,
> Sukma
>

Re: Axis2 Rampart + Sandesha integration problem

Posted by Martin Gainty <mg...@hotmail.com>.
check the wsdl for reference to a securitypolicy namespace
<sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">

then somewhere before </wsp:Policy> do you see
<sp:IncludeTimestamp /> 

?
M--
  ----- Original Message ----- 
  From: Sukma Agung Verdianto 
  To: axis-user@ws.apache.org 
  Sent: Thursday, November 29, 2007 10:02 PM
  Subject: Axis2 Rampart + Sandesha integration problem


  Hi All,


  I have successfully implementing Axis2 web service with WS-Security only and WS-RM only (not integrated yet).
  Today, I've tried to implement Axis2 1.3 web service with WS-Security(Rampart) and Reliable Messaging Support (Sandesha2) but have no luck due to "Missing Timestamp" error when invoking RM CreateSequence.
  The real message is encrypted and successfully processed after CreateSequence but the client repeat therequest and never terminated (not sure, never wait, maybe there is timeout). 


  Here is the CreateSequence request:
  ----------------------------------------------------


  POST /axis2/services/CreateApplicationInitiatorSOAPService?wsdl HTTP/1.1 
  Content-Type: application/soap+xml; charset=UTF-8; action="http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence"
  User-Agent: Axis2 
  Host: 127.0.0.1:8888
  Transfer-Encoding: chunked


  36e
  <?xml version='1.0' encoding='UTF-8'?> 
     <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
        <soapenv:Header xmlns:wsa=" http://www.w3.org/2005/08/addressing">
           <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd " soapenv:mustUnderstand="true" />
           <wsa:To>http://localhost:8888/axis2/services/CreateApplicationInitiatorSOAPService?wsdl </wsa:To>
           <wsa:MessageID>urn:uuid:5B6ECBFB9B01F9184A1196349989655</wsa:MessageID>
           <wsa:Action> http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence</wsa:Action>
        </soapenv:Header>
        <soapenv:Body>
           <wsrm:CreateSequence xmlns:wsrm=" http://schemas.xmlsoap.org/ws/2005/02/rm">
              <wsrm:AcksTo>
                 <wsa:Address xmlns:wsa="http://www.w3.org/2005/08/addressing ">http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
              </wsrm:AcksTo>
           </wsrm:CreateSequence> 
        </soapenv:Body>
     </soapenv:Envelope>0






  And the response:
  --------------------------


  HTTP/1.1 500 Internal Server Error
  Server: Apache-Coyote/1.1
  Content-Type: application/soap+xml; action=" http://www.w3.org/2005/08/addressing/soap/fault";charset=UTF-8
  Transfer-Encoding: chunked
  Date: Thu, 29 Nov 2007 15:26:30 GMT
  Connection: close


  aff
  <?xml version='1.0' encoding='UTF-8'?>
     <soapenv:Envelope xmlns:soapenv=" http://www.w3.org/2003/05/soap-envelope">
        <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
           <wsa:Action> http://www.w3.org/2005/08/addressing/soap/fault</wsa:Action>
           <wsa:RelatesTo>urn:uuid:5B6ECBFB9B01F9184A1196349989655</wsa:RelatesTo> 
        </soapenv:Header>
        <soapenv:Body>
           <soapenv:Fault>
              <soapenv:Code>
                 <soapenv:Value>soapenv:Receiver</soapenv:Value> 
              </soapenv:Code>
              <soapenv:Reason>
                 <soapenv:Text xml:lang="en-US">Missing Timestamp</soapenv:Text>
              </soapenv:Reason> 
              <soapenv:Detail>
                 <Exception>org.apache.axis2.AxisFault: Missing Timestamp at org.apache.rampart.handler.RampartReceiver.invoke (RampartReceiver.java:92) at org.apache.axis2.engine.Phase.invoke(Phase.java:292) at org.apache.axis2.engine.AxisEngine.invoke (AxisEngine.java:235) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:135) at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest (HTTPTransportUtils.java:275) at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:121) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValvejava:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValvejava:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java :126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection (Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run (ThreadPool.java:684) at java.lang.Thread.run(Thread.java:613)Caused by: org.apache.rampart.RampartException: Missing Timestamp at org.apache.rampart.PolicyBasedResultsValidator.validate(PolicyBasedResultsValidator.java:68) at org.apache.rampart.RampartEngine.process(RampartEngine.java :192) at org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:85) ... 21 more</Exception> 
              </soapenv:Detail>
           </soapenv:Fault>
        </soapenv:Body>
     </soapenv:Envelope>
  0






  I have search on google, and found some article that there is some hack to integrate Rampart & Sandesha2, but I'm not really clear. 
  Is this configuration problem or something else?
  I would appreciate if someone help me out with this problem.


  Regards,

  Sukma