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