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 2006/09/10 13:35:44 UTC

svn commit: r441941 - in /webservices/axis2/trunk/java/modules/security/src/org/apache/rampart: MessageBuilder.java RampartMessageData.java builder/TransportBindingBuilder.java errors.properties util/RampartUtil.java

Author: ruchithf
Date: Sun Sep 10 04:35:43 2006
New Revision: 441941

URL: http://svn.apache.org/viewvc?view=rev&rev=441941
Log:
The sig parts verctor has to contain WSEncryptionPart instances
Updated RampartMessageData to capture the flow (inflow/outflow) the message belongs to


Modified:
    webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/MessageBuilder.java
    webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/RampartMessageData.java
    webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/TransportBindingBuilder.java
    webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/errors.properties
    webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/util/RampartUtil.java

Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/MessageBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/MessageBuilder.java?view=diff&rev=441941&r1=441940&r2=441941
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/MessageBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/MessageBuilder.java Sun Sep 10 04:35:43 2006
@@ -64,7 +64,7 @@
         WSSecHeader secHeader = new WSSecHeader();
         secHeader.insertSecurityHeader(doc);
 
-        RampartMessageData rmd = new RampartMessageData(msgCtx, doc);
+        RampartMessageData rmd = new RampartMessageData(msgCtx, doc, true);
 
         Policy policy = null;
         /*

Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/RampartMessageData.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/RampartMessageData.java?view=diff&rev=441941&r1=441940&r2=441941
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/RampartMessageData.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/RampartMessageData.java Sun Sep 10 04:35:43 2006
@@ -16,7 +16,10 @@
 
 package org.apache.rampart;
 
+import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.neethi.Policy;
 import org.apache.rahas.RahasConstants;
 import org.apache.rahas.SimpleTokenStore;
@@ -26,6 +29,7 @@
 import org.apache.rampart.policy.RampartPolicyData;
 import org.apache.ws.security.WSSConfig;
 import org.apache.ws.security.conversation.ConversationConstants;
+import org.apache.ws.security.handler.WSHandlerConstants;
 import org.apache.ws.security.message.WSSecHeader;
 import org.apache.ws.security.util.Loader;
 import org.w3c.dom.Document;
@@ -108,8 +112,10 @@
     private Policy servicePolicy;
 
     private boolean isClientSide;
+    
+    private boolean sender;
 
-    public RampartMessageData(MessageContext msgCtx, Document doc) throws RampartException {
+    public RampartMessageData(MessageContext msgCtx, Document doc, boolean sender) throws RampartException {
         this.msgContext = msgCtx;
         this.document = doc;
         
@@ -135,9 +141,25 @@
             }
             
             this.isClientSide = !msgCtx.isServerSide();
+            this.sender = sender;
+            
+            if(!this.isClientSide && this.sender) {
+                //Get hold of the incoming msg ctx
+                OperationContext opCtx = this.msgContext.getOperationContext();
+                MessageContext inMsgCtx;
+                if (opCtx != null
+                        && (inMsgCtx = opCtx
+                                .getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE)) != null) {
+                    msgContext.setProperty(WSHandlerConstants.RECV_RESULTS, 
+                            inMsgCtx.getProperty(WSHandlerConstants.RECV_RESULTS));
+                }
+            }
+            
             
         } catch (TrustException e) {
             throw new RampartException("errorInExtractingMsgProps", e);
+        } catch (AxisFault e) {
+            throw new RampartException("errorInExtractingMsgProps", e);
         }
         
     }
@@ -260,8 +282,22 @@
      * @param policyData
      *            The policyData to set.
      */
