summaryrefslogtreecommitdiffstats
path: root/sandbox/sebastien/java/sca-node/samples/helloworld-ws-reference-secure/README
blob: 167991c8f7363b7c669ba5fb0c9c96e94eac9b8f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
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.