You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ru...@apache.org on 2005/09/16 10:45:03 UTC
svn commit: r289434 - in /webservices/axis2/trunk/java/modules/samples: ./
resources/security/ src/sample/security/ src/sample/security/META-INF/
Author: ruchithf
Date: Fri Sep 16 01:44:49 2005
New Revision: 289434
URL: http://svn.apache.org/viewcvs?rev=289434&view=rev
Log:
addressing.mar and security.mar added to the axis2.war and checkin in stuff for the security sample
Added:
webservices/axis2/trunk/java/modules/samples/resources/security/
webservices/axis2/trunk/java/modules/samples/resources/security/client.axis2.xml
webservices/axis2/trunk/java/modules/samples/resources/security/sec.jks (with props)
webservices/axis2/trunk/java/modules/samples/resources/security/sec.properties
webservices/axis2/trunk/java/modules/samples/resources/security/service.axis2.xml
webservices/axis2/trunk/java/modules/samples/src/sample/security/
webservices/axis2/trunk/java/modules/samples/src/sample/security/Client.java
webservices/axis2/trunk/java/modules/samples/src/sample/security/META-INF/
webservices/axis2/trunk/java/modules/samples/src/sample/security/META-INF/services.xml
webservices/axis2/trunk/java/modules/samples/src/sample/security/PWCallback.java
webservices/axis2/trunk/java/modules/samples/src/sample/security/Service.java
Modified:
webservices/axis2/trunk/java/modules/samples/maven.xml
webservices/axis2/trunk/java/modules/samples/project.xml
Modified: webservices/axis2/trunk/java/modules/samples/maven.xml
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/samples/maven.xml?rev=289434&r1=289433&r2=289434&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/maven.xml (original)
+++ webservices/axis2/trunk/java/modules/samples/maven.xml Fri Sep 16 01:44:49 2005
@@ -37,6 +37,7 @@
<attainGoal name="version"/>
<attainGoal name="mtomSample"/>
<attainGoal name="groovy"/>
+ <attainGoal name="securitySample"/>
</goal>
<!-- ================================================================ -->
@@ -237,6 +238,46 @@
<fileset dir="target/classes/sample/groovy">
</fileset>
</jar>
+ </goal>
+
+ <!-- ================================================================ -->
+ <!--- Security Sample -->
+ <!-- ================================================================ -->
+ <goal name="securitySample">
+
+ <mkdir dir="target/security"/>
+ <mkdir dir="target/security/META-INF"/>
+
+ <!-- Create the service archive -->
+ <ant:move todir="target/security">
+ <ant:fileset dir="target/classes">
+ <ant:include name="sample/security/*.class"/>
+ </ant:fileset>
+ </ant:move>
+ <ant:copy file="src/sample/security/META-INF/services.xml" tofile="target/security/META-INF/services.xml"/>
+ <jar destfile="target/security/SecureService.aar">
+ <fileset dir="target/security"></fileset>
+ </jar>
+
+ <!-- Create a jar to hold the password callback class-->
+ <mkdir dir="target/security/secUtil/sample/security/" />
+ <ant:copy file="target/security/sample/security/PWCallback.class" toFile="target/security/secUtil/sample/security/PWCallback.class" />
+ <ant:copy file="resources/security/sec.jks" tofile="target/security/secUtil/sec.jks"/>
+ <ant:copy file="resources/security/sec.properties" tofile="target/security/secUtil/sec.properties"/>
+ <jar destfile="target/security/secUtil.jar">
+ <fileset dir="target/security/secUtil"></fileset>
+ </jar>
+
+ <!-- Create the client repository -->
+ <mkdir dir="target/security/client_repo"/>
+ <mkdir dir="target/security/client_repo/modules"/>
+ <ant:copy file="../security/target/modules/security.mar" tofile="target/security/client_repo/modules/security.mar"/>
+ <ant:copy file="../addressing/target/modules/addressing.mar" tofile="target/security/client_repo/modules/addressing.mar"/>
+ <ant:copy file="resources/security/client.axis2.xml" tofile="target/security/client_repo/axis2.xml"/>
+
+ <ant:copy file="../security/target/modules/security.mar" tofile="target/toWar/modules/security.mar"/>
+ <ant:copy file="../addressing/target/modules/addressing.mar" tofile="target/toWar/modules/addressing.mar"/>
+
</goal>
<preGoal name="itest:compile">
Modified: webservices/axis2/trunk/java/modules/samples/project.xml
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/samples/project.xml?rev=289434&r1=289433&r2=289434&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/project.xml (original)
+++ webservices/axis2/trunk/java/modules/samples/project.xml Fri Sep 16 01:44:49 2005
@@ -57,7 +57,11 @@
<artifactId>axis2-common</artifactId>
<version>${pom.currentVersion}</version>
</dependency>
-
+ <dependency>
+ <groupId>axis2</groupId>
+ <artifactId>axis2-security</artifactId>
+ <version>${pom.currentVersion}</version>
+ </dependency>
<!-- external JARs -->
<dependency>
@@ -156,7 +160,70 @@
<module>true</module>
</properties>
</dependency>
-
+ <dependency>
+ <groupId>wss4j</groupId>
+ <artifactId>wss4j</artifactId>
+ <version>SNAPSHOT</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>xml-security</groupId>
+ <artifactId>xmlsec</artifactId>
+ <version>1.2.1</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>bouncycastle</groupId>
+ <artifactId>bcprov</artifactId>
+ <version>jdk13-128</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>opensaml</groupId>
+ <artifactId>opensaml</artifactId>
+ <version>1.0.1</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xmlParserAPIs</artifactId>
+ <version>2.6.2</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xmlParserAPIs</artifactId>
+ <version>2.6.2</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>xalan</groupId>
+ <artifactId>xalan</artifactId>
+ <version>2.6.0</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>jaxen</groupId>
+ <artifactId>jaxen</artifactId>
+ <version>1.1-beta-7</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
</dependencies>
<!-- build information for the project -->
Added: webservices/axis2/trunk/java/modules/samples/resources/security/client.axis2.xml
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/samples/resources/security/client.axis2.xml?rev=289434&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/resources/security/client.axis2.xml (added)
+++ webservices/axis2/trunk/java/modules/samples/resources/security/client.axis2.xml Fri Sep 16 01:44:49 2005
@@ -0,0 +1,72 @@
+<axisconfig name="AxisJava2.0">
+ <parameter name="hotdeployment" locked="false">true</parameter>
+ <parameter name="hotupdate" locked="false">true</parameter>
+
+ <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+
+ <module ref="addressing"/>
+
+ <!-- Engage the security module -->
+ <module ref="security"/>
+
+ <!-- This is only till we get the service specific parameters fixed in service.xml -->
+ <!-- Also we can switch back to hte normal parameter names when we can seperately assign them to the flows -->
+
+ <!-- Test with addressing and MTOM: Client's Configuration:START-->
+
+ <parameter name="OutAction" locked="false">Timestamp Signature Encrypt</parameter>
+ <parameter name="user" locked="false">alice</parameter>
+ <parameter name="OutPasswordCallbackClass" locked="false">org.apache.axis2.security.PWCallback</parameter>
+ <parameter name="OutSignaturePropFile" locked="false">interop.properties</parameter>
+ <parameter name="OutSignatureKeyIdentifier" locked="false">SKIKeyIdentifier</parameter>
+ <parameter name="encryptionKeyIdentifier" locked="false">SKIKeyIdentifier</parameter>
+ <parameter name="encryptionUser" locked="false">bob</parameter>
+ <parameter name="encryptionSymAlgorithm" locked="false">http://www.w3.org/2001/04/xmlenc#aes128-cbc</parameter>
+ <parameter name="OutSignatureParts" locked="false">{Element}{http://schemas.xmlsoap.org/ws/2004/08/addressing}To;{Element}{http://schemas.xmlsoap.org/ws/2004/08/addressing}ReplyTo;{Element}{http://schemas.xmlsoap.org/ws/2004/08/addressing}MessageID;{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Timestamp</parameter>
+
+
+ <parameter name="optimizeParts" locked="false">//xenc:EncryptedData/xenc:CipherData/xenc:CipherValue</parameter>
+
+ <parameter name="InAction" locked="false">Timestamp Signature Encrypt</parameter>
+ <parameter name="InPasswordCallbackClass" locked="false">org.apache.axis2.security.PWCallback</parameter>
+ <parameter name="InSignaturePropFile" locked="false">interop.properties</parameter>
+
+ <parameter name="InSignaturePropFile" locked="false">interop.properties</parameter>
+
+ <!-- Test with addressing and MTOM: Client's Configuration:END-->
+
+
+ <transportReceiver name="http">
+ </transportReceiver>
+ <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+ <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
+ </transportSender>
+
+
+
+ <phaseOrder type="inflow">
+ <!-- System pre defined phases -->
+ <phase name="TransportIn"/>
+ <phase name="PreDispatch"/>
+ <phase name="Dispatch"/>
+ <phase name="PostDispatch"/>
+ <!-- System pre defined phases -->
+ <!-- After Postdispatch phase module author or or service author can add any phase he want -->
+ <phase name="userphase1"/>
+ </phaseOrder>
+ <phaseOrder type="outflow">
+ <!-- user can add his own phases to this area -->
+ <phase name="userphase1"/>
+ <!-- This is temporray solution will be change soon-->
+ <phase name="security"/>
+ </phaseOrder>
+ <phaseOrder type="INfaultflow">
+ <!-- user can add his own phases to this area -->
+ <phase name="userphase1"/>
+ </phaseOrder>
+ <phaseOrder type="Outfaultflow">
+ <!-- user can add his own phases to this area -->
+ <phase name="userphase1"/>
+ </phaseOrder>
+</axisconfig>
+
Added: webservices/axis2/trunk/java/modules/samples/resources/security/sec.jks
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/samples/resources/security/sec.jks?rev=289434&view=auto
==============================================================================
Binary file - no diff available.
Propchange: webservices/axis2/trunk/java/modules/samples/resources/security/sec.jks
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: webservices/axis2/trunk/java/modules/samples/resources/security/sec.properties
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/samples/resources/security/sec.properties?rev=289434&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/resources/security/sec.properties (added)
+++ webservices/axis2/trunk/java/modules/samples/resources/security/sec.properties Fri Sep 16 01:44:49 2005
@@ -0,0 +1,5 @@
+org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
+org.apache.ws.security.crypto.merlin.keystore.type=jks
+org.apache.ws.security.crypto.merlin.keystore.password=password
+org.apache.ws.security.crypto.merlin.file=sec.jks
+
Added: webservices/axis2/trunk/java/modules/samples/resources/security/service.axis2.xml
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/samples/resources/security/service.axis2.xml?rev=289434&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/resources/security/service.axis2.xml (added)
+++ webservices/axis2/trunk/java/modules/samples/resources/security/service.axis2.xml Fri Sep 16 01:44:49 2005
@@ -0,0 +1,82 @@
+<axisconfig name="AxisJava2.0">
+ <parameter name="hotdeployment" locked="false">true</parameter>
+ <parameter name="hotupdate" locked="false">true</parameter>
+ <parameter name="enableMTOM" locked="false">true</parameter>
+
+ <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+
+ <!-- Engage the addressing module -->
+ <module ref="addressing"/>
+
+ <!-- Engage the security module -->
+ <module ref="security"/>
+
+ <!-- ================================================= -->
+ <!-- Transport Ins -->
+ <!-- ================================================= -->
+ <transportReceiver name="http" class="org.apache.axis2.transport.http.SimpleHTTPServer">
+ <parameter name="port" locked="false">6060</parameter>
+ </transportReceiver>
+
+ <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
+ <transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener">
+ <parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter>
+ <parameter name="transport.mail.pop3.user" locked="false">axis2</parameter>
+ <parameter name="transport.mail.pop3.password" locked="false">axis2</parameter>
+ <parameter name="transport.mail.pop3.port" locked="false">110</parameter>
+ <parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter>
+ </transportReceiver> -->
+
+ <transportReceiver name="tcp" class="org.apache.axis2.transport.tcp.TCPServer">
+ <parameter name="port" locked="false">6060</parameter>
+ </transportReceiver>
+
+ <!-- ================================================= -->
+ <!-- Transport Outs -->
+ <!-- ================================================= -->
+
+ <transportSender name="tcp" class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
+ <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
+ <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+ <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
+ </transportSender>
+ <transportSender name="https" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+ <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
+ </transportSender>
+
+ <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
+ <transportSender name="mail" class="org.apache.axis2.transport.mail.MailTransportSender">
+ <parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter>
+ <parameter name="transport.mail.smtp.user" locked="false">axis2</parameter>
+ <parameter name="transport.mail.smtp.password" locked="false">axis2</parameter>
+ <parameter name="transport.mail.smtp.port" locked="false">25</parameter>
+ </transportSender>
+ -->
+
+
+ <phaseOrder type="inflow">
+ <!-- System pre defined phases -->
+ <phase name="TransportIn"/>
+ <phase name="PreDispatch"/>
+ <phase name="Dispatch"/>
+ <phase name="PostDispatch"/>
+ <!-- System pre defined phases -->
+ <!-- After Postdispatch phase module author or or service author can add any phase he want -->
+ <phase name="userphase1"/>
+ </phaseOrder>
+ <phaseOrder type="outflow">
+ <!-- user can add his own phases to this area -->
+ <phase name="userphase1"/>
+ <!-- This is temporray solution will be change soon-->
+ <phase name="security"/>
+ </phaseOrder>
+ <phaseOrder type="INfaultflow">
+ <!-- user can add his own phases to this area -->
+ <phase name="userphase1"/>
+ </phaseOrder>
+ <phaseOrder type="Outfaultflow">
+ <!-- user can add his own phases to this area -->
+ <phase name="userphase1"/>
+ </phaseOrder>
+</axisconfig>
+
Added: webservices/axis2/trunk/java/modules/samples/src/sample/security/Client.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/samples/src/sample/security/Client.java?rev=289434&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/src/sample/security/Client.java (added)
+++ webservices/axis2/trunk/java/modules/samples/src/sample/security/Client.java Fri Sep 16 01:44:49 2005
@@ -0,0 +1,66 @@
+package sample.security;
+
+import java.io.StringWriter;
+
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.clientapi.Call;
+import org.apache.axis2.om.OMAbstractFactory;
+import org.apache.axis2.om.OMElement;
+import org.apache.axis2.om.OMFactory;
+import org.apache.axis2.om.OMNamespace;
+
+public class Client {
+
+ /**
+ * @param args
+ */
+ private static EndpointReference targetEPR = new EndpointReference(
+ "http://127.0.0.1:8080/axis2/services/SecureService/echo");
+
+ public static void main(String[] args) {
+ try {
+
+ //TODO : Get the repository location from the args
+
+
+ OMElement payload = getEchoElement();
+ Call call = new Call();
+ call.setTo(targetEPR);
+ call.setTransportInfo(Constants.TRANSPORT_HTTP,
+ Constants.TRANSPORT_HTTP, false);
+
+ //Blocking invocation
+ OMElement result = call.invokeBlocking("echo", payload);
+
+ StringWriter writer = new StringWriter();
+ result.serializeWithCache(XMLOutputFactory.newInstance()
+ .createXMLStreamWriter(writer));
+ writer.flush();
+
+ System.out.println(writer.toString());
+
+ } catch (AxisFault axisFault) {
+ axisFault.printStackTrace();
+ } catch (XMLStreamException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private static OMElement getEchoElement() {
+ OMFactory fac = OMAbstractFactory.getOMFactory();
+ OMNamespace omNs = fac.createOMNamespace(
+ "http://example1.org/example1", "example1");
+ OMElement method = fac.createOMElement("echo", omNs);
+ OMElement value = fac.createOMElement("Text", omNs);
+ value.addChild(fac.createText(value, "Axis2 Echo String "));
+ method.addChild(value);
+
+ return method;
+ }
+
+}
Added: webservices/axis2/trunk/java/modules/samples/src/sample/security/META-INF/services.xml
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/samples/src/sample/security/META-INF/services.xml?rev=289434&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/src/sample/security/META-INF/services.xml (added)
+++ webservices/axis2/trunk/java/modules/samples/src/sample/security/META-INF/services.xml Fri Sep 16 01:44:49 2005
@@ -0,0 +1,24 @@
+<service name="SecureService">
+ <parameter locked="false" name="ServiceClass">security.Service</parameter>
+ <operation name="echo">
+ <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+ </operation>
+
+ <parameter name="InAction" locked="false">Timestamp Signature Encrypt</parameter>
+ <parameter name="InPasswordCallbackClass" locked="false">security.PWCallback</parameter>
+ <parameter name="InSignaturePropFile" locked="false">sec.properties</parameter>
+
+ <parameter name="OutAction" locked="false">Timestamp Signature Encrypt</parameter>
+ <parameter name="user" locked="false">bob</parameter>
+ <parameter name="OutPasswordCallbackClass" locked="false">org.apache.axis2.security.PWCallback</parameter>
+ <parameter name="OutSignaturePropFile" locked="false">interop.properties</parameter>
+ <parameter name="OutSignatureKeyIdentifier" locked="false">SKIKeyIdentifier</parameter>
+ <parameter name="encryptionKeyIdentifier" locked="false">SKIKeyIdentifier</parameter>
+ <parameter name="encryptionUser" locked="false">alice</parameter>
+ <parameter name="encryptionSymAlgorithm" locked="false">http://www.w3.org/2001/04/xmlenc#aes128-cbc</parameter>
+ <parameter name="OutSignatureParts" locked="false">{Element}{http://schemas.xmlsoap.org/ws/2004/08/addressing}To;{Element}{http://schemas.xmlsoap.org/ws/2004/08/addressing}ReplyTo;{Element}{http://schemas.xmlsoap.org/ws/2004/08/addressing}From;{Element}{http://schemas.xmlsoap.org/ws/2004/08/addressing}RelatesTo;{Element}{http://schemas.xmlsoap.org/ws/2004/08/addressing}MessageID;{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Timestamp</parameter>
+
+ <parameter name="optimizeParts" locked="false">//xenc:EncryptedData/xenc:CipherData/xenc:CipherValue</parameter>
+
+
+</service>
Added: webservices/axis2/trunk/java/modules/samples/src/sample/security/PWCallback.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/samples/src/sample/security/PWCallback.java?rev=289434&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/src/sample/security/PWCallback.java (added)
+++ webservices/axis2/trunk/java/modules/samples/src/sample/security/PWCallback.java Fri Sep 16 01:44:49 2005
@@ -0,0 +1,189 @@
+/*
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package sample.security;
+
+
+import org.apache.ws.security.WSPasswordCallback;
+
+
+
+import javax.security.auth.callback.Callback;
+
+import javax.security.auth.callback.CallbackHandler;
+
+import javax.security.auth.callback.UnsupportedCallbackException;
+
+import java.io.IOException;
+
+
+
+/**
+
+ * Class PWCallback
+
+ */
+
+public class PWCallback implements CallbackHandler {
+
+
+
+ /** Field key */
+
+ private static final byte[] key = {
+
+ (byte) 0x31, (byte) 0xfd, (byte) 0xcb, (byte) 0xda, (byte) 0xfb,
+
+ (byte) 0xcd, (byte) 0x6b, (byte) 0xa8, (byte) 0xe6, (byte) 0x19,
+
+ (byte) 0xa7, (byte) 0xbf, (byte) 0x51, (byte) 0xf7, (byte) 0xc7,
+
+ (byte) 0x3e, (byte) 0x80, (byte) 0xae, (byte) 0x98, (byte) 0x51,
+
+ (byte) 0xc8, (byte) 0x51, (byte) 0x34, (byte) 0x04,
+
+ };
+
+
+
+ /*
+
+ * (non-Javadoc)
+
+ * @see javax.security.auth.callback.CallbackHandler#handle(javax.security.auth.callback.Callback[])
+
+ */
+
+
+
+ /**
+
+ * Method handle
+
+ *
+
+ * @param callbacks
+
+ * @throws java.io.IOException
+
+ * @throws javax.security.auth.callback.UnsupportedCallbackException
+
+ */
+
+ public void handle(Callback[] callbacks)
+
+ throws IOException, UnsupportedCallbackException {
+
+
+
+ for (int i = 0; i < callbacks.length; i++) {
+
+ if (callbacks[i] instanceof WSPasswordCallback) {
+
+ WSPasswordCallback pc = (WSPasswordCallback) callbacks[i];
+
+
+
+ /*
+
+ * This usage type is used only in case we received a
+
+ * username token with a password of type PasswordText or
+
+ * an unknown password type.
+
+ *
+
+ * This case the WSPasswordCallback object contains the
+
+ * identifier (aka username), the password we received, and
+
+ * the password type string to identify the type.
+
+ *
+
+ * Here we perform only a very simple check.
+
+ */
+
+ if (pc.getUsage() == WSPasswordCallback.USERNAME_TOKEN_UNKNOWN) {
+
+ if(pc.getIdentifer().equals("Ron") && pc.getPassword().equals("noR")) {
+
+ return;
+
+ }
+
+ if (pc.getPassword().equals("sirhC")) {
+
+ return;
+
+ }
+
+ throw new UnsupportedCallbackException(callbacks[i],
+
+ "check failed");
+
+ }
+
+ /*
+
+ * here call a function/method to lookup the password for
+
+ * the given identifier (e.g. a user name or keystore alias)
+
+ * e.g.: pc.setPassword(passStore.getPassword(pc.getIdentfifier))
+
+ * for Testing we supply a fixed name here.
+
+ */
+
+ if (pc.getUsage() == WSPasswordCallback.KEY_NAME) {
+
+ pc.setKey(key);
+
+ } else if(pc.getIdentifer().equals("alice")) {
+
+ pc.setPassword("password");
+
+ } else if(pc.getIdentifer().equals("bob")) {
+
+ pc.setPassword("password");
+
+ } else if(pc.getIdentifer().equals("Ron")) {
+
+ pc.setPassword("noR");
+
+ } else {
+
+ pc.setPassword("sirhC");
+
+ }
+
+ } else {
+
+ throw new UnsupportedCallbackException(callbacks[i],
+
+ "Unrecognized Callback");
+
+ }
+
+ }
+
+ }
+
+}
+
+
Added: webservices/axis2/trunk/java/modules/samples/src/sample/security/Service.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/samples/src/sample/security/Service.java?rev=289434&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/src/sample/security/Service.java (added)
+++ webservices/axis2/trunk/java/modules/samples/src/sample/security/Service.java Fri Sep 16 01:44:49 2005
@@ -0,0 +1,13 @@
+package sample.security;
+
+import org.apache.axis2.om.OMElement;
+
+public class Service {
+
+ public OMElement echo(OMElement elem) {
+ elem.build();
+ elem.detach();
+ return elem;
+ }
+
+}