You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ru...@apache.org on 2006/10/06 16:49:55 UTC
svn commit: r453622 - in /webservices/axis2/trunk/java/modules:
integration/test/org/apache/rampart/ rahas/src/org/apache/rahas/impl/
security/src/org/apache/rampart/ security/src/org/apache/rampart/builder/
Author: ruchithf
Date: Fri Oct 6 07:49:55 2006
New Revision: 453622
URL: http://svn.apache.org/viewvc?view=rev&rev=453622
Log:
Makesure we use the map of contexts only in the client side and use the sct info from the request at the service.
Provided a mechanism to handle set the SCT id in teh message context. This will be used in token cancellation and in sending RM ack msgs.
Modified:
webservices/axis2/trunk/java/modules/integration/test/org/apache/rampart/RampartTest.java
webservices/axis2/trunk/java/modules/rahas/src/org/apache/rahas/impl/SCTIssuer.java
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/SymmetricBindingBuilder.java
webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/errors.properties
Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/rampart/RampartTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/integration/test/org/apache/rampart/RampartTest.java?view=diff&rev=453622&r1=453621&r2=453622
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/rampart/RampartTest.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/rampart/RampartTest.java Fri Oct 6 07:49:55 2006
@@ -103,6 +103,10 @@
options.setProperty(RampartMessageData.CANCEL_REQUEST, Constants.VALUE_TRUE);
serviceClient.sendReceive(getEchoElement());
+ options.setProperty(RampartMessageData.CANCEL_REQUEST, Constants.VALUE_FALSE);
+ serviceClient.sendReceive(getEchoElement());
+ options.setProperty(RampartMessageData.CANCEL_REQUEST, Constants.VALUE_TRUE);
+ serviceClient.sendReceive(getEchoElement());
}
} catch (Exception e) {
Modified: webservices/axis2/trunk/java/modules/rahas/src/org/apache/rahas/impl/SCTIssuer.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/rahas/src/org/apache/rahas/impl/SCTIssuer.java?view=diff&rev=453622&r1=453621&r2=453622
==============================================================================
--- webservices/axis2/trunk/java/modules/rahas/src/org/apache/rahas/impl/SCTIssuer.java (original)
+++ webservices/axis2/trunk/java/modules/rahas/src/org/apache/rahas/impl/SCTIssuer.java Fri Oct 6 07:49:55 2006
@@ -172,10 +172,6 @@
sctToken.setState(Token.ISSUED);
TrustUtil.getTokenStore(data.getInMessageContext()).add(sctToken);
- this.getContextMap(data.getInMessageContext()).put(
- this.getContextIdentifierKey(data.getInMessageContext()),
- sctToken.getId());
-
return env;
} catch (ConversationException e) {
throw new TrustException(e.getMessage(), e);
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=453622&r1=453621&r2=453622
==============================================================================
--- 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 Fri Oct 6 07:49:55 2006
@@ -98,7 +98,7 @@
String ctxIdKey = RampartUtil.getContextIdentifierKey(msgCtx);
String tokenId = (String)RampartUtil.getContextMap(msgCtx).get(ctxIdKey);
- if(RampartUtil.isTokenValid(rmd, tokenId)) {
+ if(tokenId != null && RampartUtil.isTokenValid(rmd, tokenId)) {
OMElement bodyElem = msgCtx.getEnvelope().getBody();
OMElement child = bodyElem.getFirstElement();
OMElement newChild = TrustUtil.createCancelRequest(tokenId, rmd.getWstVersion());
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=453622&r1=453621&r2=453622
==============================================================================
--- 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 Fri Oct 6 07:49:55 2006
@@ -38,10 +38,13 @@
import org.apache.rampart.util.Axis2Util;
import org.apache.rampart.util.RampartUtil;
import org.apache.ws.secpolicy.WSSPolicyException;
+import org.apache.ws.security.WSConstants;
import org.apache.ws.security.WSSConfig;
+import org.apache.ws.security.WSSecurityEngineResult;
import org.apache.ws.security.WSSecurityException;
import org.apache.ws.security.conversation.ConversationConstants;
import org.apache.ws.security.handler.WSHandlerConstants;
+import org.apache.ws.security.handler.WSHandlerResult;
import org.apache.ws.security.message.WSSecHeader;
import org.apache.ws.security.util.Loader;
import org.w3c.dom.Document;
@@ -49,6 +52,7 @@
import javax.xml.namespace.QName;
import java.util.List;
+import java.util.Vector;
public class RampartMessageData {
@@ -76,6 +80,8 @@
public final static String CANCEL_REQUEST = "cancelrequest";
+ public final static String SCT_ID = "sctID";
+
private MessageContext msgContext = null;
private RampartPolicyData policyData = null;
@@ -231,15 +237,30 @@
this.isClientSide = !msgCtx.isServerSide();
this.sender = sender;
+ OperationContext opCtx = this.msgContext.getOperationContext();
+
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));
+
+ //If someone set the sct_id externally use it at the receiver
+ msgContext.setProperty(SCT_ID, inMsgCtx.getProperty(SCT_ID));
+ }
+ }
+
+ if(this.isClientSide && !this.sender) {
+ MessageContext outMsgCtx;
+ if (opCtx != null
+ && (outMsgCtx = opCtx
+ .getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE)) != null) {
+
+ //If someone set the sct_id externally use it at the receiver
+ msgContext.setProperty(SCT_ID, outMsgCtx.getProperty(SCT_ID));
}
}
@@ -396,8 +417,36 @@
* @return Returns the secConvTokenId.
*/
public String getSecConvTokenId() {
- String contextIdentifierKey = RampartUtil.getContextIdentifierKey(this.msgContext);
- return (String) RampartUtil.getContextMap(this.msgContext).get(contextIdentifierKey);
+ String id = null;
+
+ if(this.isClientSide) {
+ String contextIdentifierKey = RampartUtil.getContextIdentifierKey(this.msgContext);
+ id = (String) RampartUtil.getContextMap(this.msgContext).get(contextIdentifierKey);
+ } else {
+ //get the sec context id from the req msg ctx
+ Vector results = (Vector)this.msgContext.getProperty(WSHandlerConstants.RECV_RESULTS);
+ for (int i = 0; i < results.size(); i++) {
+ WSHandlerResult rResult = (WSHandlerResult) results.get(i);
+ Vector wsSecEngineResults = rResult.getResults();
+
+ for (int j = 0; j < wsSecEngineResults.size(); j++) {
+ WSSecurityEngineResult wser = (WSSecurityEngineResult) wsSecEngineResults
+ .get(j);
+ if(WSConstants.SCT == wser.getAction()) {
+ id = wser.getSecurityContextToken().getID();
+ }
+
+ }
+ }
+ }
+
+ if(id == null || id.length() == 0) {
+ //If we can't find the sec conv token id up to this point then
+ //check if someone has specified which one to use
+ id = (String)this.msgContext.getProperty(SCT_ID);
+ }
+
+ return id;
}
/**
Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SymmetricBindingBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SymmetricBindingBuilder.java?view=diff&rev=453622&r1=453621&r2=453622
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SymmetricBindingBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SymmetricBindingBuilder.java Fri Oct 6 07:49:55 2006
@@ -17,6 +17,7 @@
package org.apache.rampart.builder;
import org.apache.axiom.om.OMElement;
+import org.apache.axis2.context.MessageContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.rahas.RahasConstants;
@@ -57,8 +58,10 @@
this.addTimestamp(rmd);
}
- //Setup required tokens
- initializeTokens(rmd);
+ if(rmd.isClientSide()) {
+ //Setup required tokens
+ initializeTokens(rmd);
+ }
if(Constants.ENCRYPT_BEFORE_SIGNING.equals(rpd.getProtectionOrder())) {
@@ -99,6 +102,10 @@
log.debug("SCT Id : " + tokenId);
}
+ if(tokenId == null || tokenId.length() == 0) {
+ throw new RampartException("noSecurityToken");
+ }
+
/*
* Get hold of the token from the token storage
*/
@@ -294,6 +301,10 @@
throw new RampartException("signatureTokenMissing");
}
+ if(sigTokId == null || sigTokId.length() == 0) {
+ throw new RampartException("noSecurityToken");
+ }
+
sigTok = this.getToken(rmd, sigTokId);
if(Constants.INCLUDE_ALWAYS.equals(sigToken.getInclusion()) ||
@@ -456,7 +467,8 @@
RampartPolicyData rpd = rmd.getPolicyData();
- if(rpd.isSymmetricBinding() && !rmd.getMsgContext().isServerSide()) {
+ MessageContext msgContext = rmd.getMsgContext();
+ if(rpd.isSymmetricBinding() && !msgContext.isServerSide()) {
log.debug("Procesing symmentric binding: " +
"Setting up encryption token and signature token");
//Setting up encryption token and signature token
@@ -488,7 +500,7 @@
String secConvTokenId = rmd.getSecConvTokenId();
//The RSTR has to be secured with the cancelled token
- String action = rmd.getMsgContext().getOptions().getAction();
+ String action = msgContext.getOptions().getAction();
boolean cancelReqResp = action.equals(RahasConstants.WST_NS_05_02 + RahasConstants.RSTR_ACTION_CANCEL_SCT) ||
action.equals(RahasConstants.WST_NS_05_02 + RahasConstants.RSTR_ACTION_CANCEL_SCT) ||
action.equals(RahasConstants.WST_NS_05_02 + RahasConstants.RST_ACTION_CANCEL_SCT) ||
@@ -498,6 +510,11 @@
if(secConvTokenId != null && cancelReqResp) {
try {
rmd.getTokenStorage().getToken(secConvTokenId).setState(org.apache.rahas.Token.CANCELLED);
+ msgContext.setProperty(RampartMessageData.SCT_ID, secConvTokenId);
+
+ //remove from the local map of contexts
+ String contextIdentifierKey = RampartUtil.getContextIdentifierKey(msgContext);
+ RampartUtil.getContextMap(msgContext).remove(contextIdentifierKey);
} catch (TrustException e) {
throw new RampartException("errorExtractingToken");
}
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=453622&r1=453621&r2=453622
==============================================================================
--- 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 Fri Oct 6 07:49:55 2006
@@ -40,6 +40,7 @@
errorInTokenCancellation = Error in cancelling token
tokenToBeCancelledInvalid = Token to be cancelled is invalid or expired
errorCreatingRSTTemplateForSCT=Error in creating RST template for SCT
+noSecurityToken = Missing security token
#Errors in processors
errorProcessingUT = Error in processing UsernameToken
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org
Re: svn commit: r453622 - in /webservices/axis2/trunk/java/modules: integration/test/org/apache/rampart/ rahas/src/org/apache/rahas/impl/ security/src/org/apache/rampart/ security/src/org/apache/rampart/builder/
Posted by Ruchith Fernando <ru...@gmail.com>.
This requires the latest WSS4J SNAPSHOT.
Thanks,
Ruchith
On 10/6/06, ruchithf@apache.org <ru...@apache.org> wrote:
> Author: ruchithf
> Date: Fri Oct 6 07:49:55 2006
> New Revision: 453622
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=453622
> Log:
> Makesure we use the map of contexts only in the client side and use the sct info from the request at the service.
> Provided a mechanism to handle set the SCT id in teh message context. This will be used in token cancellation and in sending RM ack msgs.
>
>
> Modified:
> webservices/axis2/trunk/java/modules/integration/test/org/apache/rampart/RampartTest.java
> webservices/axis2/trunk/java/modules/rahas/src/org/apache/rahas/impl/SCTIssuer.java
> 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/SymmetricBindingBuilder.java
> webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/errors.properties
>
> Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/rampart/RampartTest.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/integration/test/org/apache/rampart/RampartTest.java?view=diff&rev=453622&r1=453621&r2=453622
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/integration/test/org/apache/rampart/RampartTest.java (original)
> +++ webservices/axis2/trunk/java/modules/integration/test/org/apache/rampart/RampartTest.java Fri Oct 6 07:49:55 2006
> @@ -103,6 +103,10 @@
> options.setProperty(RampartMessageData.CANCEL_REQUEST, Constants.VALUE_TRUE);
> serviceClient.sendReceive(getEchoElement());
>
> + options.setProperty(RampartMessageData.CANCEL_REQUEST, Constants.VALUE_FALSE);
> + serviceClient.sendReceive(getEchoElement());
> + options.setProperty(RampartMessageData.CANCEL_REQUEST, Constants.VALUE_TRUE);
> + serviceClient.sendReceive(getEchoElement());
> }
>
> } catch (Exception e) {
>
> Modified: webservices/axis2/trunk/java/modules/rahas/src/org/apache/rahas/impl/SCTIssuer.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/rahas/src/org/apache/rahas/impl/SCTIssuer.java?view=diff&rev=453622&r1=453621&r2=453622
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/rahas/src/org/apache/rahas/impl/SCTIssuer.java (original)
> +++ webservices/axis2/trunk/java/modules/rahas/src/org/apache/rahas/impl/SCTIssuer.java Fri Oct 6 07:49:55 2006
> @@ -172,10 +172,6 @@
>
> sctToken.setState(Token.ISSUED);
> TrustUtil.getTokenStore(data.getInMessageContext()).add(sctToken);
> - this.getContextMap(data.getInMessageContext()).put(
> - this.getContextIdentifierKey(data.getInMessageContext()),
> - sctToken.getId());
> -
> return env;
> } catch (ConversationException e) {
> throw new TrustException(e.getMessage(), e);
>
> 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=453622&r1=453621&r2=453622
> ==============================================================================
> --- 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 Fri Oct 6 07:49:55 2006
> @@ -98,7 +98,7 @@
> String ctxIdKey = RampartUtil.getContextIdentifierKey(msgCtx);
> String tokenId = (String)RampartUtil.getContextMap(msgCtx).get(ctxIdKey);
>
> - if(RampartUtil.isTokenValid(rmd, tokenId)) {
> + if(tokenId != null && RampartUtil.isTokenValid(rmd, tokenId)) {
> OMElement bodyElem = msgCtx.getEnvelope().getBody();
> OMElement child = bodyElem.getFirstElement();
> OMElement newChild = TrustUtil.createCancelRequest(tokenId, rmd.getWstVersion());
>
> 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=453622&r1=453621&r2=453622
> ==============================================================================
> --- 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 Fri Oct 6 07:49:55 2006
> @@ -38,10 +38,13 @@
> import org.apache.rampart.util.Axis2Util;
> import org.apache.rampart.util.RampartUtil;
> import org.apache.ws.secpolicy.WSSPolicyException;
> +import org.apache.ws.security.WSConstants;
> import org.apache.ws.security.WSSConfig;
> +import org.apache.ws.security.WSSecurityEngineResult;
> import org.apache.ws.security.WSSecurityException;
> import org.apache.ws.security.conversation.ConversationConstants;
> import org.apache.ws.security.handler.WSHandlerConstants;
> +import org.apache.ws.security.handler.WSHandlerResult;
> import org.apache.ws.security.message.WSSecHeader;
> import org.apache.ws.security.util.Loader;
> import org.w3c.dom.Document;
> @@ -49,6 +52,7 @@
> import javax.xml.namespace.QName;
>
> import java.util.List;
> +import java.util.Vector;
>
> public class RampartMessageData {
>
> @@ -76,6 +80,8 @@
>
> public final static String CANCEL_REQUEST = "cancelrequest";
>
> + public final static String SCT_ID = "sctID";
> +
> private MessageContext msgContext = null;
>
> private RampartPolicyData policyData = null;
> @@ -231,15 +237,30 @@
> this.isClientSide = !msgCtx.isServerSide();
> this.sender = sender;
>
> + OperationContext opCtx = this.msgContext.getOperationContext();
> +
> 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));
> +
> + //If someone set the sct_id externally use it at the receiver
> + msgContext.setProperty(SCT_ID, inMsgCtx.getProperty(SCT_ID));
> + }
> + }
> +
> + if(this.isClientSide && !this.sender) {
> + MessageContext outMsgCtx;
> + if (opCtx != null
> + && (outMsgCtx = opCtx
> + .getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE)) != null) {
> +
> + //If someone set the sct_id externally use it at the receiver
> + msgContext.setProperty(SCT_ID, outMsgCtx.getProperty(SCT_ID));
> }
> }
>
> @@ -396,8 +417,36 @@
> * @return Returns the secConvTokenId.
> */
> public String getSecConvTokenId() {
> - String contextIdentifierKey = RampartUtil.getContextIdentifierKey(this.msgContext);
> - return (String) RampartUtil.getContextMap(this.msgContext).get(contextIdentifierKey);
> + String id = null;
> +
> + if(this.isClientSide) {
> + String contextIdentifierKey = RampartUtil.getContextIdentifierKey(this.msgContext);
> + id = (String) RampartUtil.getContextMap(this.msgContext).get(contextIdentifierKey);
> + } else {
> + //get the sec context id from the req msg ctx
> + Vector results = (Vector)this.msgContext.getProperty(WSHandlerConstants.RECV_RESULTS);
> + for (int i = 0; i < results.size(); i++) {
> + WSHandlerResult rResult = (WSHandlerResult) results.get(i);
> + Vector wsSecEngineResults = rResult.getResults();
> +
> + for (int j = 0; j < wsSecEngineResults.size(); j++) {
> + WSSecurityEngineResult wser = (WSSecurityEngineResult) wsSecEngineResults
> + .get(j);
> + if(WSConstants.SCT == wser.getAction()) {
> + id = wser.getSecurityContextToken().getID();
> + }
> +
> + }
> + }
> + }
> +
> + if(id == null || id.length() == 0) {
> + //If we can't find the sec conv token id up to this point then
> + //check if someone has specified which one to use
> + id = (String)this.msgContext.getProperty(SCT_ID);
> + }
> +
> + return id;
> }
>
> /**
>
> Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SymmetricBindingBuilder.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SymmetricBindingBuilder.java?view=diff&rev=453622&r1=453621&r2=453622
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SymmetricBindingBuilder.java (original)
> +++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/builder/SymmetricBindingBuilder.java Fri Oct 6 07:49:55 2006
> @@ -17,6 +17,7 @@
> package org.apache.rampart.builder;
>
> import org.apache.axiom.om.OMElement;
> +import org.apache.axis2.context.MessageContext;
> import org.apache.commons.logging.Log;
> import org.apache.commons.logging.LogFactory;
> import org.apache.rahas.RahasConstants;
> @@ -57,8 +58,10 @@
> this.addTimestamp(rmd);
> }
>
> - //Setup required tokens
> - initializeTokens(rmd);
> + if(rmd.isClientSide()) {
> + //Setup required tokens
> + initializeTokens(rmd);
> + }
>
>
> if(Constants.ENCRYPT_BEFORE_SIGNING.equals(rpd.getProtectionOrder())) {
> @@ -99,6 +102,10 @@
> log.debug("SCT Id : " + tokenId);
> }
>
> + if(tokenId == null || tokenId.length() == 0) {
> + throw new RampartException("noSecurityToken");
> + }
> +
> /*
> * Get hold of the token from the token storage
> */
> @@ -294,6 +301,10 @@
> throw new RampartException("signatureTokenMissing");
> }
>
> + if(sigTokId == null || sigTokId.length() == 0) {
> + throw new RampartException("noSecurityToken");
> + }
> +
> sigTok = this.getToken(rmd, sigTokId);
>
> if(Constants.INCLUDE_ALWAYS.equals(sigToken.getInclusion()) ||
> @@ -456,7 +467,8 @@
>
> RampartPolicyData rpd = rmd.getPolicyData();
>
> - if(rpd.isSymmetricBinding() && !rmd.getMsgContext().isServerSide()) {
> + MessageContext msgContext = rmd.getMsgContext();
> + if(rpd.isSymmetricBinding() && !msgContext.isServerSide()) {
> log.debug("Procesing symmentric binding: " +
> "Setting up encryption token and signature token");
> //Setting up encryption token and signature token
> @@ -488,7 +500,7 @@
> String secConvTokenId = rmd.getSecConvTokenId();
>
> //The RSTR has to be secured with the cancelled token
> - String action = rmd.getMsgContext().getOptions().getAction();
> + String action = msgContext.getOptions().getAction();
> boolean cancelReqResp = action.equals(RahasConstants.WST_NS_05_02 + RahasConstants.RSTR_ACTION_CANCEL_SCT) ||
> action.equals(RahasConstants.WST_NS_05_02 + RahasConstants.RSTR_ACTION_CANCEL_SCT) ||
> action.equals(RahasConstants.WST_NS_05_02 + RahasConstants.RST_ACTION_CANCEL_SCT) ||
> @@ -498,6 +510,11 @@
> if(secConvTokenId != null && cancelReqResp) {
> try {
> rmd.getTokenStorage().getToken(secConvTokenId).setState(org.apache.rahas.Token.CANCELLED);
> + msgContext.setProperty(RampartMessageData.SCT_ID, secConvTokenId);
> +
> + //remove from the local map of contexts
> + String contextIdentifierKey = RampartUtil.getContextIdentifierKey(msgContext);
> + RampartUtil.getContextMap(msgContext).remove(contextIdentifierKey);
> } catch (TrustException e) {
> throw new RampartException("errorExtractingToken");
> }
>
> 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=453622&r1=453621&r2=453622
> ==============================================================================
> --- 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 Fri Oct 6 07:49:55 2006
> @@ -40,6 +40,7 @@
> errorInTokenCancellation = Error in cancelling token
> tokenToBeCancelledInvalid = Token to be cancelled is invalid or expired
> errorCreatingRSTTemplateForSCT=Error in creating RST template for SCT
> +noSecurityToken = Missing security token
>
> #Errors in processors
> errorProcessingUT = Error in processing UsernameToken
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-cvs-help@ws.apache.org
>
>
--
www.ruchith.org
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org