Enabling Web Service Security With OpenAM WSS Agent - web-services

I am struggling with setting up the Web service security with OpenAM.
Here is what I have done so far:
I looked up openam documentation but I could nto find anything
significant which points to web service security implementation details.
However I found this link
(http://www.oracle.com/technetwork/java/wss-sdn-1-137232.html) on
OpenSSO oracle website which gives step by step instructions to
secure the web services.
Also I found this post
(http://www.stormacq.com/web-services-security-with-opensso-security-token-service-sts/) which essentially says that there are many issues one might face while
trying to implement WSS in OpenAM.
I followed oracle link (point 2 above) and tried to implement the WSS in OpenAM version 10.0.0:
My questions:
But The WSS Agent I got from OpenAM website is glassfish version. I am not sure if extracting it and including files from it in my service and client will cause any issues if the server is not glassfish. OpenAM website has glassfish version only.
Another problem is that oracle tutorial was probably written in days of OpenSSO 8.0. Not sure if it will work with Open AM 10. I can see some differences in directory structure already.
It will be helpful if anyone can point me to any other available documentation for implementation of WSS in OpenAM.
Is it advisable to use some IDM solution other than OpenAM for WSS security if OpenAM WSS has known issues.
Any help here will be sincerely appreciated. Thanks in Advance.

WSS Agent actually is a JAX-WS filter implementation. It does not rely on GlassFish you can also use it with Tomcat and Metro. However I've not tested it with Apache CXF yet.
Unfortunately there's no real documentation yet. If you face issues you may post it to the OpenAM mailing list.

Related

Websphere Security Configuration for Apache CXF WebServices

I am currently trying to configure security in Websphere 8/9 for the CXF soap Web-Services in our application.
Websphere Console is currently unable to see the CXF Web-Services, however we require Websphere to see them to configure security.
I have found some documentation which suggests that this is not possible:
https://www.ibm.com/support/knowledgecenter/en/SSAW57_9.0.0/com.ibm.websphere.nd.multiplatform.doc/ae/twbs_thirdparty.html
Does anyone know of any way round this?
I would recommend you use the built in libraries rather than CXF, as WAS is able to monitor those libraries.

Application Development Using WSO2 Servers

Can I have source code of any running application/Test case build using (DSS,ESB,IS,AS, etc).
I am able to understand the these servers separately but not able to deliver any project using these servers collectively.
Do not have clue to use all these servers collectively best way and din't get any video, article or samples using all there in one application.
I Have already posted this question in StackOverflow, but din't get any response.
Please help me to achieve the same so that the greatness of WSO2, I can show to some of my colleague and We can go long with WSO2.
You can try the Retail Bankning Sample with WSO2 Developer Studio and bunch of other WSO2 Servers such as WSO2 ESB, WSO2 BPS, WSO2 DSS, WSO2 AS etc [1]. This sample was demonstrated on this webinar as well [2]. Source code for the Webinar is in [3].
[1]. https://docs.wso2.com/display/DVS370/Retail+Banking+Sample
[2]. http://www.youtube.com/watch?v=4hdq1Qq-XSc
[3]. https://svn.wso2.org/repos/wso2/trunk/tools/ide/eclipse/docs/src/main/resources/samples/banking-sample/Webinar/
Hope this helps!

how to publish and discover a java web service

I am new to developing web services using java. I have an academic project where I need to do dynamic service composition. For that I can't directly create a service-client for a particular service because if I do so then that client will call that particular service only. Client need to search various web services and then out of those services select any one at run time and also call that service at run time.
I was able to develop the web service(JAX-WS) using Eclipse(indigo), I also created the client for that web service and every thing is working fine. Now my problem is that while creating the client I am hard coding the client to call that particular web service only(since I am creating the client using the WSDL file of the service). However I actually need to call any one of the searched service, but for that I need to publish the service some where then discover it and then call it.
I tried publishing the service to juddiv3. But on juddiv3 I could only publish the sample service supplied with the juddiv3. When I try to publish service created by me then it is not getting displayed in the group of published services.
Is there any other UDDI server which I could install on my local machine and then publish and discover the service from that. Also I was not able to figure out how to create a client that will modify itself at run time to call any one service out of various searched services.
Kindly provide the necessary steps and code.
Thanks
You can use jUDDI (http://juddi.apache.org/ ).
juddi is based on UDDI v2.0, v 3.0 .
Here, you can publish as well as discover your web service.
For integration, you have to make some application which integrates with jUDDI.
But I think for your academic project, and for your purpose, jUDDI is best suitable! ( :) )
jUDDI has a boat load of examples in the source code trunk. You may want to check them out. It's difficult to guess what the problem is from the little information you've provided. Consider contacting the jUDDI team for further assistance. http://svn.apache.org/repos/asf/juddi/trunk/juddi-examples/. There's also additional document for working with UDDI in the jUDDI user's guide, which is at the jUDDI web site
You cannot directly publish on jUDDI. You need to create publisher entities in jUDDI server also. You'll find Rename4Sales and Rename4Marketing examples in 'Classes' folder in the standalone server's juddi application. Use these XMLs as your basis and create your own entity. You also need to configure the server's login credentials.
I suggest you follow the tutorials on jUDDI blog.

Creating WCF Service and deploying it to run in Sitecore context

We have a need to add sitecore items programmmtically. To achieve this we are basically creating new WCF Service as the standard webservice provided by sitecore is not serving our purpose. The new WCF service created in VS2010 is pushed/published to same folder as standard webservice(sitecore/shell/webservice). For some reason the service doesn't work at all throws configuration errors.
Could anyone let me know where exactly this custom service should be deployed.
I had lots of issues deploying both WCF and old-style (.ASCX) web services in a Sitecore-controlled application. I never was able to find a satisfactory solution, even after speaking with their tech support. I ended up creating my own HTTP handlers to accept POST data and used those instead of WCF. I know it's not the best solution, but it worked.

Can a .Net 1.1 client call a .Net 2.0 web service? If so, how?

We have finally upgraded our web services from .Net 1.1 to .Net 2.0/3.5. One of the clients that calls these web services is run as a windows service. It is probable that the windows service will not be upgraded until some time after upgrading the server at customer sites.
Is it possible to massage my .Net 2.0 web services so they will correctly service the calls from the .Net 1.1 client? In my test environment, I connect to the .Net 2.0 web service from a .Net 1.1 client and I receive a 401.1 error from IIS. The web service is set to anonymous access. The same credentials work when connecting to the .Net 2.0 web service from a .Net 2.0 client.
Thanks for your help,
-colin-
Web services are meant to be platform-neutral. If your web service was written properly, then any client, on any platform supporting SOAP 1.1, should be able to consume it.
One place where this can fall down is if your service is returning or receiving types specific to .NET. If you send or receive a DataSet, for instance, then there can be problems - DataSet is specific not only to .NET, but also to specific versions of .NET. There were many changes made in the area of XML and XML Serialization between .NET 1.1 and .NET 2.0, and you could eventually see one of those problems.
But I don't think any of those should get you a 401 error. Look into the event log and see if anything interesting was written about that error.
It depends on the service. If the .NET 2.0 service:
Is configured to support SOAP 1.1
Does not use WSE 3.0 (WSE 2.0 is OK)
Does not use any nullable types (not supported in .NET 1.1)
Accepts and returns only primitives or POCO classes (no DataSets, etc.)
Then it's compatible.
If you're getting a 401.1 error, but have no problem connecting with other clients from the same machine, then my guess is that the service is expecting something in the SOAP headers. What it's expecting, I can't tell you offhand; I'd have to see the service code/configuration.
Alternatively, it might just be a configuration issue on the web server. Without more details about the specific environments that can/cannot connect, it's hard to say.
As #Aaronaught wrote, The error can be that the service is expecting something in the SOAP headers. To analyse this, you could verify the wsdl generated (expand all files of web reference) or download the metadata via svcutil.exe. This will generate a proxy, that is used to call the web-service.
That way, you have more control over the proxy.
Example on how to use svcutil:
From command prompt:
svcutil
http://service/metadataEndpoint
Thank you for your responses. They were helpful in further diagnosing why it wasn't working. It turns out that everything does work and that the 401.1 response was misleading (but correct). Our problem was due to a change in the web services directory structure. Had I been paying better attention, I might have caught it before asking this question.
To answer my question: Yes. A .Net 1.1 client can call a .Net 2.0 web service and, in general, no additional configuration is necessary. Just make sure you're URI is correct.