Author: svkrish
Date: Mon Jan 28 09:31:02 2008
New Revision: 615963
URL: http://svn.apache.org/viewvc?rev=615963&view=rev
Log:
adding a service with support for integrity
Added:
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/calculatorKeys.jks
(with props)
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/security.properties
Modified:
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/java/calculator/SubtractService.java
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/java/calculator/security/ClientPWCBHandler.java
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/java/calculator/security/ServerPWCBHandler.java
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/Calculator.composite
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/definitions.xml
Modified:
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/java/calculator/SubtractService.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/java/calculator/SubtractService.java?rev=615963&r1=615962&r2=615963&view=diff
==============================================================================
---
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/java/calculator/SubtractService.java
(original)
+++
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/java/calculator/SubtractService.java
Mon Jan 28 09:31:02 2008
@@ -18,9 +18,12 @@
*/
package calculator;
+import org.osoa.sca.annotations.Remotable;
+
/**
* The interface for the subtract service
*/
[EMAIL PROTECTED]
public interface SubtractService {
double subtract(double n1, double n2);
Modified:
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/java/calculator/security/ClientPWCBHandler.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/java/calculator/security/ClientPWCBHandler.java?rev=615963&r1=615962&r2=615963&view=diff
==============================================================================
---
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/java/calculator/security/ClientPWCBHandler.java
(original)
+++
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/java/calculator/security/ClientPWCBHandler.java
Mon Jan 28 09:31:02 2008
@@ -37,8 +37,21 @@
System.out.println("*** Calling Client UserId/Password Handler
.... ");
WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
System.out.println("User Id = " + pwcb.getIdentifer());
- pwcb.setPassword("CalculatorUserPasswd");
System.out.println("Set Password = " + pwcb.getPassword());
+ System.out.println("Usage = " + pwcb.getUsage());
+ if ( pwcb.getUsage() == WSPasswordCallback.USERNAME_TOKEN ) {
+ if ( pwcb.getIdentifer().equals("CalculatorUser")){
+ pwcb.setPassword("CalculatorUserPasswd");
+ } else {
+ throw new UnsupportedCallbackException(pwcb,
"Authentication Failed : UserId - Password mismatch");
+ }
+ } else if ( pwcb.getUsage() == WSPasswordCallback.SIGNATURE ) {
+ if ( pwcb.getIdentifer().equals("CalculatorUser")) {
+ pwcb.setPassword("CalculatorUserPasswd");
+ } else {
+ pwcb.setPassword("CalculatorAdmin");
+ }
+ }
}
}
Modified:
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/java/calculator/security/ServerPWCBHandler.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/java/calculator/security/ServerPWCBHandler.java?rev=615963&r1=615962&r2=615963&view=diff
==============================================================================
---
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/java/calculator/security/ServerPWCBHandler.java
(original)
+++
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/java/calculator/security/ServerPWCBHandler.java
Mon Jan 28 09:31:02 2008
@@ -38,8 +38,8 @@
WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
System.out.println("User Id = " + pwcb.getIdentifer());
System.out.println("Password = " + pwcb.getPassword());
-
- if ( pwcb.getUsage() == WSPasswordCallback.USERNAME_TOKEN ) {
+ System.out.println("Usage = " + pwcb.getUsage());
+ if ( pwcb.getUsage() == WSPasswordCallback.USERNAME_TOKEN_UNKNOWN
) {
if ( pwcb.getIdentifer().equals("CalculatorUser") &&
pwcb.getPassword().equals("CalculatorUserPasswd") ){
return;
@@ -47,7 +47,11 @@
throw new UnsupportedCallbackException(pwcb,
"Authentication Failed : UserId - Password mismatch");
}
} else if ( pwcb.getUsage() == WSPasswordCallback.SIGNATURE ) {
- pwcb.setPassword("CalculatorUserPasswd");
+ if ( pwcb.getIdentifer().equals("CalculatorUser")) {
+ pwcb.setPassword("CalculatorUserPasswd");
+ } else {
+ pwcb.setPassword("CalculatorAdmin");
+ }
}
}
}
Modified:
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/Calculator.composite
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/Calculator.composite?rev=615963&r1=615962&r2=615963&view=diff
==============================================================================
---
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/Calculator.composite
(original)
+++
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/Calculator.composite
Mon Jan 28 09:31:02 2008
@@ -30,7 +30,11 @@
<binding.ws
uri="http://localhost:8080/sample-calculator-ws-secure-webapp/AddServiceComponent"
requires="calc:wsAuthentication" />
</reference>
- <reference name="subtractService"
target="SubtractServiceComponent"></reference>
+ <reference name="subtractService">
+ <interface.java interface="calculator.SubtractService" />
+ <binding.ws
uri="http://localhost:8080/sample-calculator-ws-secure-webapp/SubtractServiceComponent"
+ requires="calc:wsIntegrity" />
+ </reference>
<reference name="multiplyService"
target="MultiplyServiceComponent"></reference>
<reference name="divideService"
target="DivideServiceComponent"></reference>
</component>
@@ -45,6 +49,10 @@
<component name="SubtractServiceComponent">
<implementation.java class="calculator.SubtractServiceImpl"/>
+ <service name="SubtractService">
+ <interface.java interface="calculator.SubtractService" />
+ <binding.ws requires="integrity"/>
+ </service>
</component>
<component name="MultiplyServiceComponent">
Added:
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/calculatorKeys.jks
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/calculatorKeys.jks?rev=615963&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/calculatorKeys.jks
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified:
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/definitions.xml
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/definitions.xml?rev=615963&r1=615962&r2=615963&view=diff
==============================================================================
---
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/definitions.xml
(original)
+++
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/definitions.xml
Mon Jan 28 09:31:02 2008
@@ -53,6 +53,13 @@
</description>
</sca:intent>
+ <sca:intent name="calc:wsIntegrity"
+ constrains="sca:binding.ws">
+ <description>
+ Protect messages from unauthorized reading or
modification
+ </description>
+ </sca:intent>
+
<!-- WS Security POLICY SETS -->
<sca:policySet name="calc:wsAuthenticationPolicy"
provides="authentication"
@@ -81,6 +88,192 @@
</action>
</parameter>
</tuscany:wsConfigParam>
+ </sca:policySet>
+
+ <!-- sca:policySet name="wsIntegrityPolicy"
+ provides="integrity"
+ appliesTo="sca:binding.ws">
+ <tuscany:wsConfigParam>
+ <parameter name="InflowSecurity">
+ <action>
+ <items>UsernameToken Timestamp Signature</items>
+
<signaturePropFile>security.properties</signaturePropFile>
+
<passwordCallbackClass>calculator.security.ServerPWCBHandler</passwordCallbackClass>
+ </action>
+ </parameter>
+ <parameter name="OutflowSecurity">
+ <action>
+ <items>Timestamp Signature</items>
+ <user>CalculatorAdmin</user>
+
<signaturePropFile>security.properties</signaturePropFile>
+
<passwordCallbackClass>calculator.security.ServerPWCBHandler</passwordCallbackClass>
+
<signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
+ </action>
+ </parameter>
+ </tuscany:wsConfigParam>
+ </sca:policySet>
+
+ <sca:policySet name="wsClientIntegrityPolicy"
+ provides="calc:wsIntegrity"
+ appliesTo="sca:binding.ws">
+ <tuscany:wsConfigParam>
+ <parameter name="InflowSecurity">
+ <action>
+ <items>Timestamp Signature</items>
+
<signaturePropFile>security.properties</signaturePropFile>
+ </action>
+ </parameter>
+ <parameter name="OutflowSecurity">
+ <action>
+ <items>UsernameToken Timestamp Signature</items>
+ <user>CalculatorUser</user>
+ <passwordType>PasswordText</passwordType>
+
<signaturePropFile>security.properties</signaturePropFile>
+
<passwordCallbackClass>calculator.security.ClientPWCBHandler</passwordCallbackClass>
+
<signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
+ </action>
+ </parameter>
+ </tuscany:wsConfigParam>
+ </sca:policySet-->
+
+ <sca:policySet name="tuscany:wsSecurityPolicyForIntegrity"
+ provides="sca:integrity"
+ appliesTo="sca:binding.ws">
+ <wsp:Policy wsu:Id="SignOnly"
+
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:AsymmetricBinding
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:InitiatorToken>
+ <wsp:Policy>
+ <sp:X509Token
sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
+
<wsp:Policy>
+
<sp:WssX509V3Token10/>
+
</wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:InitiatorToken>
+ <sp:RecipientToken>
+ <wsp:Policy>
+ <sp:X509Token
sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
+
<wsp:Policy>
+
<sp:WssX509V3Token10/>
+
</wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:RecipientToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+
<sp:TripleDesRsa15/>
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:Layout>
+ <wsp:Policy>
+ <sp:Strict/>
+ </wsp:Policy>
+ </sp:Layout>
+ <sp:IncludeTimestamp/>
+
<sp:OnlySignEntireHeadersAndBody/>
+ </wsp:Policy>
+ </sp:AsymmetricBinding>
+ <sp:Wss10
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+
<sp:MustSupportRefKeyIdentifier/>
+ <sp:MustSupportRefIssuerSerial/>
+ </wsp:Policy>
+ </sp:Wss10>
+ <sp:SignedParts
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <sp:Body/>
+ </sp:SignedParts>
+
+ <ramp:RampartConfig
xmlns:ramp="http://ws.apache.org/rampart/policy">
+ <ramp:user>CalculatorAdmin</ramp:user>
+
<ramp:encryptionUser>CalculatorAdmin</ramp:encryptionUser>
+
<ramp:passwordCallbackClass>calculator.security.ServerPWCBHandler</ramp:passwordCallbackClass>
+
+ <ramp:signatureCrypto>
+ <ramp:crypto
provider="org.apache.ws.security.components.crypto.Merlin">
+ <ramp:property
name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+ <ramp:property
name="org.apache.ws.security.crypto.merlin.file">calculatorKeys.jks</ramp:property>
+ <ramp:property
name="org.apache.ws.security.crypto.merlin.keystore.password">CalculatorAdmin</ramp:property>
+ </ramp:crypto>
+ </ramp:signatureCrypto>
+ </ramp:RampartConfig>
+ </wsp:All>
+ </wsp:ExactlyOne>
+ </wsp:Policy>
+ </sca:policySet>
+
+ <sca:policySet name="tuscany:wsSecurityPolicyForClientIntegrity"
+ provides="calc:wsIntegrity"
+ appliesTo="sca:binding.ws">
+ <wsp:Policy wsu:Id="SignOnly"
+
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:AsymmetricBinding
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:InitiatorToken>
+ <wsp:Policy>
+ <sp:X509Token
sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
+
<wsp:Policy>
+
<sp:WssX509V3Token10/>
+
</wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:InitiatorToken>
+ <sp:RecipientToken>
+ <wsp:Policy>
+ <sp:X509Token
sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
+
<wsp:Policy>
+
<sp:WssX509V3Token10/>
+
</wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:RecipientToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+
<sp:TripleDesRsa15/>
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:Layout>
+ <wsp:Policy>
+ <sp:Strict/>
+ </wsp:Policy>
+ </sp:Layout>
+ <sp:IncludeTimestamp/>
+
<sp:OnlySignEntireHeadersAndBody/>
+ </wsp:Policy>
+ </sp:AsymmetricBinding>
+ <sp:Wss10
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+
<sp:MustSupportRefKeyIdentifier/>
+ <sp:MustSupportRefIssuerSerial/>
+ </wsp:Policy>
+ </sp:Wss10>
+ <sp:SignedParts
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <sp:Body/>
+ </sp:SignedParts>
+
+ <ramp:RampartConfig
xmlns:ramp="http://ws.apache.org/rampart/policy">
+ <ramp:user>CalculatorAdmin</ramp:user>
+
<ramp:encryptionUser>CalculatorAdmin</ramp:encryptionUser>
+
<ramp:passwordCallbackClass>calculator.security.ClientPWCBHandler</ramp:passwordCallbackClass>
+
+ <ramp:signatureCrypto>
+ <ramp:crypto
provider="org.apache.ws.security.components.crypto.Merlin">
+ <ramp:property
name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+ <ramp:property
name="org.apache.ws.security.crypto.merlin.file">calculatorKeys.jks</ramp:property>
+ <ramp:property
name="org.apache.ws.security.crypto.merlin.keystore.password">CalculatorAdmin</ramp:property>
+ </ramp:crypto>
+ </ramp:signatureCrypto>
+ </ramp:RampartConfig>
+ </wsp:All>
+ </wsp:ExactlyOne>
+ </wsp:Policy>
</sca:policySet>
</sca:definitions>
Added:
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/security.properties
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/security.properties?rev=615963&view=auto
==============================================================================
---
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/security.properties
(added)
+++
incubator/tuscany/java/sca/samples/calculator-ws-secure-webapp/src/main/resources/security.properties
Mon Jan 28 09:31:02 2008
@@ -0,0 +1,4 @@
+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=CalculatorAdmin
+org.apache.ws.security.crypto.merlin.file=calculatorKeys.jks
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]