How to remove <wsse:security> from the soap header? - asmx

How can I remove the from the soap header?
I am using WSE 3.0 and I want to remove this
<wsse:Security>
<wsu:Timestamp wsu:Id="Timestamp-3abc1d4b-faa4-423c-9987-54e0f49a5782">
<wsu:Created>2014-04-07T06:15:35Z</wsu:Created>
<wsu:Expires>2014-04-07T06:20:35Z</wsu:Expires>
</wsu:Timestamp>
</wsse:Security>
How can I remove this. Removing Security header
I am using .net c# 4.0 Asmx approach to create a proxy class of java web service

Related

Spring Boot : Apache CXF SOAP with #RestController for rest ws

I'm working SOAP and REST together into the same application. Rest web service with #RestController and SOAP with apache cxf.
Rest ws and soap have the same path, for example:
Rest: GET http://localhost:8080/ws/person
SOAP: http://localhost:8080/ws/findPerson
For configuring cxf servlet, i create the following method
#Bean
public ServletRegistrationBean cxfServletRegistration() {
return new ServletRegistrationBean(new CXFServlet(), "/ws/*"); }
SOAP Service are running fine after change but REST (#RestController) stop working, but if I disable the method cxfServletRegistration(), the rest WS working fine.
Could you suggest any solution to make all WS working together ?
You can't, because each servlet must "own" its listening basepath. Despite the lack of an explicit registration, RestControllers listen on a base path (default /*) Do you actually need to use #RestController? CXF has REST support via JAX-RS.
Otherwise, I would suggest to separate your REST and SOAP functionality, such as having REST on /model/... and SOAP on /api/... or some such separation.

How to define Azure api apps to return json?

I created Visual studio default Azure API Apps. I call the API from SPA JavaScript but the return type is XML and I'd like it to be JSON. I tried to set XMLHttpRequest.responseType = "json" but after that the response is null.
So, how to define the Azure API App return type?
why are you using XMLHttpRequest? can you try using the HTTPClient
Web API provides media-type formatters for both JSON and XML. The
framework inserts these formatters into the pipeline by default.
Clients can request either JSON or XML in the Accept header of the
HTTP request. JSON formatting is provided by the
JsonMediaTypeFormatter class. By default, JsonMediaTypeFormatter uses
the Json.NET library to perform serialization. Json.NET is a
third-party open source project.

Mule: Migrating to the New HTTP Connector

I've upgraded from Mule 3.5.x to 3.6.x and since the old http transport is deprecated in 3.6.x I wanted to migrate to the new HTTP connector.
Here is the original code for calling my webservice:
<http:outbound-endpoint ref="OrderEndpoint" doc:name="GetApprovedOrder">
<cxf:jaxws-client serviceClass="com.acme.orders.IOrderServiceBean"
port="OrderServiceBean_v2_0Port"
operation="getApprovedOrderOp" />
</http:outbound-endpoint>
The point I have got to with the new connector is as follows:
<cxf:jaxws-client serviceClass="com.acme.orders.v2_0.IOrderServiceBean" port="OrderServiceBean_v2_0Port" operation="getApprovedOrderOp" />
<http:request config-ref="http.request.config" path="acme-services/OrderServiceBean_v2_0" method="POST" />
The issue that I have is that with the old version of the code, after calling the web service, the payload would be the response [java] object. With the new version of the code the payload is a org.glassfish.grizzly.utils.BufferInputStream containing the soap xml.
I could use a combination of xpath and a jaxb-xml-object-transformer to convert the contents of the stream to the response object, this just seems like a backwards step though.
I have looked into using the jaxws-client without the request and also at the ws-consumer, but my following requirements seems to rule these options out (unless I'm just misunderstanding how to use them).
I need to use the contract first method for calling the web services, see above where I have specified serviceClass rather than wsdl.
The web services use basic auth, therefore I need to specify a username and password.
I need to be able to specify the host and port (or at least the address) of the web service.
The solution is: wrap your element into a processor-chain
As follows:
<processor-chain>
<cxf:jaxws-client serviceClass="com.acme.orders.v2_0.IOrderServiceBean" port="OrderServiceBean_v2_0Port" operation="getApprovedOrderOp" />
<http:request config-ref="http.request.config" path="acme-services/OrderServiceBean_v2_0" method="POST" />
</processor-chain>
This is because cxf is intercepting, so after the processor chain you would have the same object as you had in your previous solution.

Can we use Spring WS for webservice of type RPC/ENCODED?

I have a WSDL of type RPC/Encoded and implementing Message Level Security (my XSD is complex type).
Can I use Spring WS for this type of Web Service?
is JAX-WS support this type of web service?
What is best way to implement this type of webservice? I need to implement the client.
JAX-WS does not support RPC/Encoded type of web services. For this we can use Rampart and also for more reference we can also refer to WSO2

Changing encryption Algorithm in WSE 3.0

I am using a Java web services from a c# client.The web services is using WS-security.The request I am sending is using
Where as the server is expecting
When I tried changing it in the code I found that this property is a read-only property.
So how can I change this property?
Below is the actual code from my WSE 3.0 client to change the encryption algorithm.
X509SecurityTokenManager objCertTokenManager = (X509SecurityTokenManager)SecurityTokenManager.GetSecurityTokenManagerByTokenType(WSTrust.TokenTypes.X509v3);
objCertTokenManager.DefaultKeyAlgorithm = "RSA15";
objCertTokenManager.DefaultSessionKeyAlgorithm = "TripleDES";

Resources