-    public void setPolicyData(RampartPolicyData policyData) {
+    public void setPolicyData(RampartPolicyData policyData) throws RampartException {
         this.policyData = policyData;
+        
+        try {
+            //if client side then check whether sig conf enabled 
+            //and get hold of the stored signature values
+            if(this.isClientSide && !this.sender && policyData.isSignatureConfirmation()) {
+                OperationContext opCtx = msgContext.getOperationContext();
+                MessageContext outMsgCtx = opCtx
+                        .getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
+                msgContext.setProperty(WSHandlerConstants.SEND_SIGV, outMsgCtx
+                        .getProperty(WSHandlerConstants.SEND_SIGV));
+            }
+        } catch (AxisFault e) {
+            throw new RampartException("errorGettingSignatureValuesForSigconf", e);
+        }
     }
 
     /**

Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/TransportBindingBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/TransportBindingBuilder.java?view=diff&rev=441941&r1=441940&r2=441941
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/TransportBindingBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/TransportBindingBuilder.java Sun Sep 10 04:35:43 2006
@@ -23,7 +23,6 @@
 import org.apache.rampart.RampartException;
 import org.apache.rampart.RampartMessageData;
 import org.apache.rampart.policy.RampartPolicyData;
-import org.apache.rampart.policy.model.RampartConfig;
 import org.apache.rampart.util.RampartUtil;
 import org.apache.ws.secpolicy.Constants;
 import org.apache.ws.secpolicy.model.IssuedToken;
@@ -32,9 +31,11 @@
 import org.apache.ws.secpolicy.model.UsernameToken;
 import org.apache.ws.secpolicy.model.X509Token;
 import org.apache.ws.security.WSConstants;
+import org.apache.ws.security.WSEncryptionPart;
 import org.apache.ws.security.WSPasswordCallback;
 import org.apache.ws.security.WSSecurityException;
 import org.apache.ws.security.conversation.ConversationException;
+import org.apache.ws.security.handler.WSHandlerConstants;
 import org.apache.ws.security.message.WSSecDKSign;
 import org.apache.ws.security.message.WSSecEncryptedKey;
 import org.apache.ws.security.message.WSSecSignature;
@@ -139,6 +140,13 @@
                     }
                 }
             }
+            
+            //Store the signature values vector
+            rmd.getMsgContext().setProperty(WSHandlerConstants.SEND_SIGV, signatureValues);
+        } else {
+            if(rpd.isSignatureConfirmation()) {
+                ///TODO : signature configmation : after completing the engine
+            }
         }
     }
 
@@ -189,10 +197,10 @@
                 
                 Vector sigParts = new  Vector();
                 
-                sigParts.add(rmd.getTimestampId());                          
+                sigParts.add(new WSEncryptionPart(rmd.getTimestampId()));                          
                 
                 if(rpd.isTokenProtection()) {
-                    sigParts.add(encrKey.getBSTTokenId());
+                    sigParts.add(new WSEncryptionPart(encrKey.getBSTTokenId()));
                 }
                 
                 dkSig.setParts(sigParts);
@@ -230,9 +238,9 @@
                 sig.appendBSTElementToHeader(rmd.getSecHeader());
                 
                 Vector sigParts = new Vector();
-                sigParts.add(rmd.getTimestampId());
+                sigParts.add(new WSEncryptionPart(rmd.getTimestampId()));
                 if(rpd.isTokenProtection() && bst) {
-                    sigParts.add(sig.getBSTTokenId());
+                    sigParts.add(new WSEncryptionPart(sig.getBSTTokenId()));
                 }
                 
                 sig.addReferencesToSign(sigParts, rmd.getSecHeader());
@@ -316,10 +324,10 @@
               
               Vector sigParts = new  Vector();
               
-              sigParts.add(rmd.getTimestampId());                          
+              sigParts.add(new WSEncryptionPart(rmd.getTimestampId()));                          
               
               if(rpd.isTokenProtection() && tokenIncluded) {
-                  sigParts.add(id);
+                  sigParts.add(new WSEncryptionPart(id));
               }
               
               dkSign.setParts(sigParts);

Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/errors.properties
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/errors.properties?view=diff&rev=441941&r1=441940&r2=441941
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/errors.properties (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/errors.properties Sun Sep 10 04:35:43 2006
@@ -22,4 +22,5 @@
 errorExtractingToken = Error extracting token : \"{0}\"
 errorInDerivedKeyTokenSignature = Error in DerivedKeyToken signature
 errorInSignatureWithX509Token = Error in signature with X509Token
-errorCreatingEncryptedKey = Error in creating an encrypted key
\ No newline at end of file
+errorCreatingEncryptedKey = Error in creating an encrypted key
+errorGettingSignatureValuesForSigconf = Error in getting signature values for signature confirmation
\ No newline at end of file

Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/util/RampartUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/util/RampartUtil.java?view=diff&rev=441941&r1=441940&r2=441941
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/util/RampartUtil.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/util/RampartUtil.java Sun Sep 10 04:35:43 2006
@@ -461,5 +461,5 @@
         
         return id;
     }
-    
+
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org