
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1069273 13f79535-47bb-0310-9956-ffa450edef68
176 lines
7.7 KiB
Text
176 lines
7.7 KiB
Text
Hello World Secure Web Service References Sample
|
|
================================================
|
|
This sample demonstrates an SCA reference that uses a web service binding.
|
|
|
|
The README in the samples directory (the directory above this) provides
|
|
general instructions about building and running samples. Take a look there
|
|
first.
|
|
|
|
If you just want to run it to see what happens you need to run the server first
|
|
so open a command prompt, navigate to the helloworld-ws-service sample directory
|
|
and do
|
|
|
|
ant run
|
|
|
|
OR if you don't have ant, on Windows do
|
|
|
|
java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-helloworld-ws-service-secure.jar helloworld.HelloWorldServer
|
|
|
|
and on *nix do
|
|
|
|
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-helloworld-ws-service-secure.jar helloworld.HelloWorldServer
|
|
|
|
|
|
Once the server is running open a command prompt, navigate to this sample
|
|
directory and do:
|
|
|
|
ant run
|
|
|
|
OR if you don't have ant, on Windows do
|
|
|
|
java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-helloworld-ws-reference-secure.jar helloworld.HelloWorldClient
|
|
|
|
and on *nix do
|
|
|
|
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-helloworld-ws-reference-secure.jar helloworld.HelloWorldClient
|
|
|
|
|
|
Sample Overview
|
|
---------------
|
|
The sample provides a single component that is wired to a reference with a
|
|
web service binding. The binding refers to WSDL that identifies the service
|
|
exposed by the helloworld-ws-service-secure sample. This sample invokes a
|
|
secure web-serivce and hence specifies a policy intent named 'authentication'
|
|
which is fulfilled by a suitable policyset that is defined for the SCA Domain.
|
|
Over the helloworld-ws-reference sample, this sample demonstrate generally
|
|
the use of policy intents and policy sets in Tuscany taking the specific instance
|
|
of a security policy.
|
|
|
|
Note :
|
|
------
|
|
The policies mentioned and supported are instances of Tuscany specified policies and
|
|
not instnaces of WS-Policy.
|
|
|
|
helloworld-ws-reference-secure/
|
|
src/
|
|
main/
|
|
java/
|
|
helloworld/
|
|
HelloWorldService.java - interface description for
|
|
HelloWorldServiceComponent
|
|
HelloWorldServiceComponent.java - component implementation
|
|
HelloWorldClient.java - starts the SCA Runtime and
|
|
deploys the helloworldwsclient
|
|
.composite. It then calls the
|
|
HelloWorldServiceComponent
|
|
ClientPWCBHandler.java - Callback handler class to provide client password. The
|
|
handle(Callback[] callbacks) method of this class is where
|
|
code for accessing user registries and retrieving passwords
|
|
for given user identifiers can be encapsulated. For example
|
|
here is where one could access LDAP registries to obtain or
|
|
compare user identities and passwords.
|
|
|
|
resources/
|
|
wsdl
|
|
helloworld.wsdl - the service description that the
|
|
SCA reference uses to bind to
|
|
helloworldwsclient.composite - the SCA assembly for this sample
|
|
logging.properties - log4j configuration file
|
|
definitions.xml - the SCA Definitions file that contains intents and policysets
|
|
defined for the SCA Domain
|
|
test/
|
|
java/
|
|
helloworld/
|
|
HelloWorldClientTestCase.java - JUnit test case
|
|
HelloWorldServerTest.java - starts the Web service
|
|
helloworld-ws-reference-secure.png - a pictorial representation of the
|
|
sample .composite file
|
|
build.xml - the Ant build file
|
|
pom.xml - the Maven build file
|
|
|
|
Building And Running The Sample Using Ant
|
|
-----------------------------------------
|
|
With the binary distribution the sample can be built and run using Ant. Before
|
|
you do this start up the service that the reference will talk to. To do this
|
|
run up the helloworld-ws-service-secure test. Take a look at the README in that sample
|
|
and you will see you need the following commands
|
|
|
|
cd helloworld-ws-service-secure
|
|
ant run
|
|
|
|
Once done you can now compile and run this sample using the following commands;
|
|
|
|
cd helloworld-ws-reference-secure
|
|
ant compile
|
|
ant run
|
|
|
|
You should see the following output from the run target.
|
|
|
|
run:
|
|
[java] log4j:WARN No appenders could be found for logger (org.apache.axiom.
|
|
om.util.StAXUtils).
|
|
[java] log4j:WARN Please initialize the log4j system properly.
|
|
[java] Injected helloWorldService
|
|
[java] Called getGreetings
|
|
[java] *** Calling Client UserId/Password Handler ....
|
|
[java] Hello World
|
|
|
|
Building And Running The Sample Using Maven
|
|
-------------------------------------------
|
|
With either the binary or source distributions the sample can be built and run
|
|
using Maven as follows. When using Maven you don't need to run the helloworld-
|
|
ws-service-secure sample first as Maven does this for you.
|
|
|
|
cd helloworld-ws-reference-secure
|
|
mvn
|
|
|
|
You should see the following output from the test phase.
|
|
|
|
-------------------------------------------------------
|
|
T E S T S
|
|
-------------------------------------------------------
|
|
Running helloworld.HelloWorldClientTestCase
|
|
log4j:WARN No appenders could be found for logger (org.apache.axiom.om.util.StAX
|
|
Utils).
|
|
log4j:WARN Please initialize the log4j system properly.
|
|
log4j:WARN No appenders could be found for logger (org.apache.axiom.om.util.StAX
|
|
Utils).
|
|
log4j:WARN Please initialize the log4j system properly.
|
|
10-May-2007 13:40:34 org.apache.catalina.core.StandardEngine start
|
|
INFO: Starting Servlet Engine: Apache Tomcat/6.0.10
|
|
10-May-2007 13:40:35 org.apache.catalina.startup.ContextConfig defaultWebConfig
|
|
INFO: No default web.xml
|
|
10-May-2007 13:40:35 org.apache.catalina.startup.DigesterFactory register
|
|
WARNING: Could not get url for /javax/servlet/resources/j2ee_1_4.xsd
|
|
10-May-2007 13:40:35 org.apache.catalina.startup.DigesterFactory register
|
|
WARNING: Could not get url for /javax/servlet/resources/xml.xsd
|
|
10-May-2007 13:40:35 org.apache.catalina.startup.DigesterFactory register
|
|
WARNING: Could not get url for /javax/servlet/jsp/resources/jsp_2_0.xsd
|
|
10-May-2007 13:40:35 org.apache.catalina.startup.DigesterFactory register
|
|
WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_2_
|
|
0.xsd
|
|
10-May-2007 13:40:35 org.apache.catalina.startup.DigesterFactory register
|
|
WARNING: Could not get url for /javax/servlet/resources/web-app_2_4.xsd
|
|
10-May-2007 13:40:35 org.apache.catalina.startup.DigesterFactory register
|
|
WARNING: Could not get url for /javax/servlet/resources/j2ee_web_services_1_1.xs
|
|
d
|
|
10-May-2007 13:40:35 org.apache.catalina.startup.DigesterFactory register
|
|
WARNING: Could not get url for /javax/servlet/resources/j2ee_web_services_client
|
|
_1_1.xsd
|
|
10-May-2007 13:40:35 org.apache.coyote.http11.Http11Protocol init
|
|
INFO: Initializing Coyote HTTP/1.1 on http-8085
|
|
10-May-2007 13:40:35 org.apache.coyote.http11.Http11Protocol start
|
|
INFO: Starting Coyote HTTP/1.1 on http-8085
|
|
Injected helloWorldService
|
|
Called getGreetings
|
|
*** Calling Client UserId/Password Handler ....
|
|
*** Calling Server User/Passwd Handler....
|
|
10-May-2007 13:40:36 org.apache.coyote.http11.Http11Protocol destroy
|
|
INFO: Stopping Coyote HTTP/1.1 on http-8085
|
|
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 6.349 sec
|
|
|
|
Results :
|
|
|
|
|
|
This shows that the Junit test cases have run successfully. Also note that the client side and server side
|
|
callback handlers for authentication have been called.
|