Hello World Secure Web Service Service Sample | |
============================================= | |
This sample demonstrates an SCA service that uses a web service binding that is enabled for simple | |
authentication using UseridToken and PasswordText | |
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 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-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 | |
Now the server is started you can use the helloworld-ws-reference-secure sample to | |
exercise it. | |
Sample Overview | |
--------------- | |
The sample provides a single component that is wired to a service with a | |
web service binding. The service specifies a policy intent named 'authentication' | |
which is fulfilled by a suitable policyset that is defined for the SCA Domain. Over | |
the helloworld-ws-service 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-service-secure/ | |
src/ | |
main/ | |
java/ | |
helloworld/ | |
HelloWorldService.java - interface description for | |
HelloWorldServiceComponent | |
HelloWorldImpl.java - component implementation | |
HelloWorldServer.java - starts the SCA Runtime and | |
deploys the helloworldws | |
.composite and then waits for the | |
service to be called via web services | |
ServerPWCBHandler.java - callback handler to authenticate client userid and password. | |
The handle(Callback[] callbacks) method of this class typically contains | |
code for accessing user registries and retrieving passwords | |
for user identifiers sent by the client and verifying them | |
against the password sent by the client. 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 describes | |
the exposed service | |
helloworldws.composite - the SCA assembly for this sample | |
definitions.xml - the SCA Definitions file that contains intents and policysets | |
defined for the SCA Domain | |
helloworld-ws-service-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 using the | |
following commands | |
cd helloworld-ws-service-secure | |
ant compile | |
ant run | |
You should see the following output from the run target. | |
run: | |
[java] 14-Jan-2008 14:22:07 org.apache.tuscany.sca.http.jetty.JettyServer a | |
ddServletMapping | |
[java] INFO: Added Servlet mapping: http://L3AW203:8085/HelloWorldService | |
[java] 14-Jan-2008 14:22:07 org.apache.tuscany.sca.http.jetty.JettyServer a | |
ddServletMapping | |
[java] INFO: Added Servlet mapping: http://L3AW203:8085/HelloWorldWsPolicyS | |
ervice | |
[java] HelloWorld server started (press enter to shutdown) | |
As this point the SCA service is exposed as a web service by a web server | |
started automatically by the SCA runtime. The webservice requires clients to | |
have security headers that carry userid tonken and password text. | |
To stop the server just press enter. | |
To exercise the service run up the helloworld-ws-reference-secure sample. Take a look at | |
the README in that sample and you will see you need the following commands | |
cd helloworld-ws-reference-secure | |
ant run | |
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-reference-secure sample as Maven includes a simple ping test to make sure that the | |
service is available | |
cd helloworld-ws-service-secure | |
mvn | |
You should see the following output from the test phase. | |
------------------------------------------------------- | |
T E S T S | |
------------------------------------------------------- | |
Running helloworld.HelloWorldServerTestCase | |
14-Jan-2008 14:23:20 org.apache.catalina.core.StandardEngine start | |
INFO: Starting Servlet Engine: Apache Tomcat/6.0.10 | |
14-Jan-2008 14:23:20 org.apache.catalina.startup.ContextConfig defaultWebConfig | |
INFO: No default web.xml | |
14-Jan-2008 14:23:20 org.apache.catalina.startup.DigesterFactory register | |
WARNING: Could not get url for /javax/servlet/jsp/resources/jsp_2_0.xsd | |
14-Jan-2008 14:23:20 org.apache.catalina.startup.DigesterFactory register | |
WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_ | |
1.dtd | |
14-Jan-2008 14:23:20 org.apache.catalina.startup.DigesterFactory register | |
WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_ | |
2.dtd | |
14-Jan-2008 14:23:20 org.apache.catalina.startup.DigesterFactory register | |
WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_2_ | |
0.xsd | |
14-Jan-2008 14:23:20 org.apache.catalina.startup.DigesterFactory register | |
WARNING: Could not get url for /javax/servlet/resources/j2ee_web_services_1_1.xs | |
d | |
14-Jan-2008 14:23:21 org.apache.coyote.http11.Http11Protocol init | |
INFO: Initializing Coyote HTTP/1.1 on http-8085 | |
14-Jan-2008 14:23:21 org.apache.coyote.http11.Http11Protocol start | |
INFO: Starting Coyote HTTP/1.1 on http-8085 | |
14-Jan-2008 14:23:21 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM | |
apping | |
INFO: Added Servlet mapping: http://L3AW203:8085/HelloWorldService | |
14-Jan-2008 14:23:21 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM | |
apping | |
INFO: Added Servlet mapping: http://L3AW203:8085/HelloWorldWsPolicyService | |
14-Jan-2008 14:23:21 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: 5.734 sec | |
This shows that the Junit test cases have run successfully. |